@@ -835,6 +835,50 @@ final class AsyncAwaitEndToEndTests: XCTestCase {
835
835
}
836
836
}
837
837
}
838
+
839
+ func testResponseBytesHelper( ) {
840
+ XCTAsyncTest {
841
+ let bin = HTTPBin ( . http2( compress: false ) ) { _ in HTTPEchoHandler ( ) }
842
+ defer { XCTAssertNoThrow ( try bin. shutdown ( ) ) }
843
+ let client = makeDefaultHTTPClient ( )
844
+ defer { XCTAssertNoThrow ( try client. syncShutdown ( ) ) }
845
+ let logger = Logger ( label: " HTTPClient " , factory: StreamLogHandler . standardOutput ( label: ) )
846
+ var request = HTTPClientRequest ( url: " https://localhost: \( bin. port) / " )
847
+ request. method = . POST
848
+ request. body = . bytes( ByteBuffer ( string: " 1234 " ) )
849
+
850
+ guard let response = await XCTAssertNoThrowWithResult (
851
+ try await client. execute ( request, deadline: . now( ) + . seconds( 10 ) , logger: logger)
852
+ ) else { return }
853
+ XCTAssertEqual ( response. headers [ " content-length " ] , [ " 4 " ] )
854
+ guard let body = await XCTAssertNoThrowWithResult (
855
+ try await response. bytes ( )
856
+ ) else { return }
857
+ XCTAssertEqual ( body, ByteBuffer ( string: " 1234 " ) )
858
+ }
859
+ }
860
+
861
+ func testResponseBodyDataHelper( ) {
862
+ XCTAsyncTest {
863
+ let bin = HTTPBin ( . http2( compress: false ) ) { _ in HTTPEchoHandler ( ) }
864
+ defer { XCTAssertNoThrow ( try bin. shutdown ( ) ) }
865
+ let client = makeDefaultHTTPClient ( )
866
+ defer { XCTAssertNoThrow ( try client. syncShutdown ( ) ) }
867
+ let logger = Logger ( label: " HTTPClient " , factory: StreamLogHandler . standardOutput ( label: ) )
868
+ var request = HTTPClientRequest ( url: " https://localhost: \( bin. port) / " )
869
+ request. method = . POST
870
+ request. body = . bytes( ByteBuffer ( string: " 1234 " ) )
871
+
872
+ guard let response = await XCTAssertNoThrowWithResult (
873
+ try await client. execute ( request, deadline: . now( ) + . seconds( 10 ) , logger: logger)
874
+ ) else { return }
875
+ XCTAssertEqual ( response. headers [ " content-length " ] , [ " 4 " ] )
876
+ guard let bodyData = await XCTAssertNoThrowWithResult (
877
+ try await response. data
878
+ ) else { return }
879
+ XCTAssertEqual ( bodyData, " 1234 " . data ( using: . utf8) )
880
+ }
881
+ }
838
882
}
839
883
840
884
struct AnySendableSequence < Element> : @unchecked Sendable {
0 commit comments