25
25
26
26
@interface FIROptions (Test)
27
27
28
- @property (nonatomic , readonly ) NSDictionary *analyticsOptionsDictionary;
28
+ - (nullable NSDictionary *)analyticsOptionsDictionaryWithInfoDictionary :
29
+ (nullable NSDictionary *)infoDictionary ;
29
30
30
31
@end
31
32
@@ -263,22 +264,20 @@ - (void)testAnalyticsConstants {
263
264
}
264
265
265
266
- (void )testAnalyticsOptions {
266
- id mainBundleMock = OCMPartialMock ([NSBundle mainBundle ]);
267
-
268
267
// No keys anywhere.
269
268
NSDictionary *optionsDictionary = nil ;
270
269
FIROptions *options = [[FIROptions alloc ] initInternalWithOptionsDictionary: optionsDictionary];
271
270
NSDictionary *mainDictionary = nil ;
272
- OCMExpect ([mainBundleMock infoDictionary ]).andReturn (mainDictionary);
273
271
NSDictionary *expectedAnalyticsOptions = @{};
274
- XCTAssertEqualObjects (options.analyticsOptionsDictionary , expectedAnalyticsOptions);
272
+ NSDictionary *analyticsOptions = [options analyticsOptionsDictionaryWithInfoDictionary: nil ];
273
+ XCTAssertEqualObjects (analyticsOptions, expectedAnalyticsOptions);
275
274
276
275
optionsDictionary = @{};
277
276
options = [[FIROptions alloc ] initInternalWithOptionsDictionary: optionsDictionary];
278
277
mainDictionary = @{};
279
- OCMExpect ([mainBundleMock infoDictionary ]).andReturn (mainDictionary);
280
278
expectedAnalyticsOptions = @{};
281
- XCTAssertEqualObjects (options.analyticsOptionsDictionary , expectedAnalyticsOptions);
279
+ analyticsOptions = [options analyticsOptionsDictionaryWithInfoDictionary: mainDictionary];
280
+ XCTAssertEqualObjects (analyticsOptions, expectedAnalyticsOptions);
282
281
283
282
// Main has no keys.
284
283
optionsDictionary = @{
@@ -288,9 +287,9 @@ - (void)testAnalyticsOptions {
288
287
};
289
288
options = [[FIROptions alloc ] initInternalWithOptionsDictionary: optionsDictionary];
290
289
mainDictionary = @{};
291
- OCMExpect ([mainBundleMock infoDictionary ]).andReturn (mainDictionary);
292
290
expectedAnalyticsOptions = optionsDictionary;
293
- XCTAssertEqualObjects (options.analyticsOptionsDictionary , expectedAnalyticsOptions);
291
+ analyticsOptions = [options analyticsOptionsDictionaryWithInfoDictionary: mainDictionary];
292
+ XCTAssertEqualObjects (analyticsOptions, expectedAnalyticsOptions);
294
293
295
294
// Main overrides all the keys.
296
295
optionsDictionary = @{
@@ -304,9 +303,9 @@ - (void)testAnalyticsOptions {
304
303
kFIRIsAnalyticsCollectionEnabled : @NO ,
305
304
kFIRIsMeasurementEnabled : @NO
306
305
};
307
- OCMExpect ([mainBundleMock infoDictionary ]).andReturn (mainDictionary);
308
306
expectedAnalyticsOptions = mainDictionary;
309
- XCTAssertEqualObjects (options.analyticsOptionsDictionary , expectedAnalyticsOptions);
307
+ analyticsOptions = [options analyticsOptionsDictionaryWithInfoDictionary: mainDictionary];
308
+ XCTAssertEqualObjects (analyticsOptions, expectedAnalyticsOptions);
310
309
311
310
// Keys exist only in main.
312
311
optionsDictionary = @{};
@@ -316,9 +315,9 @@ - (void)testAnalyticsOptions {
316
315
kFIRIsAnalyticsCollectionEnabled : @YES ,
317
316
kFIRIsMeasurementEnabled : @YES
318
317
};
319
- OCMExpect ([mainBundleMock infoDictionary ]).andReturn (mainDictionary);
320
318
expectedAnalyticsOptions = mainDictionary;
321
- XCTAssertEqualObjects (options.analyticsOptionsDictionary , expectedAnalyticsOptions);
319
+ analyticsOptions = [options analyticsOptionsDictionaryWithInfoDictionary: mainDictionary];
320
+ XCTAssertEqualObjects (analyticsOptions, expectedAnalyticsOptions);
322
321
323
322
// Main overrides single keys.
324
323
optionsDictionary = @{
@@ -328,13 +327,13 @@ - (void)testAnalyticsOptions {
328
327
};
329
328
options = [[FIROptions alloc ] initInternalWithOptionsDictionary: optionsDictionary];
330
329
mainDictionary = @{ kFIRIsAnalyticsCollectionDeactivated : @NO };
331
- OCMExpect ([mainBundleMock infoDictionary ]).andReturn (mainDictionary);
332
330
expectedAnalyticsOptions = @{
333
331
kFIRIsAnalyticsCollectionDeactivated : @NO , // override
334
332
kFIRIsAnalyticsCollectionEnabled : @YES ,
335
333
kFIRIsMeasurementEnabled : @YES
336
334
};
337
- XCTAssertEqualObjects (options.analyticsOptionsDictionary , expectedAnalyticsOptions);
335
+ analyticsOptions = [options analyticsOptionsDictionaryWithInfoDictionary: mainDictionary];
336
+ XCTAssertEqualObjects (analyticsOptions, expectedAnalyticsOptions);
338
337
339
338
optionsDictionary = @{
340
339
kFIRIsAnalyticsCollectionDeactivated : @YES ,
@@ -343,13 +342,13 @@ - (void)testAnalyticsOptions {
343
342
};
344
343
options = [[FIROptions alloc ] initInternalWithOptionsDictionary: optionsDictionary];
345
344
mainDictionary = @{ kFIRIsAnalyticsCollectionEnabled : @NO };
346
- OCMExpect ([mainBundleMock infoDictionary ]).andReturn (mainDictionary);
347
345
expectedAnalyticsOptions = @{
348
346
kFIRIsAnalyticsCollectionDeactivated : @YES ,
349
347
kFIRIsAnalyticsCollectionEnabled : @NO , // override
350
348
kFIRIsMeasurementEnabled : @YES
351
349
};
352
- XCTAssertEqualObjects (options.analyticsOptionsDictionary , expectedAnalyticsOptions);
350
+ analyticsOptions = [options analyticsOptionsDictionaryWithInfoDictionary: mainDictionary];
351
+ XCTAssertEqualObjects (analyticsOptions, expectedAnalyticsOptions);
353
352
354
353
optionsDictionary = @{
355
354
kFIRIsAnalyticsCollectionDeactivated : @YES ,
@@ -358,18 +357,18 @@ - (void)testAnalyticsOptions {
358
357
};
359
358
options = [[FIROptions alloc ] initInternalWithOptionsDictionary: optionsDictionary];
360
359
mainDictionary = @{ kFIRIsMeasurementEnabled : @NO };
361
- OCMExpect ([mainBundleMock infoDictionary ]).andReturn (mainDictionary);
362
360
expectedAnalyticsOptions = @{
363
361
kFIRIsAnalyticsCollectionDeactivated : @YES ,
364
362
kFIRIsAnalyticsCollectionEnabled : @YES ,
365
363
kFIRIsMeasurementEnabled : @NO // override
366
364
};
367
- XCTAssertEqualObjects (options.analyticsOptionsDictionary , expectedAnalyticsOptions);
365
+ analyticsOptions = [options analyticsOptionsDictionaryWithInfoDictionary: mainDictionary];
366
+ XCTAssertEqualObjects (analyticsOptions, expectedAnalyticsOptions);
368
367
}
369
368
370
369
- (void )testAnalyticsOptions_combinatorial {
371
370
// Complete combinatorial test.
372
- id mainBundleMock = OCMPartialMock ([ NSBundle mainBundle ]);
371
+
373
372
// Possible values for the flags in the plist, where NSNull means the flag is not present.
374
373
NSArray *values = @[ [NSNull null ], @NO , @YES ];
375
374
@@ -398,6 +397,7 @@ - (void)testAnalyticsOptions_combinatorial {
398
397
if (![optionsMeasurementEnabled isEqual: [NSNull null ]]) {
399
398
optionsDictionary[kFIRIsMeasurementEnabled ] = optionsMeasurementEnabled;
400
399
}
400
+
401
401
FIROptions *options =
402
402
[[FIROptions alloc ] initInternalWithOptionsDictionary: optionsDictionary];
403
403
if (![uniqueOptionsCombinations containsObject: optionsDictionary]) {
@@ -415,7 +415,8 @@ - (void)testAnalyticsOptions_combinatorial {
415
415
if (![mainMeasurementEnabled isEqual: [NSNull null ]]) {
416
416
mainDictionary[kFIRIsMeasurementEnabled ] = mainMeasurementEnabled;
417
417
}
418
- OCMExpect ([mainBundleMock infoDictionary ]).andReturn (mainDictionary);
418
+
419
+ // Add mainDictionary to uniqueMainCombinations if it isn't included yet.
419
420
if (![uniqueMainCombinations containsObject: mainDictionary]) {
420
421
[uniqueMainCombinations addObject: mainDictionary];
421
422
}
@@ -427,7 +428,10 @@ - (void)testAnalyticsOptions_combinatorial {
427
428
NSMutableDictionary *expectedAnalyticsOptions =
428
429
[[NSMutableDictionary alloc ] initWithDictionary: optionsDictionary];
429
430
[expectedAnalyticsOptions addEntriesFromDictionary: mainDictionary];
430
- XCTAssertEqualObjects (options.analyticsOptionsDictionary , expectedAnalyticsOptions);
431
+
432
+ NSDictionary *analyticsOptions =
433
+ [options analyticsOptionsDictionaryWithInfoDictionary: mainDictionary];
434
+ XCTAssertEqualObjects (analyticsOptions, expectedAnalyticsOptions);
431
435
432
436
combinationCount++;
433
437
}
0 commit comments