func showAndValidate()

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