in FBSDKCoreKit/FBSDKCoreKitTests/Internal/AppEvents/AppEventsUtilityTests.swift [439:482]
func testAdvertiserTrackingEnabledInAppEventPayload() {
[
AdvertisingTrackingStatus.allowed,
.disallowed,
.unspecified,
]
.shuffled()
.forEach { status in
settings.advertisingTrackingStatus = status
settings.isAdvertiserTrackingEnabled = (status == .allowed)
let parameters = appEventsUtility.activityParametersDictionary(
forEvent: "event",
shouldAccessAdvertisingID: true,
userID: nil,
userData: nil
)
switch status {
case .unspecified:
XCTAssertNil(
parameters["advertiser_tracking_enabled"] as? String,
"advertiser_tracking_enabled should not be attached to event payload if ATE is unspecified"
)
case .allowed:
XCTAssertEqual(
"1",
parameters["advertiser_tracking_enabled"] as? String,
"advertiser_tracking_enabled should be default value when ATE is not set"
)
case .disallowed:
XCTAssertEqual(
"0",
parameters["advertiser_tracking_enabled"] as? String,
"advertiser_tracking_enabled should be equal to ATE explicitly setted via setAdvertiserTrackingStatus"
)
@unknown default:
XCTFail("IMPOSSIBLE: Unknown advertiser tracking status -- add a new status to list and new case to switch")
}
}
}