in FBSDKCoreKit/FBSDKCoreKitTests/Internal/ServerConfiguration/ServerConfigurationTests.swift [582:659]
func testDecoding() throws {
let decoder = TestCoder()
config = try XCTUnwrap(ServerConfiguration(coder: decoder))
let dialogFlowsClasses = NSSet(array: [
NSDictionary.self,
NSNumber.self,
NSString.self,
])
let dictionaryClasses = NSSet(array: [
NSArray.self,
NSData.self,
NSDictionary.self,
NSNumber.self,
NSString.self,
])
XCTAssertTrue(decoder.decodedObject["appID"] is NSString.Type)
XCTAssertTrue(decoder.decodedObject["appName"] is NSString.Type)
XCTAssertEqual(
decoder.decodedObject["loginTooltipEnabled"] as? String,
"decodeBoolForKey",
"Should decode loginTooltipEnabled as a Bool"
)
XCTAssertTrue(decoder.decodedObject["loginTooltipText"] is NSString.Type)
XCTAssertTrue(decoder.decodedObject["defaultShareMode"] is NSString.Type)
XCTAssertEqual(
decoder.decodedObject["advertisingIDEnabled"] as? String,
"decodeBoolForKey",
"Should decode advertisingIDEnabled as a Bool"
)
XCTAssertEqual(
decoder.decodedObject["implicitLoggingEnabled"] as? String,
"decodeBoolForKey",
"Should decode implicitLoggingEnabled as a Bool"
)
XCTAssertEqual(
decoder.decodedObject["implicitPurchaseLoggingEnabled"] as? String,
"decodeBoolForKey",
"Should decode implicitPurchaseLoggingEnabled as a Bool"
)
XCTAssertEqual(
decoder.decodedObject["codelessEventsEnabled"] as? String,
"decodeBoolForKey",
"Should decode codelessEventsEnabled as a Bool"
)
XCTAssertEqual(
decoder.decodedObject["trackAppUninstallEnabled"] as? String,
"decodeBoolForKey",
"Should decode trackAppUninstallEnabled as a Bool"
)
XCTAssertEqual(decoder.decodedObject["dialogFlows"] as? NSSet, dialogFlowsClasses)
XCTAssertTrue(decoder.decodedObject["timestamp"] is NSDate.Type)
XCTAssertTrue(decoder.decodedObject["errorConfigs"] is ErrorConfiguration.Type)
XCTAssertEqual(
decoder.decodedObject["sessionTimeoutInterval"] as? String,
"decodeDoubleForKey",
"Should decode implicitLoggingEnabled as a Double"
)
XCTAssertNil(
decoder.decodedObject["defaults"],
"Should not encode whether default values were used to create server configuration"
)
XCTAssertTrue(decoder.decodedObject["loggingToken"] is NSString.Type)
XCTAssertEqual(
decoder.decodedObject["smartLoginEnabled"] as? String,
"decodeIntegerForKey",
"Should decode smartLoginEnabled as an integer"
)
XCTAssertTrue(decoder.decodedObject["smarstLoginBookmarkIconURL"] is NSURL.Type)
XCTAssertTrue(decoder.decodedObject["smarstLoginBookmarkMenuURL"] is NSURL.Type)
XCTAssertTrue(decoder.decodedObject["SDKUpdateMessage"] is NSString.Type)
XCTAssertTrue(decoder.decodedObject["eventBindings"] is NSArray.Type)
XCTAssertEqual(decoder.decodedObject["restrictiveParams"] as? NSSet, dictionaryClasses)
XCTAssertEqual(decoder.decodedObject["AAMRules"] as? NSSet, dictionaryClasses)
XCTAssertEqual(decoder.decodedObject["suggestedEventsSetting"] as? NSSet, dictionaryClasses)
}