diff options
author | 2015-12-04 14:36:52 -0800 | |
---|---|---|
committer | 2015-12-04 14:36:52 -0800 | |
commit | cfa26e1ce7f65f70801cada2f2573437915d5fb8 (patch) | |
tree | cdb0701294660a2fa14175c85253cb0bb4d99a52 /src/ruby/spec/client_server_spec.rb | |
parent | 9946f2b80a9dcc01fece8b9ddae4c80a77647b9d (diff) |
Plumb CallCredentials through Ruby code, replacing metadata_updater functionality
Diffstat (limited to 'src/ruby/spec/client_server_spec.rb')
-rw-r--r-- | src/ruby/spec/client_server_spec.rb | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/ruby/spec/client_server_spec.rb b/src/ruby/spec/client_server_spec.rb index 734f176e94..7cce2076c9 100644 --- a/src/ruby/spec/client_server_spec.rb +++ b/src/ruby/spec/client_server_spec.rb @@ -413,6 +413,8 @@ describe 'the http client/server' do end describe 'the secure http client/server' do + include_context 'setup: tags' + def load_test_certs test_root = File.join(File.dirname(__FILE__), 'testdata') files = ['ca.pem', 'server1.key', 'server1.pem'] @@ -443,4 +445,31 @@ describe 'the secure http client/server' do it_behaves_like 'GRPC metadata delivery works OK' do end + + it 'modifies metadata with CallCredentials' do + auth_proc = proc { { 'k1' => 'updated-v1' } } + call_creds = GRPC::Core::CallCredentials.new(auth_proc) + md = { 'k2' => 'v2' } + expected_md = { 'k1' => 'updated-v1', 'k2' => 'v2' } + recvd_rpc = nil + rcv_thread = Thread.new do + recvd_rpc = @server.request_call(@server_queue, @server_tag, deadline) + end + + call = new_client_call + call.set_credentials! call_creds + client_ops = { + CallOps::SEND_INITIAL_METADATA => md + } + batch_result = call.run_batch(@client_queue, @client_tag, deadline, + client_ops) + expect(batch_result.send_metadata).to be true + + # confirm the server can receive the client metadata + rcv_thread.join + expect(recvd_rpc).to_not eq nil + recvd_md = recvd_rpc.metadata + replace_symbols = Hash[expected_md.each_pair.collect { |x, y| [x.to_s, y] }] + expect(recvd_md).to eq(recvd_md.merge(replace_symbols)) + end end |