summaryrefslogtreecommitdiff
path: root/platform/darwin/test/MGLRendererConfigurationTests.mm
diff options
context:
space:
mode:
Diffstat (limited to 'platform/darwin/test/MGLRendererConfigurationTests.mm')
-rw-r--r--platform/darwin/test/MGLRendererConfigurationTests.mm96
1 files changed, 96 insertions, 0 deletions
diff --git a/platform/darwin/test/MGLRendererConfigurationTests.mm b/platform/darwin/test/MGLRendererConfigurationTests.mm
new file mode 100644
index 0000000000..a0c630ebb5
--- /dev/null
+++ b/platform/darwin/test/MGLRendererConfigurationTests.mm
@@ -0,0 +1,96 @@
+#import <Mapbox/Mapbox.h>
+#import <XCTest/XCTest.h>
+#import "MGLRendererConfiguration.h"
+
+static NSString * const MGLRendererConfigurationTests_collisionBehaviorKey = @"MGLCollisionBehaviorPre4_0";
+
+@interface MGLRendererConfiguration (Tests)
+- (instancetype)initWithPropertyDictionary:(nonnull NSDictionary*)bundle;
+@end
+
+
+@interface MGLRendererConfigurationTests : XCTestCase
+@end
+
+@implementation MGLRendererConfigurationTests
+- (void)setUp {
+ [[NSUserDefaults standardUserDefaults] removeObjectForKey:MGLRendererConfigurationTests_collisionBehaviorKey];
+}
+
+- (void)tearDown {
+ [[NSUserDefaults standardUserDefaults] removeObjectForKey:MGLRendererConfigurationTests_collisionBehaviorKey];
+}
+
+// Emulate what would happen with an Info.plist.
+- (void)testSettingMGLCollisionBehaviorPre40WithEmptyDictionary
+{
+ MGLRendererConfiguration *config = [[MGLRendererConfiguration alloc] initWithPropertyDictionary:@{}];
+ XCTAssertFalse(config.perSourceCollisions);
+}
+
+- (void)testSettingMGLCollisionBehaviorPre40WithYESDictionary
+{
+ MGLRendererConfiguration *config = [[MGLRendererConfiguration alloc] initWithPropertyDictionary:@{MGLRendererConfigurationTests_collisionBehaviorKey:@(NO)}];
+ XCTAssertFalse(config.perSourceCollisions);
+}
+
+- (void)testSettingMGLCollisionBehaviorPre40WithNODictionary
+{
+ MGLRendererConfiguration *config = [[MGLRendererConfiguration alloc] initWithPropertyDictionary:@{MGLRendererConfigurationTests_collisionBehaviorKey:@(YES)}];
+ XCTAssert(config.perSourceCollisions);
+}
+
+- (void)testSettingMGLCollisionBehaviorPre40InNSUserDefaults {
+ {
+ XCTAssertNil([[NSUserDefaults standardUserDefaults] objectForKey:MGLRendererConfigurationTests_collisionBehaviorKey]);
+ MGLRendererConfiguration *config = [MGLRendererConfiguration currentConfiguration];
+ XCTAssertFalse(config.perSourceCollisions);
+ }
+
+ [[NSUserDefaults standardUserDefaults] setObject:@(NO) forKey:MGLRendererConfigurationTests_collisionBehaviorKey];
+ {
+ XCTAssertNotNil([[NSUserDefaults standardUserDefaults] objectForKey:MGLRendererConfigurationTests_collisionBehaviorKey]);
+ MGLRendererConfiguration *config = [MGLRendererConfiguration currentConfiguration];
+ XCTAssertFalse(config.perSourceCollisions);
+ }
+
+ [[NSUserDefaults standardUserDefaults] setObject:@(YES) forKey:MGLRendererConfigurationTests_collisionBehaviorKey];
+ {
+ XCTAssertNotNil([[NSUserDefaults standardUserDefaults] objectForKey:MGLRendererConfigurationTests_collisionBehaviorKey]);
+ MGLRendererConfiguration *config = [MGLRendererConfiguration currentConfiguration];
+ XCTAssert(config.perSourceCollisions);
+ }
+}
+
+- (void)testSettingMGLCollisionBehaviorPre40PListValueUsingString {
+ // Dictionary = "NO"
+ {
+ MGLRendererConfiguration *config = [[MGLRendererConfiguration alloc] initWithPropertyDictionary:@{MGLRendererConfigurationTests_collisionBehaviorKey:@"NO"}];
+ XCTAssertFalse(config.perSourceCollisions);
+ }
+
+ // Dictionary = "YES"
+ {
+ MGLRendererConfiguration *config = [[MGLRendererConfiguration alloc] initWithPropertyDictionary:@{MGLRendererConfigurationTests_collisionBehaviorKey:@"YES"}];
+ XCTAssert(config.perSourceCollisions);
+ }
+}
+
+- (void)testOverridingMGLCollisionBehaviorPre40 {
+
+ // Dictionary = NO, NSUserDefaults = YES
+ {
+ [[NSUserDefaults standardUserDefaults] setObject:@(YES) forKey:MGLRendererConfigurationTests_collisionBehaviorKey];
+ MGLRendererConfiguration *config = [[MGLRendererConfiguration alloc] initWithPropertyDictionary:@{MGLRendererConfigurationTests_collisionBehaviorKey:@(NO)}];
+ XCTAssert(config.perSourceCollisions);
+ }
+
+ // Dictionary = YES, NSUserDefaults = NO
+ {
+ [[NSUserDefaults standardUserDefaults] setObject:@(NO) forKey:MGLRendererConfigurationTests_collisionBehaviorKey];
+ MGLRendererConfiguration *config = [[MGLRendererConfiguration alloc] initWithPropertyDictionary:@{MGLRendererConfigurationTests_collisionBehaviorKey:@(YES)}];
+ XCTAssertFalse(config.perSourceCollisions);
+ }
+}
+
+@end