aboutsummaryrefslogtreecommitdiffhomepage
path: root/Example/Core
diff options
context:
space:
mode:
authorGravatar Ryan Wilson <wilsonryan@google.com>2018-01-15 08:46:22 -0500
committerGravatar GitHub <noreply@github.com>2018-01-15 08:46:22 -0500
commit2c0cacd3ee9d78a095de6069f7b59415f647718b (patch)
treefbef8a168be7d60c315b904b2ff23839b1088185 /Example/Core
parentb15283bd27d6ac5eb784efc52ab13bc40b35a625 (diff)
Inject infoDictionary to fix flakey tests. (#664)
* Inject infoDictionary to fix flakey tests. * Remove outdated comment, update format.
Diffstat (limited to 'Example/Core')
-rw-r--r--Example/Core/Tests/FIROptionsTest.m48
1 files changed, 26 insertions, 22 deletions
diff --git a/Example/Core/Tests/FIROptionsTest.m b/Example/Core/Tests/FIROptionsTest.m
index d27a0e1..8170405 100644
--- a/Example/Core/Tests/FIROptionsTest.m
+++ b/Example/Core/Tests/FIROptionsTest.m
@@ -25,7 +25,8 @@ extern NSString *const kFIRLibraryVersionID;
@interface FIROptions (Test)
-@property(nonatomic, readonly) NSDictionary *analyticsOptionsDictionary;
+- (nullable NSDictionary *)analyticsOptionsDictionaryWithInfoDictionary:
+ (nullable NSDictionary *)infoDictionary;
@end
@@ -263,22 +264,20 @@ extern NSString *const kFIRLibraryVersionID;
}
- (void)testAnalyticsOptions {
- id mainBundleMock = OCMPartialMock([NSBundle mainBundle]);
-
// No keys anywhere.
NSDictionary *optionsDictionary = nil;
FIROptions *options = [[FIROptions alloc] initInternalWithOptionsDictionary:optionsDictionary];
NSDictionary *mainDictionary = nil;
- OCMExpect([mainBundleMock infoDictionary]).andReturn(mainDictionary);
NSDictionary *expectedAnalyticsOptions = @{};
- XCTAssertEqualObjects(options.analyticsOptionsDictionary, expectedAnalyticsOptions);
+ NSDictionary *analyticsOptions = [options analyticsOptionsDictionaryWithInfoDictionary:nil];
+ XCTAssertEqualObjects(analyticsOptions, expectedAnalyticsOptions);
optionsDictionary = @{};
options = [[FIROptions alloc] initInternalWithOptionsDictionary:optionsDictionary];
mainDictionary = @{};
- OCMExpect([mainBundleMock infoDictionary]).andReturn(mainDictionary);
expectedAnalyticsOptions = @{};
- XCTAssertEqualObjects(options.analyticsOptionsDictionary, expectedAnalyticsOptions);
+ analyticsOptions = [options analyticsOptionsDictionaryWithInfoDictionary:mainDictionary];
+ XCTAssertEqualObjects(analyticsOptions, expectedAnalyticsOptions);
// Main has no keys.
optionsDictionary = @{
@@ -288,9 +287,9 @@ extern NSString *const kFIRLibraryVersionID;
};
options = [[FIROptions alloc] initInternalWithOptionsDictionary:optionsDictionary];
mainDictionary = @{};
- OCMExpect([mainBundleMock infoDictionary]).andReturn(mainDictionary);
expectedAnalyticsOptions = optionsDictionary;
- XCTAssertEqualObjects(options.analyticsOptionsDictionary, expectedAnalyticsOptions);
+ analyticsOptions = [options analyticsOptionsDictionaryWithInfoDictionary:mainDictionary];
+ XCTAssertEqualObjects(analyticsOptions, expectedAnalyticsOptions);
// Main overrides all the keys.
optionsDictionary = @{
@@ -304,9 +303,9 @@ extern NSString *const kFIRLibraryVersionID;
kFIRIsAnalyticsCollectionEnabled : @NO,
kFIRIsMeasurementEnabled : @NO
};
- OCMExpect([mainBundleMock infoDictionary]).andReturn(mainDictionary);
expectedAnalyticsOptions = mainDictionary;
- XCTAssertEqualObjects(options.analyticsOptionsDictionary, expectedAnalyticsOptions);
+ analyticsOptions = [options analyticsOptionsDictionaryWithInfoDictionary:mainDictionary];
+ XCTAssertEqualObjects(analyticsOptions, expectedAnalyticsOptions);
// Keys exist only in main.
optionsDictionary = @{};
@@ -316,9 +315,9 @@ extern NSString *const kFIRLibraryVersionID;
kFIRIsAnalyticsCollectionEnabled : @YES,
kFIRIsMeasurementEnabled : @YES
};
- OCMExpect([mainBundleMock infoDictionary]).andReturn(mainDictionary);
expectedAnalyticsOptions = mainDictionary;
- XCTAssertEqualObjects(options.analyticsOptionsDictionary, expectedAnalyticsOptions);
+ analyticsOptions = [options analyticsOptionsDictionaryWithInfoDictionary:mainDictionary];
+ XCTAssertEqualObjects(analyticsOptions, expectedAnalyticsOptions);
// Main overrides single keys.
optionsDictionary = @{
@@ -328,13 +327,13 @@ extern NSString *const kFIRLibraryVersionID;
};
options = [[FIROptions alloc] initInternalWithOptionsDictionary:optionsDictionary];
mainDictionary = @{ kFIRIsAnalyticsCollectionDeactivated : @NO };
- OCMExpect([mainBundleMock infoDictionary]).andReturn(mainDictionary);
expectedAnalyticsOptions = @{
kFIRIsAnalyticsCollectionDeactivated : @NO, // override
kFIRIsAnalyticsCollectionEnabled : @YES,
kFIRIsMeasurementEnabled : @YES
};
- XCTAssertEqualObjects(options.analyticsOptionsDictionary, expectedAnalyticsOptions);
+ analyticsOptions = [options analyticsOptionsDictionaryWithInfoDictionary:mainDictionary];
+ XCTAssertEqualObjects(analyticsOptions, expectedAnalyticsOptions);
optionsDictionary = @{
kFIRIsAnalyticsCollectionDeactivated : @YES,
@@ -343,13 +342,13 @@ extern NSString *const kFIRLibraryVersionID;
};
options = [[FIROptions alloc] initInternalWithOptionsDictionary:optionsDictionary];
mainDictionary = @{ kFIRIsAnalyticsCollectionEnabled : @NO };
- OCMExpect([mainBundleMock infoDictionary]).andReturn(mainDictionary);
expectedAnalyticsOptions = @{
kFIRIsAnalyticsCollectionDeactivated : @YES,
kFIRIsAnalyticsCollectionEnabled : @NO, // override
kFIRIsMeasurementEnabled : @YES
};
- XCTAssertEqualObjects(options.analyticsOptionsDictionary, expectedAnalyticsOptions);
+ analyticsOptions = [options analyticsOptionsDictionaryWithInfoDictionary:mainDictionary];
+ XCTAssertEqualObjects(analyticsOptions, expectedAnalyticsOptions);
optionsDictionary = @{
kFIRIsAnalyticsCollectionDeactivated : @YES,
@@ -358,18 +357,18 @@ extern NSString *const kFIRLibraryVersionID;
};
options = [[FIROptions alloc] initInternalWithOptionsDictionary:optionsDictionary];
mainDictionary = @{ kFIRIsMeasurementEnabled : @NO };
- OCMExpect([mainBundleMock infoDictionary]).andReturn(mainDictionary);
expectedAnalyticsOptions = @{
kFIRIsAnalyticsCollectionDeactivated : @YES,
kFIRIsAnalyticsCollectionEnabled : @YES,
kFIRIsMeasurementEnabled : @NO // override
};
- XCTAssertEqualObjects(options.analyticsOptionsDictionary, expectedAnalyticsOptions);
+ analyticsOptions = [options analyticsOptionsDictionaryWithInfoDictionary:mainDictionary];
+ XCTAssertEqualObjects(analyticsOptions, expectedAnalyticsOptions);
}
- (void)testAnalyticsOptions_combinatorial {
// Complete combinatorial test.
- id mainBundleMock = OCMPartialMock([NSBundle mainBundle]);
+
// Possible values for the flags in the plist, where NSNull means the flag is not present.
NSArray *values = @[ [NSNull null], @NO, @YES ];
@@ -398,6 +397,7 @@ extern NSString *const kFIRLibraryVersionID;
if (![optionsMeasurementEnabled isEqual:[NSNull null]]) {
optionsDictionary[kFIRIsMeasurementEnabled] = optionsMeasurementEnabled;
}
+
FIROptions *options =
[[FIROptions alloc] initInternalWithOptionsDictionary:optionsDictionary];
if (![uniqueOptionsCombinations containsObject:optionsDictionary]) {
@@ -415,7 +415,8 @@ extern NSString *const kFIRLibraryVersionID;
if (![mainMeasurementEnabled isEqual:[NSNull null]]) {
mainDictionary[kFIRIsMeasurementEnabled] = mainMeasurementEnabled;
}
- OCMExpect([mainBundleMock infoDictionary]).andReturn(mainDictionary);
+
+ // Add mainDictionary to uniqueMainCombinations if it isn't included yet.
if (![uniqueMainCombinations containsObject:mainDictionary]) {
[uniqueMainCombinations addObject:mainDictionary];
}
@@ -427,7 +428,10 @@ extern NSString *const kFIRLibraryVersionID;
NSMutableDictionary *expectedAnalyticsOptions =
[[NSMutableDictionary alloc] initWithDictionary:optionsDictionary];
[expectedAnalyticsOptions addEntriesFromDictionary:mainDictionary];
- XCTAssertEqualObjects(options.analyticsOptionsDictionary, expectedAnalyticsOptions);
+
+ NSDictionary *analyticsOptions =
+ [options analyticsOptionsDictionaryWithInfoDictionary:mainDictionary];
+ XCTAssertEqualObjects(analyticsOptions, expectedAnalyticsOptions);
combinationCount++;
}