diff --git a/GoogleSignIn/Sources/GIDClaim.m b/GoogleSignIn/Sources/GIDClaim.m index 13792cae..f9e92e8a 100644 --- a/GoogleSignIn/Sources/GIDClaim.m +++ b/GoogleSignIn/Sources/GIDClaim.m @@ -17,6 +17,7 @@ #import "GoogleSignIn/Sources/Public/GoogleSignIn/GIDClaim.h" NSString * const kAuthTimeClaimName = @"auth_time"; +NSString * const kAMRClaimName = @"amr"; // Private interface to declare the internal initializer @interface GIDClaim () @@ -48,6 +49,14 @@ + (instancetype)essentialAuthTimeClaim { return [[self alloc] initWithName:kAuthTimeClaimName essential:YES]; } ++ (instancetype)amrClaim { + return [[self alloc] initWithName:kAMRClaimName essential:NO]; +} + ++ (instancetype)essentialAMRClaim { + return [[self alloc] initWithName:kAMRClaimName essential:YES]; +} + #pragma mark - NSObject - (BOOL)isEqual:(id)object { diff --git a/GoogleSignIn/Sources/Public/GoogleSignIn/GIDClaim.h b/GoogleSignIn/Sources/Public/GoogleSignIn/GIDClaim.h index bc266930..4b944e26 100644 --- a/GoogleSignIn/Sources/Public/GoogleSignIn/GIDClaim.h +++ b/GoogleSignIn/Sources/Public/GoogleSignIn/GIDClaim.h @@ -19,6 +19,7 @@ NS_ASSUME_NONNULL_BEGIN extern NSString *const kAuthTimeClaimName; +extern NSString *const kAMRClaimName; /** * An object representing a single OIDC claim to be requested for an ID token. @@ -42,6 +43,12 @@ extern NSString *const kAuthTimeClaimName; /// Creates an *essential* "auth_time" claim object. + (instancetype)essentialAuthTimeClaim; +/// Creates a *non-essential* (voluntary) "amr" claim object. ++ (instancetype)amrClaim; + +/// Creates an *essential* "amr" claim object. ++ (instancetype)essentialAMRClaim; + @end NS_ASSUME_NONNULL_END diff --git a/GoogleSignIn/Tests/Unit/GIDClaimTest.m b/GoogleSignIn/Tests/Unit/GIDClaimTest.m index e014d885..9984163b 100644 --- a/GoogleSignIn/Tests/Unit/GIDClaimTest.m +++ b/GoogleSignIn/Tests/Unit/GIDClaimTest.m @@ -33,6 +33,18 @@ - (void)testEssentialAuthTimeClaim_PropertiesAreCorrect { XCTAssertTrue(claim.isEssential); } +- (void)testAMRClaim_PropertiesAreCorrect { + GIDClaim *claim = [GIDClaim amrClaim]; + XCTAssertEqualObjects(claim.name, kAMRClaimName); + XCTAssertFalse(claim.isEssential); +} + +- (void)testEssentialAMRClaim_PropertiesAreCorrect { + GIDClaim *claim = [GIDClaim essentialAMRClaim]; + XCTAssertEqualObjects(claim.name, kAMRClaimName); + XCTAssertTrue(claim.isEssential); +} + - (void)testEquality_WithEqualClaims { GIDClaim *claim1 = [GIDClaim authTimeClaim]; GIDClaim *claim2 = [GIDClaim authTimeClaim]; diff --git a/Samples/Swift/DaysUntilBirthday/GoogleSignIn-UnitTests.xctestplan b/Samples/Swift/DaysUntilBirthday/GoogleSignIn-UnitTests.xctestplan new file mode 100644 index 00000000..b2659cb5 --- /dev/null +++ b/Samples/Swift/DaysUntilBirthday/GoogleSignIn-UnitTests.xctestplan @@ -0,0 +1,24 @@ +{ + "configurations" : [ + { + "id" : "E1592086-F47A-47B0-89F5-A5A3C3FBEF58", + "name" : "Test Scheme Action", + "options" : { + + } + } + ], + "defaultOptions" : { + + }, + "testTargets" : [ + { + "target" : { + "containerPath" : "container:", + "identifier" : "GoogleSignIn-UnitTests", + "name" : "GoogleSignIn-UnitTests" + } + } + ], + "version" : 1 +}