mirror of
https://github.com/firebase/firebase-ios-sdk
synced 2026-11-10 22:45:59 +05:45
* Remove FIRAnalyticsConfiguration from Public header. We haven't removed it entirely yet because we need to make changes within Analytics to verify that the global data collection switch is still honored and tested well. This can wait until after the breaking change because the header and code will be internal after this change. * Fixed incomplete comment. * Remove self importing header.
86 lines
3.1 KiB
Objective-C
86 lines
3.1 KiB
Objective-C
/*
|
|
* Copyright 2018 Google
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
#import "FIRTestCase.h"
|
|
|
|
#import <FirebaseCore/FIRAnalyticsConfiguration.h>
|
|
|
|
@interface FIRAnalyticsConfigurationTest : FIRTestCase
|
|
/// An observer for NSNotificationCenter.
|
|
@property(nonatomic, strong) id observerMock;
|
|
|
|
@property(nonatomic, strong) NSNotificationCenter *notificationCenter;
|
|
@end
|
|
|
|
@implementation FIRAnalyticsConfigurationTest
|
|
|
|
- (void)setUp {
|
|
[super setUp];
|
|
|
|
_observerMock = OCMObserverMock();
|
|
_notificationCenter = [NSNotificationCenter defaultCenter];
|
|
}
|
|
|
|
- (void)tearDown {
|
|
_observerMock = nil;
|
|
_notificationCenter = nil;
|
|
|
|
[super tearDown];
|
|
}
|
|
|
|
/// Test access to the shared instance.
|
|
- (void)testSharedInstance {
|
|
FIRAnalyticsConfiguration *analyticsConfig = [FIRAnalyticsConfiguration sharedInstance];
|
|
XCTAssertNotNil(analyticsConfig);
|
|
}
|
|
|
|
- (void)testSettingAnalyticsCollectionPersistence {
|
|
id userDefaultsMock = OCMPartialMock([NSUserDefaults standardUserDefaults]);
|
|
FIRAnalyticsConfiguration *config = [FIRAnalyticsConfiguration sharedInstance];
|
|
|
|
// Test that defaults are written to when persistence is enabled.
|
|
[config setAnalyticsCollectionEnabled:YES persistSetting:YES];
|
|
OCMVerify([userDefaultsMock setObject:[NSNumber numberWithInteger:kFIRAnalyticsEnabledStateSetYes]
|
|
forKey:kFIRAPersistedConfigMeasurementEnabledStateKey]);
|
|
|
|
[config setAnalyticsCollectionEnabled:NO persistSetting:YES];
|
|
OCMVerify([userDefaultsMock setObject:[NSNumber numberWithInteger:kFIRAnalyticsEnabledStateSetNo]
|
|
forKey:kFIRAPersistedConfigMeasurementEnabledStateKey]);
|
|
|
|
// Test that defaults are not written to when persistence is disabled.
|
|
[config setAnalyticsCollectionEnabled:YES persistSetting:NO];
|
|
OCMReject([userDefaultsMock setObject:OCMOCK_ANY
|
|
forKey:kFIRAPersistedConfigMeasurementEnabledStateKey]);
|
|
|
|
[config setAnalyticsCollectionEnabled:NO persistSetting:NO];
|
|
OCMReject([userDefaultsMock setObject:OCMOCK_ANY
|
|
forKey:kFIRAPersistedConfigMeasurementEnabledStateKey]);
|
|
|
|
[userDefaultsMock stopMocking];
|
|
}
|
|
|
|
#pragma mark - Private Test Helpers
|
|
|
|
- (void)expectNotificationForObserver:(id)observer
|
|
notificationName:(NSNotificationName)name
|
|
object:(nullable id)object
|
|
userInfo:(nullable NSDictionary *)userInfo {
|
|
[self.notificationCenter addMockObserver:self.observerMock name:name object:object];
|
|
[[observer expect] notificationWithName:name object:object userInfo:userInfo];
|
|
}
|
|
|
|
@end
|