func testCorrectSource_whenDeeplinkRequestingBehavior()

in source/UberRidesTests/RequestButtonTests.swift [113:145]


    func testCorrectSource_whenDeeplinkRequestingBehavior() {
        let testExpectation = expectation(description: "Test Deeplink source parameter")
        
        let expectationClosure: (URL?) -> (Bool) = { url in
            testExpectation.fulfill()
            guard let url = url, let components = URLComponents(url: url, resolvingAgainstBaseURL: false), let items = components.queryItems else {
                XCTAssert(false)
                return false
            }
            XCTAssertTrue(items.count > 0)
            var foundUserAgent = false
            for item in items {
                if (item.name == "user-agent") {
                    if let value = item.value {
                        foundUserAgent = true
                        XCTAssertTrue(value.contains(RideRequestButton.sourceString))
                        break
                    }
                }
            }
            XCTAssert(foundUserAgent)
            return false
        }
        
        let requestBehavior = DeeplinkRequestingBehaviorMock(testClosure: expectationClosure)
        let button = RideRequestButton(rideParameters: RideParametersBuilder().build(), requestingBehavior: requestBehavior)
    
        button.uberButtonTapped(button)
        
        waitForExpectations(timeout: timeout, handler: { error in
            XCTAssertNil(error)
        })
    }