|  | @@ -86,14 +86,23 @@ function cancelHandler(stream) {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  describe('echo client', function() {
 | 
	
		
			
				|  |  | -  it('should receive echo responses', function(done) {
 | 
	
		
			
				|  |  | -    var server = new Server();
 | 
	
		
			
				|  |  | +  var server;
 | 
	
		
			
				|  |  | +  var channel;
 | 
	
		
			
				|  |  | +  before(function() {
 | 
	
		
			
				|  |  | +    server = new Server();
 | 
	
		
			
				|  |  |      var port_num = server.bind('0.0.0.0:0');
 | 
	
		
			
				|  |  |      server.register('echo', echoHandler);
 | 
	
		
			
				|  |  | +    server.register('error', errorHandler);
 | 
	
		
			
				|  |  | +    server.register('cancellation', cancelHandler);
 | 
	
		
			
				|  |  |      server.start();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    channel = new grpc.Channel('localhost:' + port_num);
 | 
	
		
			
				|  |  | +  });
 | 
	
		
			
				|  |  | +  after(function() {
 | 
	
		
			
				|  |  | +    server.shutdown();
 | 
	
		
			
				|  |  | +  });
 | 
	
		
			
				|  |  | +  it('should receive echo responses', function(done) {
 | 
	
		
			
				|  |  |      var messages = ['echo1', 'echo2', 'echo3', 'echo4'];
 | 
	
		
			
				|  |  | -    var channel = new grpc.Channel('localhost:' + port_num);
 | 
	
		
			
				|  |  |      var stream = client.makeRequest(
 | 
	
		
			
				|  |  |          channel,
 | 
	
		
			
				|  |  |          'echo');
 | 
	
	
		
			
				|  | @@ -106,17 +115,10 @@ describe('echo client', function() {
 | 
	
		
			
				|  |  |        index += 1;
 | 
	
		
			
				|  |  |      });
 | 
	
		
			
				|  |  |      stream.on('end', function() {
 | 
	
		
			
				|  |  | -      server.shutdown();
 | 
	
		
			
				|  |  |        done();
 | 
	
		
			
				|  |  |      });
 | 
	
		
			
				|  |  |    });
 | 
	
		
			
				|  |  |    it('should get an error status that the server throws', function(done) {
 | 
	
		
			
				|  |  | -    var server = new Server();
 | 
	
		
			
				|  |  | -    var port_num = server.bind('0.0.0.0:0');
 | 
	
		
			
				|  |  | -    server.register('error', errorHandler);
 | 
	
		
			
				|  |  | -    server.start();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    var channel = new grpc.Channel('localhost:' + port_num);
 | 
	
		
			
				|  |  |      var stream = client.makeRequest(
 | 
	
		
			
				|  |  |          channel,
 | 
	
		
			
				|  |  |          'error',
 | 
	
	
		
			
				|  | @@ -129,17 +131,10 @@ describe('echo client', function() {
 | 
	
		
			
				|  |  |      stream.on('status', function(status) {
 | 
	
		
			
				|  |  |        assert.equal(status.code, grpc.status.UNIMPLEMENTED);
 | 
	
		
			
				|  |  |        assert.equal(status.details, 'error details');
 | 
	
		
			
				|  |  | -      server.shutdown();
 | 
	
		
			
				|  |  |        done();
 | 
	
		
			
				|  |  |      });
 | 
	
		
			
				|  |  |    });
 | 
	
		
			
				|  |  |    it('should be able to cancel a call', function(done) {
 | 
	
		
			
				|  |  | -    var server = new Server();
 | 
	
		
			
				|  |  | -    var port_num = server.bind('0.0.0.0:0');
 | 
	
		
			
				|  |  | -    server.register('cancellation', cancelHandler);
 | 
	
		
			
				|  |  | -    server.start();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    var channel = new grpc.Channel('localhost:' + port_num);
 | 
	
		
			
				|  |  |      var stream = client.makeRequest(
 | 
	
		
			
				|  |  |          channel,
 | 
	
		
			
				|  |  |          'cancellation',
 | 
	
	
		
			
				|  | @@ -149,7 +144,6 @@ describe('echo client', function() {
 | 
	
		
			
				|  |  |      stream.cancel();
 | 
	
		
			
				|  |  |      stream.on('status', function(status) {
 | 
	
		
			
				|  |  |        assert.equal(status.code, grpc.status.CANCELLED);
 | 
	
		
			
				|  |  | -      server.shutdown();
 | 
	
		
			
				|  |  |        done();
 | 
	
		
			
				|  |  |      });
 | 
	
		
			
				|  |  |    });
 | 
	
	
		
			
				|  | @@ -157,7 +151,9 @@ describe('echo client', function() {
 | 
	
		
			
				|  |  |  /* TODO(mlumish): explore options for reducing duplication between this test
 | 
	
		
			
				|  |  |   * and the insecure echo client test */
 | 
	
		
			
				|  |  |  describe('secure echo client', function() {
 | 
	
		
			
				|  |  | -  it('should recieve echo responses', function(done) {
 | 
	
		
			
				|  |  | +  var server;
 | 
	
		
			
				|  |  | +  var channel;
 | 
	
		
			
				|  |  | +  before(function(done) {
 | 
	
		
			
				|  |  |      fs.readFile(ca_path, function(err, ca_data) {
 | 
	
		
			
				|  |  |        assert.ifError(err);
 | 
	
		
			
				|  |  |        fs.readFile(key_path, function(err, key_data) {
 | 
	
	
		
			
				|  | @@ -169,34 +165,40 @@ describe('secure echo client', function() {
 | 
	
		
			
				|  |  |                                                                key_data,
 | 
	
		
			
				|  |  |                                                                pem_data);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -          var server = new Server({'credentials' : server_creds});
 | 
	
		
			
				|  |  | +          server = new Server({'credentials' : server_creds});
 | 
	
		
			
				|  |  |            var port_num = server.bind('0.0.0.0:0', true);
 | 
	
		
			
				|  |  |            server.register('echo', echoHandler);
 | 
	
		
			
				|  |  |            server.start();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -          var messages = ['echo1', 'echo2', 'echo3', 'echo4'];
 | 
	
		
			
				|  |  | -          var channel = new grpc.Channel('localhost:' + port_num, {
 | 
	
		
			
				|  |  | +          channel = new grpc.Channel('localhost:' + port_num, {
 | 
	
		
			
				|  |  |              'grpc.ssl_target_name_override' : 'foo.test.google.com',
 | 
	
		
			
				|  |  |              'credentials' : creds
 | 
	
		
			
				|  |  |            });
 | 
	
		
			
				|  |  | -          var stream = client.makeRequest(
 | 
	
		
			
				|  |  | -              channel,
 | 
	
		
			
				|  |  | -              'echo');
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -          _(messages).map(function(val) {
 | 
	
		
			
				|  |  | -            return new Buffer(val);
 | 
	
		
			
				|  |  | -          }).pipe(stream);
 | 
	
		
			
				|  |  | -          var index = 0;
 | 
	
		
			
				|  |  | -          stream.on('data', function(chunk) {
 | 
	
		
			
				|  |  | -            assert.equal(messages[index], chunk.toString());
 | 
	
		
			
				|  |  | -            index += 1;
 | 
	
		
			
				|  |  | -          });
 | 
	
		
			
				|  |  | -          stream.on('end', function() {
 | 
	
		
			
				|  |  | -            server.shutdown();
 | 
	
		
			
				|  |  | -            done();
 | 
	
		
			
				|  |  | -          });
 | 
	
		
			
				|  |  | +          done();
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  |        });
 | 
	
		
			
				|  |  |      });
 | 
	
		
			
				|  |  |    });
 | 
	
		
			
				|  |  | +  after(function() {
 | 
	
		
			
				|  |  | +    server.shutdown();
 | 
	
		
			
				|  |  | +  });
 | 
	
		
			
				|  |  | +  it('should recieve echo responses', function(done) {
 | 
	
		
			
				|  |  | +    var messages = ['echo1', 'echo2', 'echo3', 'echo4'];
 | 
	
		
			
				|  |  | +    var stream = client.makeRequest(
 | 
	
		
			
				|  |  | +        channel,
 | 
	
		
			
				|  |  | +        'echo');
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    _(messages).map(function(val) {
 | 
	
		
			
				|  |  | +      return new Buffer(val);
 | 
	
		
			
				|  |  | +    }).pipe(stream);
 | 
	
		
			
				|  |  | +    var index = 0;
 | 
	
		
			
				|  |  | +    stream.on('data', function(chunk) {
 | 
	
		
			
				|  |  | +      assert.equal(messages[index], chunk.toString());
 | 
	
		
			
				|  |  | +      index += 1;
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  | +    stream.on('end', function() {
 | 
	
		
			
				|  |  | +      server.shutdown();
 | 
	
		
			
				|  |  | +      done();
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  | +  });
 | 
	
		
			
				|  |  |  });
 |