libwebsocket 0.1.5 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG.md +6 -0
- data/README.md +2 -0
- data/examples/plain_client.rb +1 -1
- data/lib/libwebsocket.rb +1 -6
- data/lib/libwebsocket/opening_handshake.rb +11 -13
- data/lib/libwebsocket/opening_handshake/client.rb +2 -86
- data/lib/libwebsocket/opening_handshake/server.rb +2 -73
- data/lib/libwebsocket/version.rb +1 -1
- data/libwebsocket.gemspec +1 -1
- data/test/libwebsocket/opening_handshake/test_client.rb +10 -25
- data/test/libwebsocket/opening_handshake/test_server.rb +2 -2
- metadata +51 -91
- data/examples/thin_server.rb +0 -69
- data/lib/libwebsocket/cookie.rb +0 -60
- data/lib/libwebsocket/cookie/request.rb +0 -48
- data/lib/libwebsocket/cookie/response.rb +0 -44
- data/lib/libwebsocket/message.rb +0 -167
- data/lib/libwebsocket/request.rb +0 -288
- data/lib/libwebsocket/response.rb +0 -215
- data/lib/libwebsocket/stateful.rb +0 -24
- data/lib/libwebsocket/url.rb +0 -68
- data/test/libwebsocket/cookie/request.rb +0 -37
- data/test/libwebsocket/cookie/response.rb +0 -32
- data/test/libwebsocket/test_cookie.rb +0 -22
- data/test/libwebsocket/test_message.rb +0 -16
- data/test/libwebsocket/test_request_75.rb +0 -145
- data/test/libwebsocket/test_request_76.rb +0 -122
- data/test/libwebsocket/test_request_common.rb +0 -26
- data/test/libwebsocket/test_response_75.rb +0 -80
- data/test/libwebsocket/test_response_76.rb +0 -115
- data/test/libwebsocket/test_response_common.rb +0 -17
- data/test/libwebsocket/test_url.rb +0 -55
@@ -1,122 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class TestRequest76 < Test::Unit::TestCase
|
4
|
-
|
5
|
-
def test_parse
|
6
|
-
req = LibWebSocket::Request.new
|
7
|
-
assert !req.done?
|
8
|
-
assert req.parse('')
|
9
|
-
assert req.parse("GET /demo HTTP/1.1\x0d\x0a")
|
10
|
-
assert_equal 'fields', req.state
|
11
|
-
|
12
|
-
assert req.parse("Upgrade: WebSocket\x0d\x0a")
|
13
|
-
assert_equal 'fields', req.state
|
14
|
-
assert req.parse("Connection: Upgrade\x0d\x0a")
|
15
|
-
assert_equal 'fields', req.state
|
16
|
-
assert req.parse("Host: example.com\x0d\x0a")
|
17
|
-
assert_equal 'fields', req.state
|
18
|
-
assert req.parse("Origin: http://example.com\x0d\x0a")
|
19
|
-
assert_equal 'fields', req.state
|
20
|
-
assert req.parse(
|
21
|
-
"Sec-WebSocket-Key1: 18x 6]8vM;54 *(5: { U1]8 z [ 8\x0d\x0a")
|
22
|
-
assert req.parse(
|
23
|
-
"Sec-WebSocket-Key2: 1_ tx7X d < nw 334J702) 7]o}` 0\x0d\x0a")
|
24
|
-
assert_equal 'fields', req.state
|
25
|
-
assert req.parse("\x0d\x0aTm[K T2u")
|
26
|
-
assert_equal 'done', req.state
|
27
|
-
assert_equal 155712099, req.number1
|
28
|
-
assert_equal 173347027, req.number2
|
29
|
-
assert_equal 'Tm[K T2u', req.challenge
|
30
|
-
|
31
|
-
assert_equal 76, req.version
|
32
|
-
assert_equal '/demo', req.resource_name
|
33
|
-
assert_equal 'example.com', req.host
|
34
|
-
assert_equal 'http://example.com', req.origin
|
35
|
-
assert_equal 'fQJ,fN/4F4!~K~MH', req.checksum
|
36
|
-
assert_equal 76, req.version
|
37
|
-
assert_equal '/demo', req.resource_name
|
38
|
-
assert_equal 'example.com', req.host
|
39
|
-
assert_equal 'http://example.com', req.origin
|
40
|
-
assert_equal 'fQJ,fN/4F4!~K~MH', req.checksum
|
41
|
-
|
42
|
-
req = LibWebSocket::Request.new
|
43
|
-
assert req.parse("GET /demo HTTP/1.1\x0d\x0a")
|
44
|
-
assert req.parse("Upgrade: WebSocket\x0d\x0a")
|
45
|
-
assert req.parse("Connection: Upgrade\x0d\x0a")
|
46
|
-
assert req.parse("Host: example.com\x0d\x0a")
|
47
|
-
assert req.parse("Origin: http://example.com\x0d\x0a")
|
48
|
-
assert req.parse("Sec-WebSocket-Protocol: sample\x0d\x0a")
|
49
|
-
assert req.parse(
|
50
|
-
"Sec-WebSocket-Key1: 18x 6]8vM;54 *(5: { U1]8 z [ 8\x0d\x0a")
|
51
|
-
assert req.parse(
|
52
|
-
"Sec-WebSocket-Key2: 1_ tx7X d < nw 334J702) 7]o}` 0\x0d\x0a")
|
53
|
-
assert req.parse("\x0d\x0aTm[K T2u")
|
54
|
-
assert req.done?
|
55
|
-
assert_equal 'sample', req.subprotocol
|
56
|
-
end
|
57
|
-
|
58
|
-
def test_checksum
|
59
|
-
req = LibWebSocket::Request.new(
|
60
|
-
:host => 'example.com',
|
61
|
-
:resource_name => '/demo',
|
62
|
-
:key1 => '18x 6]8vM;54 *(5: { U1]8 z [ 8',
|
63
|
-
:key2 => '1_ tx7X d < nw 334J702) 7]o}` 0',
|
64
|
-
:challenge => 'Tm[K T2u'
|
65
|
-
)
|
66
|
-
assert_equal req.to_s, "GET /demo HTTP/1.1\x0d\x0a" +
|
67
|
-
"Upgrade: WebSocket\x0d\x0a" +
|
68
|
-
"Connection: Upgrade\x0d\x0a" +
|
69
|
-
"Host: example.com\x0d\x0a" +
|
70
|
-
"Origin: http://example.com\x0d\x0a" +
|
71
|
-
"Sec-WebSocket-Key1: 18x 6]8vM;54 *(5: { U1]8 z [ 8\x0d\x0a" +
|
72
|
-
"Sec-WebSocket-Key2: 1_ tx7X d < nw 334J702) 7]o}` 0\x0d\x0a" +
|
73
|
-
"Content-Length: 8\x0d\x0a" +
|
74
|
-
"\x0d\x0a" +
|
75
|
-
"Tm[K T2u"
|
76
|
-
assert_equal "fQJ,fN/4F4!~K~MH", req.checksum
|
77
|
-
|
78
|
-
req = LibWebSocket::Request.new(
|
79
|
-
:host => 'example.com',
|
80
|
-
:resource_name => '/demo',
|
81
|
-
:subprotocol => 'sample',
|
82
|
-
:key1 => '18x 6]8vM;54 *(5: { U1]8 z [ 8',
|
83
|
-
:key2 => '1_ tx7X d < nw 334J702) 7]o}` 0',
|
84
|
-
:challenge => 'Tm[K T2u'
|
85
|
-
)
|
86
|
-
assert_equal req.to_s, "GET /demo HTTP/1.1\x0d\x0a" +
|
87
|
-
"Upgrade: WebSocket\x0d\x0a" +
|
88
|
-
"Connection: Upgrade\x0d\x0a" +
|
89
|
-
"Host: example.com\x0d\x0a" +
|
90
|
-
"Origin: http://example.com\x0d\x0a" +
|
91
|
-
"Sec-WebSocket-Protocol: sample\x0d\x0a" +
|
92
|
-
"Sec-WebSocket-Key1: 18x 6]8vM;54 *(5: { U1]8 z [ 8\x0d\x0a" +
|
93
|
-
"Sec-WebSocket-Key2: 1_ tx7X d < nw 334J702) 7]o}` 0\x0d\x0a" +
|
94
|
-
"Content-Length: 8\x0d\x0a" +
|
95
|
-
"\x0d\x0a" +
|
96
|
-
"Tm[K T2u";
|
97
|
-
assert_equal "fQJ,fN/4F4!~K~MH", req.checksum
|
98
|
-
|
99
|
-
req = LibWebSocket::Request.new(
|
100
|
-
:host => 'example.com',
|
101
|
-
:resource_name => '/demo',
|
102
|
-
:key1 => '55 997',
|
103
|
-
:key2 => '3 3 64 98',
|
104
|
-
:challenge => "\x00\x09\x68\x32\x00\x78\xc7\x10"
|
105
|
-
)
|
106
|
-
assert_equal req.checksum, "\xc4\x15\xc2\xc8\x29\x5c\x94\x8a\x95\xb9\x4d\xec\x5b\x1d\x33\xce"
|
107
|
-
end
|
108
|
-
|
109
|
-
def test_to_s
|
110
|
-
req = LibWebSocket::Request.new(
|
111
|
-
:host => 'example.com',
|
112
|
-
:resource_name => '/demo'
|
113
|
-
)
|
114
|
-
req.to_s
|
115
|
-
assert req.number1
|
116
|
-
assert req.key1
|
117
|
-
assert req.number2
|
118
|
-
assert req.key2
|
119
|
-
assert_equal 8, req.challenge.length
|
120
|
-
assert_equal 16, req.checksum.length
|
121
|
-
end
|
122
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class TestRequestCommon < Test::Unit::TestCase
|
4
|
-
|
5
|
-
def test_parse
|
6
|
-
req = LibWebSocket::Request.new
|
7
|
-
assert !req.done?
|
8
|
-
assert_nil req.parse("foo\x0d\x0a")
|
9
|
-
assert_equal 'error', req.state
|
10
|
-
assert_equal 'Wrong request line', req.error
|
11
|
-
|
12
|
-
req = LibWebSocket::Request.new
|
13
|
-
assert req.parse("GET /demo HTTP/1.1\x0d\x0a")
|
14
|
-
assert req.parse("Upgrade: WebSocket\x0d\x0a")
|
15
|
-
assert req.parse("Connection: Upgrade\x0d\x0a")
|
16
|
-
assert req.parse("Origin: http://example.com\x0d\x0a")
|
17
|
-
assert_nil req.parse("\x0d\x0a")
|
18
|
-
assert_equal 'error', req.state
|
19
|
-
|
20
|
-
req = LibWebSocket::Request.new
|
21
|
-
assert_nil req.parse('x' * (1024 * 10))
|
22
|
-
assert_equal 'error', req.state
|
23
|
-
assert_equal 'Message is too long', req.error
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
@@ -1,80 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class TestResponse75 < Test::Unit::TestCase
|
4
|
-
|
5
|
-
def test_to_s
|
6
|
-
res = LibWebSocket::Response.new
|
7
|
-
res.version = 75
|
8
|
-
res.host = 'example.com'
|
9
|
-
assert_equal res.to_s, "HTTP/1.1 101 WebSocket Protocol Handshake\x0d\x0a" +
|
10
|
-
"Upgrade: WebSocket\x0d\x0a" +
|
11
|
-
"Connection: Upgrade\x0d\x0a" +
|
12
|
-
"WebSocket-Origin: http://example.com\x0d\x0a" +
|
13
|
-
"WebSocket-Location: ws://example.com/\x0d\x0a" +
|
14
|
-
"\x0d\x0a"
|
15
|
-
|
16
|
-
res = LibWebSocket::Response.new
|
17
|
-
res.version = 75
|
18
|
-
res.host = 'example.com'
|
19
|
-
res.subprotocol = 'sample'
|
20
|
-
assert_equal res.to_s, "HTTP/1.1 101 WebSocket Protocol Handshake\x0d\x0a" +
|
21
|
-
"Upgrade: WebSocket\x0d\x0a" +
|
22
|
-
"Connection: Upgrade\x0d\x0a" +
|
23
|
-
"WebSocket-Protocol: sample\x0d\x0a" +
|
24
|
-
"WebSocket-Origin: http://example.com\x0d\x0a" +
|
25
|
-
"WebSocket-Location: ws://example.com/\x0d\x0a" +
|
26
|
-
"\x0d\x0a";
|
27
|
-
|
28
|
-
res = LibWebSocket::Response.new
|
29
|
-
res.version = 75
|
30
|
-
res.host = 'example.com'
|
31
|
-
res.secure = true
|
32
|
-
assert_equal res.to_s, "HTTP/1.1 101 WebSocket Protocol Handshake\x0d\x0a" +
|
33
|
-
"Upgrade: WebSocket\x0d\x0a" +
|
34
|
-
"Connection: Upgrade\x0d\x0a" +
|
35
|
-
"WebSocket-Origin: http://example.com\x0d\x0a" +
|
36
|
-
"WebSocket-Location: wss://example.com/\x0d\x0a" +
|
37
|
-
"\x0d\x0a";
|
38
|
-
|
39
|
-
res = LibWebSocket::Response.new
|
40
|
-
res.version = 75
|
41
|
-
res.host = 'example.com'
|
42
|
-
res.resource_name = '/demo'
|
43
|
-
res.origin = 'file://'
|
44
|
-
res.cookie = {:name => 'foo', :value => 'bar', :path => '/'}
|
45
|
-
|
46
|
-
assert_equal res.to_s, "HTTP/1.1 101 WebSocket Protocol Handshake\x0d\x0a" +
|
47
|
-
"Upgrade: WebSocket\x0d\x0a" +
|
48
|
-
"Connection: Upgrade\x0d\x0a" +
|
49
|
-
"WebSocket-Origin: file://\x0d\x0a" +
|
50
|
-
"WebSocket-Location: ws://example.com/demo\x0d\x0a" +
|
51
|
-
"Set-Cookie: foo=bar; Path=/; Version=1\x0d\x0a" +
|
52
|
-
"\x0d\x0a";
|
53
|
-
end
|
54
|
-
|
55
|
-
def test_parse
|
56
|
-
res = LibWebSocket::Response.new
|
57
|
-
res.parse("HTTP/1.1 101 WebSocket Protocol Handshake\x0d\x0a")
|
58
|
-
res.parse("Upgrade: WebSocket\x0d\x0a")
|
59
|
-
res.parse("Connection: Upgrade\x0d\x0a")
|
60
|
-
res.parse("WebSocket-Protocol: sample\x0d\x0a")
|
61
|
-
res.parse("WebSocket-Origin: file://\x0d\x0a")
|
62
|
-
res.parse("WebSocket-Location: ws://example.com/demo\x0d\x0a")
|
63
|
-
res.parse("\x0d\x0a\x00foo\xff")
|
64
|
-
assert res.done?
|
65
|
-
assert_equal 75, res.version
|
66
|
-
assert_equal 'sample', res.subprotocol
|
67
|
-
|
68
|
-
message = "HTTP/1.1 101 WebSocket Protocol Handshake\x0d\x0a" +
|
69
|
-
"Upgrade: WebSocket\x0d\x0a" +
|
70
|
-
"Connection: Upgrade\x0d\x0a" +
|
71
|
-
"WebSocket-Origin: file://\x0d\x0a" +
|
72
|
-
"WebSocket-Location: ws://example.com/demo\x0d\x0a" +
|
73
|
-
"\x0d\x0a\x00foo\xff"
|
74
|
-
res = LibWebSocket::Response.new
|
75
|
-
assert res.parse(message)
|
76
|
-
assert res.done?
|
77
|
-
assert_equal 75, res.version
|
78
|
-
end
|
79
|
-
|
80
|
-
end
|
@@ -1,115 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class TestResponse76 < Test::Unit::TestCase
|
4
|
-
|
5
|
-
def test_parse
|
6
|
-
res = LibWebSocket::Response.new
|
7
|
-
assert res.parse("HTTP/1.1 101 WebSocket Protocol Handshake\x0d\x0a")
|
8
|
-
assert res.parse("Upgrade: WebSocket\x0d\x0a")
|
9
|
-
assert res.parse("Connection: Upgrade\x0d\x0a")
|
10
|
-
assert res.parse("Sec-WebSocket-Origin: file://\x0d\x0a")
|
11
|
-
assert res.parse("Sec-WebSocket-Location: ws://example.com/demo\x0d\x0a")
|
12
|
-
assert res.parse("\x0d\x0a")
|
13
|
-
assert res.parse("0st3Rl&q-2ZU^weu")
|
14
|
-
assert res.done?
|
15
|
-
assert_equal '0st3Rl&q-2ZU^weu', res.checksum
|
16
|
-
assert !res.secure
|
17
|
-
assert_equal 'example.com', res.host
|
18
|
-
assert_equal '/demo', res.resource_name
|
19
|
-
assert_equal 'file://', res.origin
|
20
|
-
|
21
|
-
res = LibWebSocket::Response.new
|
22
|
-
assert res.parse("HTTP/1.1 101 WebSocket Protocol Handshake\x0d\x0a")
|
23
|
-
assert res.parse("Upgrade: WebSocket\x0d\x0a")
|
24
|
-
assert res.parse("Connection: Upgrade\x0d\x0a")
|
25
|
-
assert res.parse("Sec-WebSocket-Protocol: sample\x0d\x0a")
|
26
|
-
assert res.parse("Sec-WebSocket-Origin: file://\x0d\x0a")
|
27
|
-
assert res.parse("Sec-WebSocket-Location: ws://example.com/demo\x0d\x0a")
|
28
|
-
assert res.parse("\x0d\x0a")
|
29
|
-
assert res.parse("0st3Rl&q-2ZU^weu")
|
30
|
-
assert res.done?
|
31
|
-
assert_equal 'sample', res.subprotocol
|
32
|
-
|
33
|
-
res = LibWebSocket::Response.new
|
34
|
-
message = "HTTP/1.1 101 WebSocket Protocol Handshake\x0d\x0a" +
|
35
|
-
"Upgrade: WebSocket\x0d\x0a" +
|
36
|
-
"Connection: Upgrade\x0d\x0a"
|
37
|
-
assert res.parse(message)
|
38
|
-
message = "Sec-WebSocket-Origin: file://\x0d\x0a" +
|
39
|
-
"Sec-WebSocket-Location: ws://example.com/demo\x0d\x0a" +
|
40
|
-
"\x0d\x0a" +
|
41
|
-
"0st3Rl&q-2ZU^weu\x00foo\xff"
|
42
|
-
assert res.parse(message)
|
43
|
-
assert res.done?
|
44
|
-
end
|
45
|
-
|
46
|
-
def test_to_s
|
47
|
-
res = LibWebSocket::Response.new(
|
48
|
-
:host => 'example.com',
|
49
|
-
:resource_name => '/demo',
|
50
|
-
:origin => 'file://',
|
51
|
-
:number1 => 777_007_543,
|
52
|
-
:number2 => 114_997_259,
|
53
|
-
:challenge => "\x47\x30\x22\x2D\x5A\x3F\x47\x58"
|
54
|
-
)
|
55
|
-
assert_equal res.to_s, "HTTP/1.1 101 WebSocket Protocol Handshake\x0d\x0a" +
|
56
|
-
"Upgrade: WebSocket\x0d\x0a" +
|
57
|
-
"Connection: Upgrade\x0d\x0a" +
|
58
|
-
"Sec-WebSocket-Origin: file://\x0d\x0a" +
|
59
|
-
"Sec-WebSocket-Location: ws://example.com/demo\x0d\x0a" +
|
60
|
-
"\x0d\x0a" +
|
61
|
-
"0st3Rl&q-2ZU^weu"
|
62
|
-
|
63
|
-
res = LibWebSocket::Response.new(
|
64
|
-
:host => 'example.com',
|
65
|
-
:resource_name => '/demo',
|
66
|
-
:origin => 'file://',
|
67
|
-
:subprotocol => 'sample',
|
68
|
-
:number1 => 777_007_543,
|
69
|
-
:number2 => 114_997_259,
|
70
|
-
:challenge => "\x47\x30\x22\x2D\x5A\x3F\x47\x58"
|
71
|
-
);
|
72
|
-
assert_equal res.to_s, "HTTP/1.1 101 WebSocket Protocol Handshake\x0d\x0a" +
|
73
|
-
"Upgrade: WebSocket\x0d\x0a" +
|
74
|
-
"Connection: Upgrade\x0d\x0a" +
|
75
|
-
"Sec-WebSocket-Protocol: sample\x0d\x0a" +
|
76
|
-
"Sec-WebSocket-Origin: file://\x0d\x0a" +
|
77
|
-
"Sec-WebSocket-Location: ws://example.com/demo\x0d\x0a" +
|
78
|
-
"\x0d\x0a" +
|
79
|
-
"0st3Rl&q-2ZU^weu"
|
80
|
-
|
81
|
-
res = LibWebSocket::Response.new(
|
82
|
-
:secure => true,
|
83
|
-
:host => 'example.com',
|
84
|
-
:resource_name => '/demo',
|
85
|
-
:origin => 'file://',
|
86
|
-
:number1 => 777_007_543,
|
87
|
-
:number2 => 114_997_259,
|
88
|
-
:challenge => "\x47\x30\x22\x2D\x5A\x3F\x47\x58"
|
89
|
-
)
|
90
|
-
assert_equal res.to_s, "HTTP/1.1 101 WebSocket Protocol Handshake\x0d\x0a" +
|
91
|
-
"Upgrade: WebSocket\x0d\x0a" +
|
92
|
-
"Connection: Upgrade\x0d\x0a" +
|
93
|
-
"Sec-WebSocket-Origin: file://\x0d\x0a" +
|
94
|
-
"Sec-WebSocket-Location: wss://example.com/demo\x0d\x0a" +
|
95
|
-
"\x0d\x0a" +
|
96
|
-
"0st3Rl&q-2ZU^weu"
|
97
|
-
|
98
|
-
res = LibWebSocket::Response.new(
|
99
|
-
:host => 'example.com',
|
100
|
-
:resource_name => '/demo',
|
101
|
-
:origin => 'file://',
|
102
|
-
:key1 => "18x 6]8vM;54 *(5: { U1]8 z [ 8",
|
103
|
-
:key2 => "1_ tx7X d < nw 334J702) 7]o}` 0",
|
104
|
-
:challenge => "Tm[K T2u"
|
105
|
-
)
|
106
|
-
assert_equal res.to_s, "HTTP/1.1 101 WebSocket Protocol Handshake\x0d\x0a" +
|
107
|
-
"Upgrade: WebSocket\x0d\x0a" +
|
108
|
-
"Connection: Upgrade\x0d\x0a" +
|
109
|
-
"Sec-WebSocket-Origin: file://\x0d\x0a" +
|
110
|
-
"Sec-WebSocket-Location: ws://example.com/demo\x0d\x0a" +
|
111
|
-
"\x0d\x0a" +
|
112
|
-
"fQJ,fN/4F4!~K~MH"
|
113
|
-
end
|
114
|
-
|
115
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class TestResponseCommon < Test::Unit::TestCase
|
4
|
-
|
5
|
-
def test_parse
|
6
|
-
res = LibWebSocket::Response.new
|
7
|
-
res.parse("foo\x0d\x0a")
|
8
|
-
assert_equal 'error', res.state
|
9
|
-
assert_equal 'Wrong response line', res.error
|
10
|
-
|
11
|
-
res = LibWebSocket::Response.new
|
12
|
-
assert_nil res.parse('x' * (1024 * 10))
|
13
|
-
assert_equal 'error', res.state
|
14
|
-
assert_equal 'Message is too long', res.error
|
15
|
-
end
|
16
|
-
|
17
|
-
end
|
@@ -1,55 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class TestURL < Test::Unit::TestCase
|
4
|
-
|
5
|
-
def test_parse
|
6
|
-
url = LibWebSocket::URL.new
|
7
|
-
assert url.parse('ws://example.com')
|
8
|
-
assert !url.secure
|
9
|
-
assert_equal 'example.com', url.host
|
10
|
-
assert_equal '/', url.resource_name
|
11
|
-
|
12
|
-
url = LibWebSocket::URL.new
|
13
|
-
assert url.parse('ws://example.com/')
|
14
|
-
assert !url.secure
|
15
|
-
assert_equal 'example.com', url.host
|
16
|
-
assert_equal '/', url.resource_name
|
17
|
-
|
18
|
-
url = LibWebSocket::URL.new
|
19
|
-
assert url.parse('ws://example.com/demo')
|
20
|
-
assert !url.secure
|
21
|
-
assert_equal 'example.com', url.host
|
22
|
-
assert_equal '/demo', url.resource_name
|
23
|
-
|
24
|
-
url = LibWebSocket::URL.new
|
25
|
-
assert url.parse('ws://example.com:3000')
|
26
|
-
assert !url.secure
|
27
|
-
assert_equal 'example.com', url.host
|
28
|
-
assert_equal '3000', url.port
|
29
|
-
assert_equal '/', url.resource_name
|
30
|
-
|
31
|
-
url = LibWebSocket::URL.new
|
32
|
-
assert url.parse('ws://example.com/demo?foo=bar')
|
33
|
-
assert !url.secure
|
34
|
-
assert_equal 'example.com', url.host
|
35
|
-
assert_equal '/demo?foo=bar', url.resource_name
|
36
|
-
end
|
37
|
-
|
38
|
-
def test_to_s
|
39
|
-
url = LibWebSocket::URL.new(:host => 'foo.com', :secure => true);
|
40
|
-
assert_equal 'wss://foo.com/', url.to_s
|
41
|
-
|
42
|
-
url = LibWebSocket::URL.new(
|
43
|
-
:host => 'foo.com',
|
44
|
-
:resource_name => '/demo'
|
45
|
-
)
|
46
|
-
assert_equal 'ws://foo.com/demo', url.to_s
|
47
|
-
|
48
|
-
url = LibWebSocket::URL.new(
|
49
|
-
:host => 'foo.com',
|
50
|
-
:port => 3000
|
51
|
-
)
|
52
|
-
assert_equal 'ws://foo.com:3000/', url.to_s
|
53
|
-
end
|
54
|
-
|
55
|
-
end
|