59 lines
1.8 KiB
Swift
59 lines
1.8 KiB
Swift
/*
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under the license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
@testable import FBSDKShareKit
|
|
|
|
import XCTest
|
|
|
|
final class PrivacyManifestTests: XCTestCase {
|
|
var manifestUrl: URL?
|
|
|
|
override func setUp() {
|
|
super.setUp()
|
|
let bundle = Bundle(for: Hashtag.self)
|
|
manifestUrl = bundle.url(forResource: "PrivacyInfo", withExtension: "xcprivacy")
|
|
}
|
|
|
|
override func tearDown() {
|
|
manifestUrl = nil
|
|
super.tearDown()
|
|
}
|
|
|
|
func testTrackingDomains() {
|
|
guard let manifestUrl else {
|
|
return XCTFail("Could not find Privacy Manifest file")
|
|
}
|
|
let manifest = NSDictionary(contentsOf: manifestUrl)
|
|
guard let trackingDomains = manifest?["NSPrivacyTrackingDomains"] as? NSArray else {
|
|
return XCTFail("Could not find tracking domains")
|
|
}
|
|
XCTAssertTrue(trackingDomains.count == 1)
|
|
XCTAssertTrue(trackingDomains.contains("ep1.facebook.com"))
|
|
}
|
|
|
|
func testRequiredReasonAPIs() {
|
|
guard let manifestUrl else {
|
|
return XCTFail("Could not find Privacy Manifest file")
|
|
}
|
|
if NSDictionary(contentsOf: manifestUrl)?["NSPrivacyAccessedAPITypes"] != nil {
|
|
return XCTFail("Should not contain Privacy Accessed API Types")
|
|
}
|
|
}
|
|
|
|
func testPrivacyTracking() {
|
|
guard let manifestUrl else {
|
|
return XCTFail("Could not find Privacy Manifest file")
|
|
}
|
|
let manifest = NSDictionary(contentsOf: manifestUrl)
|
|
guard let privacyTrackingFlag = manifest?["NSPrivacyTracking"] as? Bool else {
|
|
return XCTFail("Could not find NSPrivacyTracking key")
|
|
}
|
|
XCTAssertTrue(privacyTrackingFlag, "NSPrivacyTracking is expected to be true in the Privacy Manifest file")
|
|
}
|
|
}
|