blob: 45e62d29b9a1e03da33a80531786e1f411c1295e [file] [log] [blame]
Jorge Canizales91952332015-07-31 17:50:49 -07001/*
2 *
Craig Tiller6169d5f2016-03-31 07:46:18 -07003 * Copyright 2015, Google Inc.
Jorge Canizales91952332015-07-31 17:50:49 -07004 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are
8 * met:
9 *
10 * * Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * * Redistributions in binary form must reproduce the above
13 * copyright notice, this list of conditions and the following disclaimer
14 * in the documentation and/or other materials provided with the
15 * distribution.
16 * * Neither the name of Google Inc. nor the names of its
17 * contributors may be used to endorse or promote products derived from
18 * this software without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 *
32 */
33
Muxi Yan8e6aec52017-02-10 09:40:18 -080034#import <GRPCClient/GRPCCall+Tests.h>
35#import <GRPCClient/internal_testing/GRPCCall+InternalTests.h>
Jorge Canizales82b68d82015-08-01 17:56:03 -070036
Jorge Canizales91952332015-07-31 17:50:49 -070037#import "InteropTests.h"
Makarand Dharmapurikarb4e97272017-04-12 12:16:28 -070038// The server address is derived from preprocessor macro, which is
39// in turn derived from environment variable of the same name.
40#define NSStringize_helper(x) #x
41#define NSStringize(x) @NSStringize_helper(x)
42static NSString * const kLocalSSLHost = NSStringize(HOST_PORT_LOCALSSL);
Jorge Canizales82b68d82015-08-01 17:56:03 -070043
Muxi Yandc87ef52017-03-10 11:41:53 -080044// The Protocol Buffers encoding overhead of local interop server. Acquired
45// by experiment. Adjust this when server's proto file changes.
46static int32_t kLocalInteropServerOverhead = 10;
47
Jorge Canizales2beb88c2015-10-28 15:13:40 -070048/** Tests in InteropTests.m, sending the RPCs to a local SSL server. */
Jorge Canizales91952332015-07-31 17:50:49 -070049@interface InteropTestsLocalSSL : InteropTests
50@end
51
52@implementation InteropTestsLocalSSL
Jorge Canizales82b68d82015-08-01 17:56:03 -070053
Jorge Canizales91952332015-07-31 17:50:49 -070054+ (NSString *)host {
Jorge Canizales82b68d82015-08-01 17:56:03 -070055 return kLocalSSLHost;
Jorge Canizales91952332015-07-31 17:50:49 -070056}
Jorge Canizales82b68d82015-08-01 17:56:03 -070057
Jorge Canizales9e83d7e2016-08-01 12:51:31 -070058- (int32_t)encodingOverhead {
Muxi Yandc87ef52017-03-10 11:41:53 -080059 return kLocalInteropServerOverhead; // bytes
Jorge Canizales9e83d7e2016-08-01 12:51:31 -070060}
61
Jorge Canizales82b68d82015-08-01 17:56:03 -070062- (void)setUp {
Jorge Canizales4bb2eb22016-07-29 13:59:43 -070063 [super setUp];
64
Jorge Canizales82b68d82015-08-01 17:56:03 -070065 // Register test server certificates and name.
66 NSBundle *bundle = [NSBundle bundleForClass:self.class];
67 NSString *certsPath = [bundle pathForResource:@"TestCertificates.bundle/test-certificates"
68 ofType:@"pem"];
69 [GRPCCall useTestCertsPath:certsPath testName:@"foo.test.google.fr" forHost:kLocalSSLHost];
Jorge Canizales82b68d82015-08-01 17:56:03 -070070}
71
Test User9656eca2016-02-18 14:47:22 -080072- (void)testExceptions {
73 // Try to set userAgentPrefix for host that is nil. This should cause
74 // an exception.
75 @try {
76 [GRPCCall useTestCertsPath:nil testName:nil forHost:nil];
77 XCTFail(@"Did not receive an exception when parameters are nil");
78 } @catch(NSException *theException) {
79 NSLog(@"Received exception as expected: %@", theException.name);
80 }
81}
82
Jorge Canizales91952332015-07-31 17:50:49 -070083@end