22//
33// This source file is part of the Swift open source project
44//
5- // Copyright (c) 2023 Apple Inc. and the Swift project authors
5+ // Copyright (c) 2023-2025 Apple Inc. and the Swift project authors
66// Licensed under Apache License v2.0
77//
88// See LICENSE.txt for license information
1212//
1313//===----------------------------------------------------------------------===//
1414
15- import HTTPTypes
1615import HTTPTypesFoundation
1716import XCTest
1817
@@ -21,93 +20,6 @@ import FoundationNetworking
2120#endif
2221
2322final class HTTPTypesFoundationTests : XCTestCase {
24- func testRequestURLParsing( ) {
25- let request1 = HTTPRequest ( url: URL ( string: " h://a " ) !)
26- XCTAssertEqual ( request1. scheme, " h " )
27- XCTAssertEqual ( request1. authority, " a " )
28- XCTAssertEqual ( request1. path, " / " )
29- XCTAssertEqual ( request1. url? . absoluteString, " h://a/ " )
30-
31- let request2 = HTTPRequest ( url: URL ( string: " h://a:4? " ) !)
32- XCTAssertEqual ( request2. scheme, " h " )
33- XCTAssertEqual ( request2. authority, " a:4 " )
34- XCTAssertEqual ( request2. path, " /? " )
35- XCTAssertEqual ( request2. url? . absoluteString, " h://a:4/? " )
36-
37- let request3 = HTTPRequest ( url: URL ( string: " h://a/ " ) !)
38- XCTAssertEqual ( request3. scheme, " h " )
39- XCTAssertEqual ( request3. authority, " a " )
40- XCTAssertEqual ( request3. path, " / " )
41- XCTAssertEqual ( request3. url? . absoluteString, " h://a/ " )
42-
43- let request4 = HTTPRequest ( url: URL ( string: " h://a/p?q#1 " ) !)
44- XCTAssertEqual ( request4. scheme, " h " )
45- XCTAssertEqual ( request4. authority, " a " )
46- XCTAssertEqual ( request4. path, " /p?q " )
47- XCTAssertEqual ( request4. url? . absoluteString, " h://a/p?q " )
48-
49- let request5 = HTTPRequest ( url: URL ( string: " data:,Hello%2C%20World%21 " ) !)
50- XCTAssertEqual ( request5. scheme, " data " )
51- XCTAssertNil ( request5. authority)
52- #if canImport(CoreFoundation)
53- XCTAssertEqual ( request5. path, " / " )
54- #else // canImport(CoreFoundation)
55- XCTAssertEqual ( request5. path, " ,Hello%2C%20World%21 " )
56- #endif // canImport(CoreFoundation)
57- XCTAssertNil ( request5. url)
58- }
59-
60- func testRequestURLAuthorityParsing( ) {
61- let request1 = HTTPRequest ( url: URL ( string: " https://[::1] " ) !)
62- XCTAssertEqual ( request1. scheme, " https " )
63- XCTAssertEqual ( request1. authority, " [::1] " )
64- XCTAssertEqual ( request1. path, " / " )
65- XCTAssertEqual ( request1. url? . absoluteString, " https://[::1]/ " )
66-
67- let request2 = HTTPRequest ( url: URL ( string: " https://[::1]:443 " ) !)
68- XCTAssertEqual ( request2. scheme, " https " )
69- XCTAssertEqual ( request2. authority, " [::1]:443 " )
70- XCTAssertEqual ( request2. path, " / " )
71- XCTAssertEqual ( request2. url? . absoluteString, " https://[::1]:443/ " )
72-
73- let request3 = HTTPRequest ( url: URL ( string: " https://127.0.0.1 " ) !)
74- XCTAssertEqual ( request3. scheme, " https " )
75- XCTAssertEqual ( request3. authority, " 127.0.0.1 " )
76- XCTAssertEqual ( request3. path, " / " )
77- XCTAssertEqual ( request3. url? . absoluteString, " https://127.0.0.1/ " )
78-
79- let request4 = HTTPRequest ( url: URL ( string: " https://127.0.0.1:443 " ) !)
80- XCTAssertEqual ( request4. scheme, " https " )
81- XCTAssertEqual ( request4. authority, " 127.0.0.1:443 " )
82- XCTAssertEqual ( request4. path, " / " )
83- XCTAssertEqual ( request4. url? . absoluteString, " https://127.0.0.1:443/ " )
84- }
85-
86- func testNilRequestURL( ) {
87- let request1 = HTTPRequest (
88- method: . connect,
89- scheme: " https " ,
90- authority: " www.example.com:443 " ,
91- path: " www.example.com:443 "
92- )
93- XCTAssertNil ( request1. url)
94-
95- var request2 = HTTPRequest (
96- method: . connect,
97- scheme: " https " ,
98- authority: " www.example.com " ,
99- path: " / "
100- )
101- request2. extendedConnectProtocol = " websocket "
102- XCTAssertEqual ( request2. url? . absoluteString, " https://www.example.com/ " )
103-
104- let request3 = HTTPRequest ( method: . options, scheme: " https " , authority: " www.example.com " , path: " * " )
105- XCTAssertNil ( request3. url)
106-
107- let request4 = HTTPRequest ( method: . options, scheme: " https " , authority: " www.example.com " , path: " / " )
108- XCTAssertEqual ( request4. url? . absoluteString, " https://www.example.com/ " )
109- }
110-
11123 func testRequestToFoundation( ) throws {
11224 let request = HTTPRequest (
11325 method: . get,
0 commit comments