@@ -39,11 +39,19 @@ final class URLLauncherTests: XCTestCase {
3939 var error : FlutterError ?
4040 let result = createPlugin ( ) . canLaunchURL ( " urls can't have spaces " , error: & error)
4141
42- XCTAssertNil ( result)
43- XCTAssertNotNil ( error)
44- XCTAssertEqual ( error? . code, " argument_error " )
45- XCTAssertEqual ( error? . message, " Unable to parse URL " )
46- XCTAssertEqual ( error? . details as? String , " Provided URL: urls can't have spaces " )
42+ if ( error == nil ) {
43+ // When linking against the iOS 17 SDK or later, NSURL uses a lenient parser, and won't
44+ // fail to parse URLs, so the test must allow for either outcome.
45+ XCTAssertNotNil ( result)
46+ XCTAssertFalse ( result? . boolValue ?? true )
47+ XCTAssertNil ( error)
48+ } else {
49+ XCTAssertNil ( result)
50+ XCTAssertNotNil ( error)
51+ XCTAssertEqual ( error? . code, " argument_error " )
52+ XCTAssertEqual ( error? . message, " Unable to parse URL " )
53+ XCTAssertEqual ( error? . details as? String , " Provided URL: urls can't have spaces " )
54+ }
4755 }
4856
4957 func testLaunchSuccess( ) {
@@ -75,11 +83,19 @@ final class URLLauncherTests: XCTestCase {
7583 let expectation = XCTestExpectation ( description: " completion called " )
7684
7785 createPlugin ( ) . launchURL ( " urls can't have spaces " , universalLinksOnly: false ) { result, error in
78- XCTAssertNil ( result)
79- XCTAssertNotNil ( error)
80- XCTAssertEqual ( error? . code, " argument_error " )
81- XCTAssertEqual ( error? . message, " Unable to parse URL " )
82- XCTAssertEqual ( error? . details as? String , " Provided URL: urls can't have spaces " )
86+ if ( error == nil ) {
87+ // When linking against the iOS 17 SDK or later, NSURL uses a lenient parser, and won't
88+ // fail to parse URLs, so the test must allow for either outcome.
89+ XCTAssertNotNil ( result)
90+ XCTAssertFalse ( result? . boolValue ?? true )
91+ XCTAssertNil ( error)
92+ } else {
93+ XCTAssertNil ( result)
94+ XCTAssertNotNil ( error)
95+ XCTAssertEqual ( error? . code, " argument_error " )
96+ XCTAssertEqual ( error? . message, " Unable to parse URL " )
97+ XCTAssertEqual ( error? . details as? String , " Provided URL: urls can't have spaces " )
98+ }
8399
84100 expectation. fulfill ( )
85101 }
0 commit comments