1616
1717#import < XCTest/XCTest.h>
1818
19+ #import < FirebaseCore/FIRAppInternal.h>
1920#import < OCMock/OCMock.h>
2021#import " Firebase/InstanceID/FIRInstanceIDCheckinPreferences+Internal.h"
2122#import " Firebase/InstanceID/FIRInstanceIDCheckinPreferences.h"
@@ -38,15 +39,15 @@ @implementation FIRInstanceIDCheckinServiceTest
3839
3940- (void )setUp {
4041 [super setUp ];
42+ self.checkinService = [[FIRInstanceIDCheckinService alloc ] init ];
4143}
4244
4345- (void )tearDown {
46+ self.checkinService = nil ;
4447 [super tearDown ];
4548}
4649
4750- (void )testCheckinWithSuccessfulCompletion {
48- self.checkinService = [[FIRInstanceIDCheckinService alloc ] init ];
49-
5051 FIRInstanceIDCheckinPreferences *existingCheckin = [self stubCheckinCacheWithValidData ];
5152
5253 [FIRInstanceIDCheckinService setCheckinTestBlock: [self successfulCheckinCompletionHandler ]];
@@ -79,8 +80,6 @@ - (void)testCheckinWithSuccessfulCompletion {
7980}
8081
8182- (void )testFailedCheckinService {
82- self.checkinService = [[FIRInstanceIDCheckinService alloc ] init ];
83-
8483 [FIRInstanceIDCheckinService setCheckinTestBlock: [self failCheckinCompletionHandler ]];
8584
8685 XCTestExpectation *checkinCompletionExpectation =
@@ -104,6 +103,37 @@ - (void)testFailedCheckinService {
104103 }];
105104}
106105
106+ - (void )testCheckinServiceAddsFirebaseUserAgentToHTTPHeader {
107+ NSString *expectedFirebaseUserAgent = [FIRApp firebaseUserAgent ];
108+
109+ FIRInstanceIDURLRequestTestBlock successHandler = [self successfulCheckinCompletionHandler ];
110+
111+ [FIRInstanceIDCheckinService
112+ setCheckinTestBlock: ^(NSURLRequest *request,
113+ FIRInstanceIDURLRequestTestResponseBlock response) {
114+ NSString *requestFirebaseUserAgentValue =
115+ request.allHTTPHeaderFields [kFIRInstanceIDFirebaseUserAgentKey ];
116+ XCTAssertEqualObjects (requestFirebaseUserAgentValue, expectedFirebaseUserAgent);
117+ successHandler (request, response);
118+ }];
119+
120+ XCTestExpectation *checkinCompletionExpectation =
121+ [self expectationWithDescription: @" Checkin Completion" ];
122+
123+ [self .checkinService
124+ checkinWithExistingCheckin: nil
125+ completion: ^(FIRInstanceIDCheckinPreferences *preferences, NSError *error) {
126+ [checkinCompletionExpectation fulfill ];
127+ }];
128+
129+ [self waitForExpectationsWithTimeout: 5
130+ handler: ^(NSError *error) {
131+ if (error) {
132+ XCTFail (@" Checkin Timeout Error: %@ " , error);
133+ }
134+ }];
135+ }
136+
107137#pragma mark - Stub
108138
109139- (FIRInstanceIDCheckinPreferences *)stubCheckinCacheWithValidData {
0 commit comments