Skip to content

Commit 1409752

Browse files
authored
Update minimum iOS version from 10 to 12. (#918)
1 parent 1ba9e0f commit 1409752

17 files changed

+219
-100
lines changed

AppAuth.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ It follows the OAuth 2.0 for Native Apps best current practice
3131
# classes of AppAuth with tokens on watchOS and tvOS, but currently the
3232
# library won't help you obtain authorization grants on those platforms.
3333

34-
ios_deployment_target = "10.0"
34+
ios_deployment_target = "12.0"
3535
osx_deployment_target = "10.12"
3636
s.ios.deployment_target = ios_deployment_target
3737
s.osx.deployment_target = osx_deployment_target

AppAuth.xcodeproj/project.pbxproj

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2815,7 +2815,7 @@
28152815
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
28162816
GCC_WARN_UNUSED_FUNCTION = YES;
28172817
GCC_WARN_UNUSED_VARIABLE = YES;
2818-
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
2818+
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
28192819
MACOSX_DEPLOYMENT_TARGET = 10.12;
28202820
MTL_ENABLE_DEBUG_INFO = YES;
28212821
ONLY_ACTIVE_ARCH = YES;
@@ -2873,7 +2873,7 @@
28732873
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
28742874
GCC_WARN_UNUSED_FUNCTION = YES;
28752875
GCC_WARN_UNUSED_VARIABLE = YES;
2876-
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
2876+
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
28772877
MACOSX_DEPLOYMENT_TARGET = 10.12;
28782878
MTL_ENABLE_DEBUG_INFO = NO;
28792879
SDKROOT = iphoneos;
@@ -2909,7 +2909,7 @@
29092909
CLANG_ENABLE_MODULES = YES;
29102910
HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/";
29112911
INFOPLIST_FILE = UnitTests/UnitTestsInfo.plist;
2912-
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
2912+
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
29132913
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
29142914
PRODUCT_BUNDLE_IDENTIFIER = net.openid.appauth.AppAuthTests;
29152915
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -2926,7 +2926,7 @@
29262926
CLANG_ENABLE_MODULES = YES;
29272927
HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/";
29282928
INFOPLIST_FILE = UnitTests/UnitTestsInfo.plist;
2929-
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
2929+
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
29302930
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
29312931
PRODUCT_BUNDLE_IDENTIFIER = net.openid.appauth.AppAuthTests;
29322932
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -3040,7 +3040,7 @@
30403040
DYLIB_INSTALL_NAME_BASE = "@rpath";
30413041
INFOPLIST_FILE = Sources/CoreFramework/Info.plist;
30423042
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
3043-
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
3043+
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
30443044
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
30453045
PRODUCT_BUNDLE_IDENTIFIER = net.openid.AppAuthCore;
30463046
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -3066,7 +3066,7 @@
30663066
DYLIB_INSTALL_NAME_BASE = "@rpath";
30673067
INFOPLIST_FILE = Sources/CoreFramework/Info.plist;
30683068
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
3069-
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
3069+
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
30703070
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
30713071
PRODUCT_BUNDLE_IDENTIFIER = net.openid.AppAuthCore;
30723072
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -3091,7 +3091,7 @@
30913091
DYLIB_INSTALL_NAME_BASE = "@rpath";
30923092
INFOPLIST_FILE = Sources/Framework/Info.plist;
30933093
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
3094-
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
3094+
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
30953095
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
30963096
PRODUCT_BUNDLE_IDENTIFIER = "net.openid.AppAuth-iOS";
30973097
PRODUCT_NAME = AppAuth;
@@ -3116,7 +3116,7 @@
31163116
DYLIB_INSTALL_NAME_BASE = "@rpath";
31173117
INFOPLIST_FILE = Sources/Framework/Info.plist;
31183118
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
3119-
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
3119+
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
31203120
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
31213121
PRODUCT_BUNDLE_IDENTIFIER = "net.openid.AppAuth-iOS";
31223122
PRODUCT_NAME = AppAuth;
@@ -3135,7 +3135,7 @@
31353135
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
31363136
HEADER_SEARCH_PATHS = .;
31373137
INFOPLIST_FILE = UnitTests/UnitTestsInfo.plist;
3138-
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
3138+
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
31393139
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
31403140
PRODUCT_BUNDLE_IDENTIFIER = "net.openid.AppAuth-iOSTests";
31413141
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -3149,7 +3149,7 @@
31493149
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
31503150
HEADER_SEARCH_PATHS = .;
31513151
INFOPLIST_FILE = UnitTests/UnitTestsInfo.plist;
3152-
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
3152+
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
31533153
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
31543154
PRODUCT_BUNDLE_IDENTIFIER = "net.openid.AppAuth-iOSTests";
31553155
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -3403,7 +3403,7 @@
34033403
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
34043404
HEADER_SEARCH_PATHS = .;
34053405
INFOPLIST_FILE = UnitTests/UnitTestsInfo.plist;
3406-
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
3406+
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
34073407
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
34083408
PRODUCT_BUNDLE_IDENTIFIER = "net.openid.AppAuth-ExtensionTests";
34093409
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -3417,7 +3417,7 @@
34173417
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
34183418
HEADER_SEARCH_PATHS = .;
34193419
INFOPLIST_FILE = UnitTests/UnitTestsInfo.plist;
3420-
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
3420+
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
34213421
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
34223422
PRODUCT_BUNDLE_IDENTIFIER = "net.openid.AppAuth-ExtensionTests";
34233423
PRODUCT_NAME = "$(TARGET_NAME)";

Package.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ let package = Package(
2424
name: "AppAuth",
2525
platforms: [
2626
.macOS(.v10_12),
27-
.iOS(.v10),
27+
.iOS(.v12),
2828
.tvOS(.v9),
2929
.watchOS(.v2)
3030
],

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ For tvOS, AppAuth implements [OAuth 2.0 Device Authorization Grant
3939

4040
#### Supported Versions
4141

42-
AppAuth supports iOS 10 and above.
42+
AppAuth supports iOS 12 and above.
4343

4444
iOS 9+ uses the in-app browser tab pattern
4545
(via `SFSafariViewController`), and falls back to the system browser (mobile

Sources/AppAuth/iOS/OIDExternalUserAgentIOS.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,8 @@ API_UNAVAILABLE(macCatalyst)
4141
/*! @brief The designated initializer.
4242
@param presentingViewController The view controller from which to present the authentication UI.
4343
@discussion The specific authentication UI used depends on the iOS version and accessibility
44-
options. iOS 8 uses the system browser, iOS 9-10 use @c SFSafariViewController, iOS 11 uses
45-
@c SFAuthenticationSession
46-
(unless Guided Access is on which does not work) or uses @c SFSafariViewController, and iOS
47-
12+ uses @c ASWebAuthenticationSession (unless Guided Access is on).
44+
options. iOS 12+ uses @c ASWebAuthenticationSession (unless Guided Access is on),
45+
otherwise local browser is used.
4846
*/
4947
- (nullable instancetype)initWithPresentingViewController:
5048
(UIViewController *)presentingViewController

Sources/AppAuth/iOS/OIDExternalUserAgentIOS.m

Lines changed: 0 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ @implementation OIDExternalUserAgentIOS {
5050
#pragma clang diagnostic push
5151
#pragma clang diagnostic ignored "-Wpartial-availability"
5252
__weak SFSafariViewController *_safariVC;
53-
SFAuthenticationSession *_authenticationVC;
5453
ASWebAuthenticationSession *_webAuthenticationVC;
5554
#pragma clang diagnostic pop
5655
}
@@ -134,47 +133,6 @@ - (BOOL)presentExternalUserAgentRequest:(id<OIDExternalUserAgentRequest>)request
134133
openedUserAgent = [authenticationVC start];
135134
}
136135
}
137-
// iOS 11, use SFAuthenticationSession
138-
if (@available(iOS 11.0, *)) {
139-
// SFAuthenticationSession doesn't work with guided access (rdar://40809553)
140-
if (!openedUserAgent && !UIAccessibilityIsGuidedAccessEnabled()) {
141-
__weak OIDExternalUserAgentIOS *weakSelf = self;
142-
NSString *redirectScheme = request.redirectScheme;
143-
SFAuthenticationSession *authenticationVC =
144-
[[SFAuthenticationSession alloc] initWithURL:requestURL
145-
callbackURLScheme:redirectScheme
146-
completionHandler:^(NSURL * _Nullable callbackURL,
147-
NSError * _Nullable error) {
148-
__strong OIDExternalUserAgentIOS *strongSelf = weakSelf;
149-
if (!strongSelf) {
150-
return;
151-
}
152-
strongSelf->_authenticationVC = nil;
153-
if (callbackURL) {
154-
[strongSelf->_session resumeExternalUserAgentFlowWithURL:callbackURL];
155-
} else {
156-
NSError *safariError =
157-
[OIDErrorUtilities errorWithCode:OIDErrorCodeUserCanceledAuthorizationFlow
158-
underlyingError:error
159-
description:@"User cancelled."];
160-
[strongSelf->_session failExternalUserAgentFlowWithError:safariError];
161-
}
162-
}];
163-
_authenticationVC = authenticationVC;
164-
openedUserAgent = [authenticationVC start];
165-
}
166-
}
167-
// iOS 9 and 10, use SFSafariViewController
168-
if (@available(iOS 9.0, *)) {
169-
if (!openedUserAgent && _presentingViewController) {
170-
SFSafariViewController *safariVC =
171-
[[SFSafariViewController alloc] initWithURL:requestURL];
172-
safariVC.delegate = self;
173-
_safariVC = safariVC;
174-
[_presentingViewController presentViewController:safariVC animated:YES completion:nil];
175-
openedUserAgent = YES;
176-
}
177-
}
178136
// If all else failed use the local browser.
179137
if (!openedUserAgent){
180138
[[UIApplication sharedApplication] openURL:requestURL
@@ -196,7 +154,6 @@ - (void)dismissExternalUserAgentAnimated:(BOOL)animated completion:(void (^)(voi
196154
#pragma clang diagnostic push
197155
#pragma clang diagnostic ignored "-Wpartial-availability"
198156
SFSafariViewController *safariVC = _safariVC;
199-
SFAuthenticationSession *authenticationVC = _authenticationVC;
200157
ASWebAuthenticationSession *webAuthenticationVC = _webAuthenticationVC;
201158
#pragma clang diagnostic pop
202159

@@ -206,10 +163,6 @@ - (void)dismissExternalUserAgentAnimated:(BOOL)animated completion:(void (^)(voi
206163
// dismiss the ASWebAuthenticationSession
207164
[webAuthenticationVC cancel];
208165
if (completion) completion();
209-
} else if (authenticationVC) {
210-
// dismiss the SFAuthenticationSession
211-
[authenticationVC cancel];
212-
if (completion) completion();
213166
} else if (safariVC) {
214167
// dismiss the SFSafariViewController
215168
[safariVC dismissViewControllerAnimated:YES completion:completion];
@@ -222,7 +175,6 @@ - (void)cleanUp {
222175
// The weak references to |_safariVC| and |_session| are set to nil to avoid accidentally using
223176
// them while not in an authorization flow.
224177
_safariVC = nil;
225-
_authenticationVC = nil;
226178
_webAuthenticationVC = nil;
227179
_session = nil;
228180
_externalUserAgentFlowInProgress = NO;

Sources/AppAuthCore/OIDRegistrationRequest.m

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -130,12 +130,15 @@ - (instancetype)initWithCoder:(NSCoder *)aDecoder {
130130
forKey:kConfigurationKey];
131131
NSString *initialAccessToken = [aDecoder decodeObjectOfClass:[NSString class]
132132
forKey:kInitialAccessToken];
133-
NSArray<NSURL *> *redirectURIs = [aDecoder decodeObjectOfClass:[NSArray<NSURL *> class]
134-
forKey:kRedirectURIsKey];
135-
NSArray<NSString *> *responseTypes = [aDecoder decodeObjectOfClass:[NSArray<NSString *> class]
136-
forKey:kResponseTypesKey];
137-
NSArray<NSString *> *grantTypes = [aDecoder decodeObjectOfClass:[NSArray<NSString *> class]
138-
forKey:kGrantTypesKey];
133+
NSArray<NSURL *> *redirectURIs =
134+
[aDecoder decodeObjectOfClasses:[NSSet setWithArray:@[[NSArray class], [NSURL class]]]
135+
forKey:kRedirectURIsKey];
136+
NSArray<NSString *> *responseTypes =
137+
[aDecoder decodeObjectOfClasses:[NSSet setWithArray:@[[NSArray class], [NSString class]]]
138+
forKey:kResponseTypesKey];
139+
NSArray<NSString *> *grantTypes =
140+
[aDecoder decodeObjectOfClasses:[NSSet setWithArray:@[[NSArray class], [NSString class]]]
141+
forKey:kGrantTypesKey];
139142
NSString *subjectType = [aDecoder decodeObjectOfClass:[NSString class]
140143
forKey:kSubjectTypeKey];
141144
NSString *tokenEndpointAuthenticationMethod =

UnitTests/OIDAuthStateTests.m

Lines changed: 47 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,18 @@ - (void)testNonCompliantNSCodingNSErrors {
204204
NSError *oauthError =
205205
[[self class] OAuthTokenInvalidGrantErrorWithUnderlyingError:nonCompliantError];
206206
[authstate updateWithAuthorizationError:oauthError];
207-
XCTAssertNoThrow([NSKeyedArchiver archivedDataWithRootObject:authstate], @"");
207+
NSError *error;
208+
NSData *data;
209+
if (@available(iOS 12.0, macOS 10.13, tvOS 11.0, watchOS 4.0, *)) {
210+
data = [NSKeyedArchiver archivedDataWithRootObject:authstate
211+
requiringSecureCoding:YES
212+
error:&error];
213+
XCTAssertNoThrow(data, @"");
214+
} else {
215+
#if !TARGET_OS_IOS
216+
XCTAssertNoThrow([NSKeyedArchiver archivedDataWithRootObject:authstate], @"");
217+
#endif
218+
}
208219
}
209220

210221
/*! @brief Tests @c OIDAuthState.updateWithAuthorizationResponse:error: with a success response.
@@ -358,8 +369,22 @@ - (void)testSecureCoding {
358369
XCTAssert([OIDAuthState supportsSecureCoding], @"");
359370

360371
OIDAuthState *authState = [[self class] testInstance];
361-
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:authState];
362-
OIDAuthState *authStateCopy = [NSKeyedUnarchiver unarchiveObjectWithData:data];
372+
OIDAuthState *authStateCopy;
373+
NSError *error;
374+
NSData *data;
375+
if (@available(iOS 12.0, macOS 10.13, tvOS 11.0, watchOS 4.0, *)) {
376+
data = [NSKeyedArchiver archivedDataWithRootObject:authState
377+
requiringSecureCoding:YES
378+
error:&error];
379+
authStateCopy = [NSKeyedUnarchiver unarchivedObjectOfClass:[OIDAuthState class]
380+
fromData:data
381+
error:&error];
382+
} else {
383+
#if !TARGET_OS_IOS
384+
data = [NSKeyedArchiver archivedDataWithRootObject:authState];
385+
authStateCopy = [NSKeyedUnarchiver unarchiveObjectWithData:data];
386+
#endif
387+
}
363388

364389
XCTAssertEqualObjects(authStateCopy.refreshToken, authState.refreshToken, @"");
365390
XCTAssertEqualObjects(authStateCopy.scope, authState.scope, @"");
@@ -375,9 +400,26 @@ - (void)testSecureCoding {
375400
// Verify the error object is indeed restored.
376401
NSError *oauthError = [[self class] OAuthTokenInvalidGrantErrorWithUnderlyingError:nil];
377402
[authState updateWithTokenResponse:nil error:oauthError];
378-
data = [NSKeyedArchiver archivedDataWithRootObject:authState];
403+
if (@available(iOS 12.0, macOS 10.13, tvOS 11.0, watchOS 4.0, *)) {
404+
data = [NSKeyedArchiver archivedDataWithRootObject:authState
405+
requiringSecureCoding:YES
406+
error:&error];
407+
} else {
408+
#if !TARGET_OS_IOS
409+
data = [NSKeyedArchiver archivedDataWithRootObject:authState];
410+
#endif
411+
}
379412
XCTAssertNotNil(authState.authorizationError, @"");
380-
authStateCopy = [NSKeyedUnarchiver unarchiveObjectWithData:data];
413+
414+
if (@available(iOS 12.0, macOS 10.13, tvOS 11.0, watchOS 4.0, *)) {
415+
authStateCopy = [NSKeyedUnarchiver unarchivedObjectOfClass:[OIDAuthState class]
416+
fromData:data
417+
error:&error];
418+
} else {
419+
#if !TARGET_OS_IOS
420+
authStateCopy = [NSKeyedUnarchiver unarchiveObjectWithData:data];
421+
#endif
422+
}
381423
XCTAssertEqualObjects(authStateCopy.authorizationError.domain,
382424
authState.authorizationError.domain, @"");
383425
XCTAssertEqual(authStateCopy.authorizationError.code, authState.authorizationError.code, @"");

UnitTests/OIDAuthorizationRequestTests.m

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -322,8 +322,22 @@ - (void)testSecureCoding {
322322
XCTAssertEqualObjects(request.additionalParameters[kTestAdditionalParameterKey],
323323
kTestAdditionalParameterValue, @"");
324324

325-
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:request];
326-
OIDAuthorizationRequest *requestCopy = [NSKeyedUnarchiver unarchiveObjectWithData:data];
325+
OIDAuthorizationRequest *requestCopy;
326+
NSError *error;
327+
NSData *data;
328+
if (@available(iOS 12.0, macOS 10.13, tvOS 11.0, watchOS 4.0, *)) {
329+
data = [NSKeyedArchiver archivedDataWithRootObject:request
330+
requiringSecureCoding:YES
331+
error:&error];
332+
requestCopy = [NSKeyedUnarchiver unarchivedObjectOfClass:[OIDAuthorizationRequest class]
333+
fromData:data
334+
error:&error];
335+
} else {
336+
#if !TARGET_OS_IOS
337+
data = [NSKeyedArchiver archivedDataWithRootObject:request];
338+
requestCopy = [NSKeyedUnarchiver unarchiveObjectWithData:data];
339+
#endif
340+
}
327341

328342
// Not a full test of the configuration deserialization, but should be sufficient as a smoke test
329343
// to make sure the configuration IS actually getting serialized and deserialized in the

UnitTests/OIDAuthorizationResponseTests.m

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,8 +158,22 @@ - (void)testCopying {
158158
*/
159159
- (void)testSecureCoding {
160160
OIDAuthorizationResponse *response = [[self class] testInstance];
161-
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:response];
162-
OIDAuthorizationResponse *responseCopy = [NSKeyedUnarchiver unarchiveObjectWithData:data];
161+
OIDAuthorizationResponse *responseCopy;
162+
NSError *error;
163+
NSData *data;
164+
if (@available(iOS 12.0, macOS 10.13, tvOS 11.0, watchOS 4.0, *)) {
165+
data = [NSKeyedArchiver archivedDataWithRootObject:response
166+
requiringSecureCoding:YES
167+
error:&error];
168+
responseCopy = [NSKeyedUnarchiver unarchivedObjectOfClass:[OIDAuthorizationResponse class]
169+
fromData:data
170+
error:&error];
171+
} else {
172+
#if !TARGET_OS_IOS
173+
data = [NSKeyedArchiver archivedDataWithRootObject:response];
174+
responseCopy = [NSKeyedUnarchiver unarchiveObjectWithData:data];
175+
#endif
176+
}
163177

164178
// Not a full test of the request deserialization, but should be sufficient as a smoke test
165179
// to make sure the request IS actually getting serialized and deserialized in the

0 commit comments

Comments
 (0)