@@ -2089,7 +2089,70 @@ class HTTPClientTests: XCTestCase {
2089
2089
logger: logger) . wait ( ) )
2090
2090
XCTAssertEqual ( 0 , logStore. allEntries. count)
2091
2091
2092
+ // === Synthesized Request
2093
+ XCTAssertNoThrow ( try self . defaultClient. execute ( . GET,
2094
+ url: self . defaultHTTPBinURLPrefix + " get " ,
2095
+ body: nil ,
2096
+ deadline: nil ,
2097
+ logger: logger) . wait ( ) )
2098
+ XCTAssertEqual ( 0 , logStore. allEntries. count)
2099
+
2092
2100
XCTAssertEqual ( 0 , self . backgroundLogStore. allEntries. count)
2101
+
2102
+ // === Synthesized Socket Path Request
2103
+ XCTAssertNoThrow ( try TemporaryFileHelpers . withTemporaryUnixDomainSocketPathName { path in
2104
+ let backgroundLogStore = CollectEverythingLogHandler . LogStore ( )
2105
+ var backgroundLogger = Logger ( label: " \( #function) " , factory: { _ in
2106
+ CollectEverythingLogHandler ( logStore: backgroundLogStore)
2107
+ } )
2108
+ backgroundLogger. logLevel = . trace
2109
+
2110
+ let localSocketPathHTTPBin = HTTPBin ( bindTarget: . unixDomainSocket( path) )
2111
+ let localClient = HTTPClient ( eventLoopGroupProvider: . shared( self . clientGroup) ,
2112
+ backgroundActivityLogger: backgroundLogger)
2113
+ defer {
2114
+ XCTAssertNoThrow ( try localClient. syncShutdown ( ) )
2115
+ XCTAssertNoThrow ( try localSocketPathHTTPBin. shutdown ( ) )
2116
+ }
2117
+
2118
+ XCTAssertNoThrow ( try localClient. execute ( . GET,
2119
+ socketPath: path,
2120
+ urlPath: " get " ,
2121
+ body: nil ,
2122
+ deadline: nil ,
2123
+ logger: logger) . wait ( ) )
2124
+ XCTAssertEqual ( 0 , logStore. allEntries. count)
2125
+
2126
+ XCTAssertEqual ( 0 , backgroundLogStore. allEntries. count)
2127
+ } )
2128
+
2129
+ // === Synthesized Secure Socket Path Request
2130
+ XCTAssertNoThrow ( try TemporaryFileHelpers . withTemporaryUnixDomainSocketPathName { path in
2131
+ let backgroundLogStore = CollectEverythingLogHandler . LogStore ( )
2132
+ var backgroundLogger = Logger ( label: " \( #function) " , factory: { _ in
2133
+ CollectEverythingLogHandler ( logStore: backgroundLogStore)
2134
+ } )
2135
+ backgroundLogger. logLevel = . trace
2136
+
2137
+ let localSocketPathHTTPBin = HTTPBin ( ssl: true , bindTarget: . unixDomainSocket( path) )
2138
+ let localClient = HTTPClient ( eventLoopGroupProvider: . shared( self . clientGroup) ,
2139
+ configuration: HTTPClient . Configuration ( certificateVerification: . none) ,
2140
+ backgroundActivityLogger: backgroundLogger)
2141
+ defer {
2142
+ XCTAssertNoThrow ( try localClient. syncShutdown ( ) )
2143
+ XCTAssertNoThrow ( try localSocketPathHTTPBin. shutdown ( ) )
2144
+ }
2145
+
2146
+ XCTAssertNoThrow ( try localClient. execute ( . GET,
2147
+ secureSocketPath: path,
2148
+ urlPath: " get " ,
2149
+ body: nil ,
2150
+ deadline: nil ,
2151
+ logger: logger) . wait ( ) )
2152
+ XCTAssertEqual ( 0 , logStore. allEntries. count)
2153
+
2154
+ XCTAssertEqual ( 0 , backgroundLogStore. allEntries. count)
2155
+ } )
2093
2156
}
2094
2157
2095
2158
func testAllMethodsLog( ) {
@@ -2102,7 +2165,7 @@ class HTTPClientTests: XCTestCase {
2102
2165
logger. logLevel = . trace
2103
2166
logger [ metadataKey: " req " ] = " yo- \( type) "
2104
2167
2105
- let url = self . defaultHTTPBinURLPrefix + " not-found/request/ \( type) ) "
2168
+ let url = " not-found/request/ \( type) ) "
2106
2169
let result = try body ( logger, url)
2107
2170
2108
2171
XCTAssertGreaterThan ( logStore. allEntries. count, 0 )
@@ -2114,27 +2177,78 @@ class HTTPClientTests: XCTestCase {
2114
2177
}
2115
2178
2116
2179
XCTAssertNoThrow ( XCTAssertEqual ( . notFound, try checkExpectationsWithLogger ( type: " GET " ) { logger, url in
2117
- try self . defaultClient. get ( url: url, logger: logger) . wait ( )
2180
+ try self . defaultClient. get ( url: self . defaultHTTPBinURLPrefix + url, logger: logger) . wait ( )
2118
2181
} . status) )
2119
2182
2120
2183
XCTAssertNoThrow ( XCTAssertEqual ( . notFound, try checkExpectationsWithLogger ( type: " PUT " ) { logger, url in
2121
- try self . defaultClient. put ( url: url, logger: logger) . wait ( )
2184
+ try self . defaultClient. put ( url: self . defaultHTTPBinURLPrefix + url, logger: logger) . wait ( )
2122
2185
} . status) )
2123
2186
2124
2187
XCTAssertNoThrow ( XCTAssertEqual ( . notFound, try checkExpectationsWithLogger ( type: " POST " ) { logger, url in
2125
- try self . defaultClient. post ( url: url, logger: logger) . wait ( )
2188
+ try self . defaultClient. post ( url: self . defaultHTTPBinURLPrefix + url, logger: logger) . wait ( )
2126
2189
} . status) )
2127
2190
2128
2191
XCTAssertNoThrow ( XCTAssertEqual ( . notFound, try checkExpectationsWithLogger ( type: " DELETE " ) { logger, url in
2129
- try self . defaultClient. delete ( url: url, logger: logger) . wait ( )
2192
+ try self . defaultClient. delete ( url: self . defaultHTTPBinURLPrefix + url, logger: logger) . wait ( )
2130
2193
} . status) )
2131
2194
2132
2195
XCTAssertNoThrow ( XCTAssertEqual ( . notFound, try checkExpectationsWithLogger ( type: " PATCH " ) { logger, url in
2133
- try self . defaultClient. patch ( url: url, logger: logger) . wait ( )
2196
+ try self . defaultClient. patch ( url: self . defaultHTTPBinURLPrefix + url, logger: logger) . wait ( )
2197
+ } . status) )
2198
+
2199
+ XCTAssertNoThrow ( XCTAssertEqual ( . notFound, try checkExpectationsWithLogger ( type: " CHECKOUT " ) { logger, url in
2200
+ try self . defaultClient. execute ( . CHECKOUT, url: self . defaultHTTPBinURLPrefix + url, logger: logger) . wait ( )
2134
2201
} . status) )
2135
2202
2136
2203
// No background activity expected here.
2137
2204
XCTAssertEqual ( 0 , self . backgroundLogStore. allEntries. count)
2205
+
2206
+ XCTAssertNoThrow ( try TemporaryFileHelpers . withTemporaryUnixDomainSocketPathName { path in
2207
+ let backgroundLogStore = CollectEverythingLogHandler . LogStore ( )
2208
+ var backgroundLogger = Logger ( label: " \( #function) " , factory: { _ in
2209
+ CollectEverythingLogHandler ( logStore: backgroundLogStore)
2210
+ } )
2211
+ backgroundLogger. logLevel = . trace
2212
+
2213
+ let localSocketPathHTTPBin = HTTPBin ( bindTarget: . unixDomainSocket( path) )
2214
+ let localClient = HTTPClient ( eventLoopGroupProvider: . shared( self . clientGroup) ,
2215
+ backgroundActivityLogger: backgroundLogger)
2216
+ defer {
2217
+ XCTAssertNoThrow ( try localClient. syncShutdown ( ) )
2218
+ XCTAssertNoThrow ( try localSocketPathHTTPBin. shutdown ( ) )
2219
+ }
2220
+
2221
+ XCTAssertNoThrow ( XCTAssertEqual ( . notFound, try checkExpectationsWithLogger ( type: " GET " ) { logger, url in
2222
+ try localClient. execute ( socketPath: path, urlPath: url, logger: logger) . wait ( )
2223
+ } . status) )
2224
+
2225
+ // No background activity expected here.
2226
+ XCTAssertEqual ( 0 , backgroundLogStore. allEntries. count)
2227
+ } )
2228
+
2229
+ XCTAssertNoThrow ( try TemporaryFileHelpers . withTemporaryUnixDomainSocketPathName { path in
2230
+ let backgroundLogStore = CollectEverythingLogHandler . LogStore ( )
2231
+ var backgroundLogger = Logger ( label: " \( #function) " , factory: { _ in
2232
+ CollectEverythingLogHandler ( logStore: backgroundLogStore)
2233
+ } )
2234
+ backgroundLogger. logLevel = . trace
2235
+
2236
+ let localSocketPathHTTPBin = HTTPBin ( ssl: true , bindTarget: . unixDomainSocket( path) )
2237
+ let localClient = HTTPClient ( eventLoopGroupProvider: . shared( self . clientGroup) ,
2238
+ configuration: HTTPClient . Configuration ( certificateVerification: . none) ,
2239
+ backgroundActivityLogger: backgroundLogger)
2240
+ defer {
2241
+ XCTAssertNoThrow ( try localClient. syncShutdown ( ) )
2242
+ XCTAssertNoThrow ( try localSocketPathHTTPBin. shutdown ( ) )
2243
+ }
2244
+
2245
+ XCTAssertNoThrow ( XCTAssertEqual ( . notFound, try checkExpectationsWithLogger ( type: " GET " ) { logger, url in
2246
+ try localClient. execute ( secureSocketPath: path, urlPath: url, logger: logger) . wait ( )
2247
+ } . status) )
2248
+
2249
+ // No background activity expected here.
2250
+ XCTAssertEqual ( 0 , backgroundLogStore. allEntries. count)
2251
+ } )
2138
2252
}
2139
2253
2140
2254
func testClosingIdleConnectionsInPoolLogsInTheBackground( ) {
0 commit comments