DailyView/Carthage/Checkouts/facebook-ios-sdk/FBSDKGamingServicesKit/FBSDKGamingServicesKitTests/GamingPayloadTests.swift
2025-12-30 16:40:31 +08:00

99 lines
3.0 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 FBSDKGamingServicesKit
import FBSDKCoreKit
import XCTest
final class GamingPayloadTests: XCTestCase {
func testGamePayloadWithValidValues() throws {
let url = try SampleUnparsedAppLinkURLs.validGameRequestUrl()
let appLink = AppLinkURL(url: url)
let gamingPayload = GamingPayload(URL: appLink)
XCTAssertEqual("123", gamingPayload.gameRequestID)
XCTAssertEqual("payload", gamingPayload.payload)
}
func testGamingPayloadWithNonAlphanumericStrings() throws {
let url = try SampleUnparsedAppLinkURLs.create(payload: "{}{}{}", gameRequestID: "{}{}{}")
let appLink = AppLinkURL(url: url)
let gamingPayload = GamingPayload(URL: appLink)
XCTAssertEqual(
"{}{}{}",
gamingPayload.gameRequestID,
"Should be able to return a gameRequestID with non alphanumeric values"
)
XCTAssertEqual(
"{}{}{}",
gamingPayload.payload,
"Should be able to return a payload with non alphanumeric values"
)
}
func testGamingPayloadWithNilInPayload() throws {
let url = try SampleUnparsedAppLinkURLs.create(payload: nil)
let appLink = AppLinkURL(url: url)
let gamingPayload = GamingPayload(URL: appLink)
XCTAssertEqual(
"123",
gamingPayload.gameRequestID,
"Should be able to return a gameRequestID with nil payload"
)
XCTAssertEqual("", gamingPayload.payload)
}
func testGamingPayloadWithNilInGameRequestID() throws {
let url = try SampleUnparsedAppLinkURLs.create(gameRequestID: nil)
let appLink = AppLinkURL(url: url)
let gamingPayload = GamingPayload(URL: appLink)
XCTAssertEqual("", gamingPayload.gameRequestID)
XCTAssertEqual(
"payload",
gamingPayload.payload,
"Should be able to return a payload with nil gameRequestID"
)
}
func testGamingPayloadWithBothParamsNil() throws {
let url = try SampleUnparsedAppLinkURLs.missingKeys()
let appLink = AppLinkURL(url: url)
let gamingPayload = GamingPayload(URL: appLink)
XCTAssertEqual(
"",
gamingPayload.gameRequestID,
"Should be able to return an empty payload with both nil params"
)
XCTAssertEqual(
"",
gamingPayload.payload,
"Should be able to return an empty payload with both nil params"
)
}
func testGamingPayloadWithExtraSpaceInString() throws {
let url = try SampleUnparsedAppLinkURLs.create(
payload: " ",
gameRequestID: " "
)
let appLink = AppLinkURL(url: url)
let gamingPayload = GamingPayload(URL: appLink)
XCTAssertEqual(
" ",
gamingPayload.gameRequestID,
"Should be able to return a string with extra space in gameRequestID"
)
XCTAssertEqual(
" ",
gamingPayload.payload,
"Should be able to return a string with extra space in payload"
)
}
}