func testAdvertiserTrackingEnabledInAppEventPayload()

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")
        }
      }
  }