14
14
15
15
import HTTPTypes
16
16
import NIOWebSocket
17
- import XCTest
17
+ import Testing
18
18
19
19
@testable import WSCompression
20
20
@testable import WSCore
21
21
22
- final class WebSocketExtensionNegotiationTests : XCTestCase {
23
- func testExtensionHeaderParsing( ) {
22
+ struct WebSocketExtensionNegotiationTests {
23
+ @ Test func testExtensionHeaderParsing( ) {
24
24
let headers : HTTPFields = . init( [
25
25
. init( name: . secWebSocketExtensions, value: " permessage-deflate; client_max_window_bits; server_max_window_bits=10 " ) ,
26
26
. init( name: . secWebSocketExtensions, value: " permessage-deflate;client_max_window_bits " ) ,
27
27
] )
28
28
let extensions = WebSocketExtensionHTTPParameters . parseHeaders ( headers)
29
- XCTAssertEqual (
30
- extensions,
31
- [
29
+ #expect(
30
+ extensions == [
32
31
. init( " permessage-deflate " , parameters: [ " client_max_window_bits " : . null, " server_max_window_bits " : . value( " 10 " ) ] ) ,
33
32
. init( " permessage-deflate " , parameters: [ " client_max_window_bits " : . null] ) ,
34
33
]
35
34
)
36
35
}
37
36
38
- func testDeflateServerResponse( ) {
37
+ @ Test func testDeflateServerResponse( ) {
39
38
let requestHeaders : [ WebSocketExtensionHTTPParameters ] = [
40
39
. init( " permessage-deflate " , parameters: [ " client_max_window_bits " : . value( " 10 " ) ] )
41
40
]
42
41
let ext = PerMessageDeflateExtensionBuilder ( clientNoContextTakeover: true , serverNoContextTakeover: true )
43
42
let serverResponse = ext. serverResponseHeader ( to: requestHeaders)
44
- XCTAssertEqual (
45
- serverResponse,
46
- " permessage-deflate;client_max_window_bits=10;client_no_context_takeover;server_no_context_takeover "
43
+ #expect(
44
+ serverResponse == " permessage-deflate;client_max_window_bits=10;client_no_context_takeover;server_no_context_takeover "
47
45
)
48
46
}
49
47
50
- func testDeflateServerResponseClientMaxWindowBits( ) {
48
+ @ Test func testDeflateServerResponseClientMaxWindowBits( ) {
51
49
let requestHeaders : [ WebSocketExtensionHTTPParameters ] = [
52
50
. init( " permessage-deflate " , parameters: [ " client_max_window_bits " : . null] )
53
51
]
54
52
let ext1 = PerMessageDeflateExtensionBuilder ( serverNoContextTakeover: true )
55
53
let serverResponse1 = ext1. serverResponseHeader ( to: requestHeaders)
56
- XCTAssertEqual (
57
- serverResponse1,
58
- " permessage-deflate;server_no_context_takeover "
54
+ #expect(
55
+ serverResponse1 == " permessage-deflate;server_no_context_takeover "
59
56
)
60
57
let ext2 = PerMessageDeflateExtensionBuilder ( clientNoContextTakeover: true , serverMaxWindow: 12 )
61
58
let serverResponse2 = ext2. serverResponseHeader ( to: requestHeaders)
62
- XCTAssertEqual (
63
- serverResponse2,
64
- " permessage-deflate;client_no_context_takeover;server_max_window_bits=12 "
59
+ #expect(
60
+ serverResponse2 == " permessage-deflate;client_no_context_takeover;server_max_window_bits=12 "
65
61
)
66
62
}
67
63
68
- func testUnregonisedExtensionServerResponse( ) throws {
64
+ @ Test func testUnregonisedExtensionServerResponse( ) throws {
69
65
let serverExtensions : [ WebSocketExtensionBuilder ] = [ PerMessageDeflateExtensionBuilder ( ) ]
70
66
let ( headers, extensions) = try serverExtensions. serverExtensionNegotiation (
71
67
requestHeaders: [
72
68
. secWebSocketExtensions: " permessage-foo;bar=baz " ,
73
69
. secWebSocketExtensions: " permessage-deflate;client_max_window_bits=10 " ,
74
70
]
75
71
)
76
- XCTAssertEqual (
77
- headers [ . secWebSocketExtensions] ,
78
- " permessage-deflate;client_max_window_bits=10 "
72
+ #expect(
73
+ headers [ . secWebSocketExtensions] == " permessage-deflate;client_max_window_bits=10 "
79
74
)
80
- XCTAssertEqual ( extensions. count, 1 )
81
- let firstExtension = try XCTUnwrap ( extensions. first)
82
- XCTAssert ( firstExtension is PerMessageDeflateExtension )
75
+ #expect ( extensions. count == 1 )
76
+ let firstExtension = try #require ( extensions. first)
77
+ #expect ( firstExtension is PerMessageDeflateExtension )
83
78
84
79
let requestExtensions = try serverExtensions. buildClientExtensions ( from: headers)
85
- XCTAssertEqual ( requestExtensions. count, 1 )
86
- XCTAssert ( requestExtensions [ 0 ] is PerMessageDeflateExtension )
80
+ #expect ( requestExtensions. count == 1 )
81
+ #expect ( requestExtensions [ 0 ] is PerMessageDeflateExtension )
87
82
}
88
83
89
- func testNonNegotiableClientExtension( ) throws {
84
+ @ Test func testNonNegotiableClientExtension( ) throws {
90
85
struct MyExtension : WebSocketExtension {
91
86
var name = " my-extension "
92
87
@@ -106,12 +101,12 @@ final class WebSocketExtensionNegotiationTests: XCTestCase {
106
101
} . build ( )
107
102
]
108
103
let clientExtensions = try clientExtensionBuilders. buildClientExtensions ( from: [ : ] )
109
- XCTAssertEqual ( clientExtensions. count, 1 )
110
- let myExtension = try XCTUnwrap ( clientExtensions. first)
111
- XCTAssert ( myExtension is MyExtension )
104
+ #expect ( clientExtensions. count == 1 )
105
+ let myExtension = try #require ( clientExtensions. first)
106
+ #expect ( myExtension is MyExtension )
112
107
}
113
108
114
- func testNonNegotiableServerExtension( ) throws {
109
+ @ Test func testNonNegotiableServerExtension( ) throws {
115
110
struct MyExtension : WebSocketExtension {
116
111
var name = " my-extension "
117
112
@@ -129,9 +124,9 @@ final class WebSocketExtensionNegotiationTests: XCTestCase {
129
124
let ( headers, serverExtensions) = try serverExtensionBuilders. serverExtensionNegotiation (
130
125
requestHeaders: [ : ]
131
126
)
132
- XCTAssertEqual ( headers. count, 0 )
133
- XCTAssertEqual ( serverExtensions. count, 1 )
134
- let myExtension = try XCTUnwrap ( serverExtensions. first)
135
- XCTAssert ( myExtension is MyExtension )
127
+ #expect ( headers. count == 0 )
128
+ #expect ( serverExtensions. count == 1 )
129
+ let myExtension = try #require ( serverExtensions. first)
130
+ #expect ( myExtension is MyExtension )
136
131
}
137
132
}
0 commit comments