blob: 06176cc58862254b2234c5a4cc7cf667adf31f70 [file] [log] [blame]
Jorge Canizales91952332015-07-31 17:50:49 -07001/*
2 *
Jan Tattermusch7897ae92017-06-07 22:57:36 +02003 * Copyright 2015 gRPC authors.
Jorge Canizales91952332015-07-31 17:50:49 -07004 *
Jan Tattermusch7897ae92017-06-07 22:57:36 +02005 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
Jorge Canizales91952332015-07-31 17:50:49 -07008 *
Jan Tattermusch7897ae92017-06-07 22:57:36 +02009 * http://www.apache.org/licenses/LICENSE-2.0
Jorge Canizales91952332015-07-31 17:50:49 -070010 *
Jan Tattermusch7897ae92017-06-07 22:57:36 +020011 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
Jorge Canizales91952332015-07-31 17:50:49 -070016 *
17 */
18
Muxi Yan8e6aec52017-02-10 09:40:18 -080019#import <GRPCClient/GRPCCall+Tests.h>
20#import <GRPCClient/internal_testing/GRPCCall+InternalTests.h>
Jorge Canizales82b68d82015-08-01 17:56:03 -070021
Jorge Canizales91952332015-07-31 17:50:49 -070022#import "InteropTests.h"
Makarand Dharmapurikarb4e97272017-04-12 12:16:28 -070023// The server address is derived from preprocessor macro, which is
24// in turn derived from environment variable of the same name.
25#define NSStringize_helper(x) #x
26#define NSStringize(x) @NSStringize_helper(x)
27static NSString * const kLocalSSLHost = NSStringize(HOST_PORT_LOCALSSL);
Jorge Canizales82b68d82015-08-01 17:56:03 -070028
Muxi Yandc87ef52017-03-10 11:41:53 -080029// The Protocol Buffers encoding overhead of local interop server. Acquired
30// by experiment. Adjust this when server's proto file changes.
31static int32_t kLocalInteropServerOverhead = 10;
32
Jorge Canizales2beb88c2015-10-28 15:13:40 -070033/** Tests in InteropTests.m, sending the RPCs to a local SSL server. */
Jorge Canizales91952332015-07-31 17:50:49 -070034@interface InteropTestsLocalSSL : InteropTests
35@end
36
37@implementation InteropTestsLocalSSL
Jorge Canizales82b68d82015-08-01 17:56:03 -070038
Jorge Canizales91952332015-07-31 17:50:49 -070039+ (NSString *)host {
Jorge Canizales82b68d82015-08-01 17:56:03 -070040 return kLocalSSLHost;
Jorge Canizales91952332015-07-31 17:50:49 -070041}
Jorge Canizales82b68d82015-08-01 17:56:03 -070042
Jorge Canizales9e83d7e2016-08-01 12:51:31 -070043- (int32_t)encodingOverhead {
Muxi Yandc87ef52017-03-10 11:41:53 -080044 return kLocalInteropServerOverhead; // bytes
Jorge Canizales9e83d7e2016-08-01 12:51:31 -070045}
46
Jorge Canizales82b68d82015-08-01 17:56:03 -070047- (void)setUp {
Jorge Canizales4bb2eb22016-07-29 13:59:43 -070048 [super setUp];
49
Jorge Canizales82b68d82015-08-01 17:56:03 -070050 // Register test server certificates and name.
51 NSBundle *bundle = [NSBundle bundleForClass:self.class];
52 NSString *certsPath = [bundle pathForResource:@"TestCertificates.bundle/test-certificates"
53 ofType:@"pem"];
54 [GRPCCall useTestCertsPath:certsPath testName:@"foo.test.google.fr" forHost:kLocalSSLHost];
Jorge Canizales82b68d82015-08-01 17:56:03 -070055}
56
Test User9656eca2016-02-18 14:47:22 -080057- (void)testExceptions {
58 // Try to set userAgentPrefix for host that is nil. This should cause
59 // an exception.
60 @try {
61 [GRPCCall useTestCertsPath:nil testName:nil forHost:nil];
62 XCTFail(@"Did not receive an exception when parameters are nil");
63 } @catch(NSException *theException) {
64 NSLog(@"Received exception as expected: %@", theException.name);
65 }
66}
67
Jorge Canizales91952332015-07-31 17:50:49 -070068@end