in FBSDKShareKit/FBSDKShareKitTests/UserInterface/ShareDialogTests.swift [581:640]
func showAndValidate(
nativeDialog dialog: ShareDialog,
nonSupportedScheme: String?,
expectRequestScheme scheme: String?,
methodName: String,
_ file: StaticString = #file,
_ line: UInt = #line
) {
internalURLOpener.computeCanOpenURL = { url in
url.absoluteString != nonSupportedScheme
}
settings.appID = "AppID"
let stubbedRequest = TestBridgeAPIRequest(
url: nil,
protocolType: .native,
scheme: "1"
)
bridgeAPIRequestFactory.stubbedBridgeAPIRequest = stubbedRequest
let viewController = UIViewController()
dialog.fromViewController = viewController
XCTAssertTrue(
dialog.show(),
"Should be able to show the dialog",
file: file,
line: line
)
XCTAssertEqual(
bridgeAPIRequestFactory.capturedMethodName,
methodName,
"Should create the request with the expected method name",
file: file,
line: line
)
if let expectedScheme = scheme {
XCTAssertEqual(
bridgeAPIRequestFactory.capturedScheme,
expectedScheme,
"Should create the request with the expected scheme",
file: file,
line: line
)
} else {
XCTAssertNil(
bridgeAPIRequestFactory.capturedScheme,
"Should not create the request with a scheme",
file: file,
line: line
)
}
XCTAssertTrue(
bridgeAPIRequestOpener.capturedRequest === stubbedRequest,
"Should pass the created request to the opener",
file: file,
line: line
)
}