@@ -643,18 +643,19 @@ final class URLTests : XCTestCase {
643
643
var url = URL ( filePath: " ~ " )
644
644
// "~" must either be expanded to an absolute path or resolved against a base URL
645
645
XCTAssertTrue (
646
- url. relativePath. utf8. first == . _slash || ( url. baseURL != nil && url. path ( ) . utf8. first == . _slash)
646
+ // Using .path to get the absolute path for both the old and new behavior
647
+ url. relativePath. utf8. first == . _slash || ( url. baseURL != nil && url. path. utf8. first == . _slash)
647
648
)
648
649
649
650
url = URL ( filePath: " ~ " , directoryHint: . isDirectory)
650
651
XCTAssertTrue (
651
- url. relativePath. utf8. first == . _slash || ( url. baseURL != nil && url. path ( ) . utf8. first == . _slash)
652
+ url. relativePath. utf8. first == . _slash || ( url. baseURL != nil && url. path. utf8. first == . _slash)
652
653
)
653
654
XCTAssertEqual ( url. path ( ) . utf8. last, . _slash)
654
655
655
656
url = URL ( filePath: " ~/ " )
656
657
XCTAssertTrue (
657
- url. relativePath. utf8. first == . _slash || ( url. baseURL != nil && url. path ( ) . utf8. first == . _slash)
658
+ url. relativePath. utf8. first == . _slash || ( url. baseURL != nil && url. path. utf8. first == . _slash)
658
659
)
659
660
XCTAssertEqual ( url. path ( ) . utf8. last, . _slash)
660
661
}
@@ -677,7 +678,12 @@ final class URLTests : XCTestCase {
677
678
XCTAssertEqual ( url. path ( ) , " /path.foo/ " )
678
679
url. append ( path: " ///// " )
679
680
url. deletePathExtension ( )
681
+ #if !FOUNDATION_FRAMEWORK_NSURL
680
682
XCTAssertEqual ( url. path ( ) , " /path/ " )
683
+ #else
684
+ // Old behavior only searches the last empty component, so the extension isn't actually removed
685
+ XCTAssertEqual ( url. path ( ) , " /path.foo/// " )
686
+ #endif
681
687
}
682
688
683
689
func testURLComponentsPercentEncodedUnencodedProperties( ) throws {
0 commit comments