diff options
author | Muxi Yan <mxyan@google.com> | 2017-10-06 18:47:09 -0700 |
---|---|---|
committer | Muxi Yan <mxyan@google.com> | 2017-10-06 18:47:09 -0700 |
commit | 03fc857a6f3ad1ee0a6f46cd19b5c96e56c6fd3b (patch) | |
tree | 38e03428954c3abdf2c88cafa9ffbd205789976b /test/cpp/end2end/end2end_test.cc | |
parent | 63602748415fb836afd7a9685fbe5e85bf5ebfed (diff) | |
parent | 03bd5daf5cd36373152cb6b06a5f259db1331e87 (diff) |
Merge remote-tracking branch 'upstream/master' into fix-stream-compression-config-interface
Diffstat (limited to 'test/cpp/end2end/end2end_test.cc')
-rw-r--r-- | test/cpp/end2end/end2end_test.cc | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/test/cpp/end2end/end2end_test.cc b/test/cpp/end2end/end2end_test.cc index 7137a91ad9..7f5d6f9740 100644 --- a/test/cpp/end2end/end2end_test.cc +++ b/test/cpp/end2end/end2end_test.cc @@ -198,10 +198,7 @@ class TestScenario { void Log() const; bool use_proxy; bool inproc; - // Although the below grpc::string is logically const, we can't declare - // them const because of a limitation in the way old compilers (e.g., gcc-4.4) - // manage vector insertion using a copy constructor - grpc::string credentials_type; + const grpc::string credentials_type; }; static std::ostream& operator<<(std::ostream& out, @@ -1673,6 +1670,34 @@ TEST_P(SecureEnd2endTest, BlockingAuthMetadataPluginFailure) { kTestCredsPluginErrorMsg); } +TEST_P(SecureEnd2endTest, CompositeCallCreds) { + ResetStub(); + EchoRequest request; + EchoResponse response; + ClientContext context; + const char kMetadataKey1[] = "call-creds-key1"; + const char kMetadataKey2[] = "call-creds-key2"; + const char kMetadataVal1[] = "call-creds-val1"; + const char kMetadataVal2[] = "call-creds-val2"; + + context.set_credentials(CompositeCallCredentials( + MetadataCredentialsFromPlugin(std::unique_ptr<MetadataCredentialsPlugin>( + new TestMetadataCredentialsPlugin(kMetadataKey1, kMetadataVal1, true, + true))), + MetadataCredentialsFromPlugin(std::unique_ptr<MetadataCredentialsPlugin>( + new TestMetadataCredentialsPlugin(kMetadataKey2, kMetadataVal2, true, + true))))); + request.set_message("Hello"); + request.mutable_param()->set_echo_metadata(true); + + Status s = stub_->Echo(&context, request, &response); + EXPECT_TRUE(s.ok()); + EXPECT_TRUE(MetadataContains(context.GetServerTrailingMetadata(), + kMetadataKey1, kMetadataVal1)); + EXPECT_TRUE(MetadataContains(context.GetServerTrailingMetadata(), + kMetadataKey2, kMetadataVal2)); +} + TEST_P(SecureEnd2endTest, ClientAuthContext) { ResetStub(); EchoRequest request; |