Skip to content

Commit

Permalink
Merge e75446c into 7061b00
Browse files Browse the repository at this point in the history
  • Loading branch information
qdpham13 committed Jun 29, 2023
2 parents 7061b00 + e75446c commit 9dfdef5
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 7 deletions.
14 changes: 7 additions & 7 deletions FirebaseRemoteConfig/Sources/RCNConfigRealtime.m
Original file line number Diff line number Diff line change
Expand Up @@ -298,7 +298,7 @@ - (void)refreshInstallationsTokenWithCompletionHandler:
[installations authTokenWithCompletion:installationsTokenHandler];
}

- (void)setRequestBody {
- (NSData *)createRequestBody {
[self refreshInstallationsTokenWithCompletionHandler:^(FIRRemoteConfigFetchStatus status,
NSError *_Nullable error) {
if (status != FIRRemoteConfigFetchStatusSuccess) {
Expand All @@ -315,14 +315,13 @@ - (void)setRequestBody {
NSString *namespace = [_namespace substringToIndex:[_namespace rangeOfString:@":"].location];
NSString *postBody = [NSString
stringWithFormat:@"{project:'%@', namespace:'%@', lastKnownVersionNumber:'%@', appId:'%@', "
@"sdkVersion:'%@'}",
@"sdkVersion:'%@', appInstanceId:'%@'}",
[self->_options GCMSenderID], namespace, _configFetch.templateVersionNumber,
_options.googleAppID, FIRRemoteConfigPodVersion()];
_options.googleAppID, FIRRemoteConfigPodVersion(),
_settings.configInstallationsIdentifier];
NSData *postData = [postBody dataUsingEncoding:NSUTF8StringEncoding];
NSError *compressionError;
NSData *compressedContent = [NSData gul_dataByGzippingData:postData error:&compressionError];

[_request setHTTPBody:compressedContent];
return [NSData gul_dataByGzippingData:postData error:&compressionError];
}

/// Creates request.
Expand Down Expand Up @@ -665,7 +664,8 @@ - (void)beginRealtimeStream {

if (canMakeConnection) {
strongSelf->_isRequestInProgress = true;
[strongSelf setRequestBody];
NSData *compressedContent = [strongSelf createRequestBody];
[strongSelf->_request setHTTPBody:compressedContent];
strongSelf->_dataTask = [strongSelf->_session dataTaskWithRequest:strongSelf->_request];
[strongSelf->_dataTask resume];
}
Expand Down
17 changes: 17 additions & 0 deletions FirebaseRemoteConfig/Tests/Unit/RCNRemoteConfigTest.m
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ - (void)scheduleFetch:(NSInteger)remainingAttempts targetVersion:(NSInteger)targ
- (void)autoFetch:(NSInteger)remainingAttempts targetVersion:(NSInteger)targetVersion;
- (void)beginRealtimeStream;
- (void)pauseRealtimeStream;
- (NSData *)createRequestBody;

- (FIRConfigUpdateListenerRegistration *_Nonnull)addConfigUpdateListener:
(RCNConfigUpdateCompletion _Nonnull)listener;
Expand Down Expand Up @@ -243,6 +244,7 @@ - (void)setUp {
settings:_settings
namespace:_fullyQualifiedNamespace
options:currentOptions]);
_settings.configInstallationsIdentifier = @"iid";

OCMStubRecorder *mock = OCMStub([_configFetch[i] fetchConfigWithExpirationDuration:0
completionHandler:OCMOCK_ANY]);
Expand Down Expand Up @@ -1765,6 +1767,21 @@ - (void)testRealtimeDisabled {
}
}

- (void)testRealtimeStreamRequestBody {
NSError *error;
NSData *requestBody = [_configRealtime[0] createRequestBody];
NSData *uncompressedRequest = [NSData gul_dataByInflatingGzippedData:requestBody error:&error];
NSString *strData = [[NSString alloc] initWithData:uncompressedRequest
encoding:NSUTF8StringEncoding];

XCTAssertTrue([strData containsString:@"project:'correct_gcm_sender_id'"]);
XCTAssertTrue([strData containsString:@"namespace:'firebase'"]);
XCTAssertTrue([strData containsString:@"lastKnownVersionNumber:'0'"]);
XCTAssertTrue([strData containsString:@"appId:'1:123:ios:123abc'"]);
XCTAssertTrue([strData containsString:@"sdkVersion:"]);
XCTAssertTrue([strData containsString:@"appInstanceId:'iid'"]);
}

#pragma mark - Test Helpers

- (FIROptions *)firstAppOptions {
Expand Down

0 comments on commit 9dfdef5

Please sign in to comment.