websocket 1.2.5 → 1.2.7
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.
- checksums.yaml +5 -5
- data/.codeclimate.yml +1 -0
- data/.rubocop.yml +4 -1
- data/.travis.yml +1 -5
- data/CHANGELOG.md +8 -0
- data/Gemfile +5 -3
- data/Rakefile +3 -1
- data/lib/websocket.rb +3 -1
- data/lib/websocket/error.rb +2 -0
- data/lib/websocket/exception_handler.rb +2 -0
- data/lib/websocket/frame.rb +2 -0
- data/lib/websocket/frame/base.rb +2 -0
- data/lib/websocket/frame/data.rb +3 -1
- data/lib/websocket/frame/handler.rb +2 -0
- data/lib/websocket/frame/handler/base.rb +4 -2
- data/lib/websocket/frame/handler/handler03.rb +5 -4
- data/lib/websocket/frame/handler/handler04.rb +1 -0
- data/lib/websocket/frame/handler/handler05.rb +1 -0
- data/lib/websocket/frame/handler/handler07.rb +2 -1
- data/lib/websocket/frame/handler/handler75.rb +2 -1
- data/lib/websocket/frame/incoming.rb +2 -0
- data/lib/websocket/frame/incoming/client.rb +2 -0
- data/lib/websocket/frame/incoming/server.rb +2 -0
- data/lib/websocket/frame/outgoing.rb +2 -0
- data/lib/websocket/frame/outgoing/client.rb +2 -0
- data/lib/websocket/frame/outgoing/server.rb +2 -0
- data/lib/websocket/handshake.rb +2 -0
- data/lib/websocket/handshake/base.rb +12 -3
- data/lib/websocket/handshake/client.rb +2 -0
- data/lib/websocket/handshake/handler.rb +2 -0
- data/lib/websocket/handshake/handler/base.rb +2 -0
- data/lib/websocket/handshake/handler/client.rb +2 -0
- data/lib/websocket/handshake/handler/client01.rb +2 -0
- data/lib/websocket/handshake/handler/client04.rb +4 -2
- data/lib/websocket/handshake/handler/client11.rb +2 -0
- data/lib/websocket/handshake/handler/client75.rb +4 -2
- data/lib/websocket/handshake/handler/client76.rb +4 -2
- data/lib/websocket/handshake/handler/server.rb +2 -0
- data/lib/websocket/handshake/handler/server04.rb +4 -2
- data/lib/websocket/handshake/handler/server75.rb +4 -2
- data/lib/websocket/handshake/handler/server76.rb +2 -0
- data/lib/websocket/handshake/server.rb +2 -0
- data/lib/websocket/nice_inspect.rb +2 -0
- data/lib/websocket/version.rb +3 -1
- data/spec/frame/incoming_03_spec.rb +18 -16
- data/spec/frame/incoming_04_spec.rb +18 -16
- data/spec/frame/incoming_05_spec.rb +20 -18
- data/spec/frame/incoming_07_spec.rb +22 -20
- data/spec/frame/incoming_75_spec.rb +11 -9
- data/spec/frame/incoming_common_spec.rb +1 -0
- data/spec/frame/masking_spec.rb +1 -0
- data/spec/frame/outgoing_03_spec.rb +10 -8
- data/spec/frame/outgoing_04_spec.rb +10 -8
- data/spec/frame/outgoing_05_spec.rb +10 -8
- data/spec/frame/outgoing_07_spec.rb +11 -9
- data/spec/frame/outgoing_75_spec.rb +6 -4
- data/spec/frame/outgoing_common_spec.rb +1 -0
- data/spec/handshake/client_04_spec.rb +6 -4
- data/spec/handshake/client_11_spec.rb +3 -1
- data/spec/handshake/client_75_spec.rb +4 -2
- data/spec/handshake/client_76_spec.rb +4 -2
- data/spec/handshake/server_04_spec.rb +4 -2
- data/spec/handshake/server_75_spec.rb +4 -2
- data/spec/handshake/server_76_spec.rb +4 -2
- data/spec/spec_helper.rb +2 -0
- data/spec/support/all_client_drafts.rb +2 -0
- data/spec/support/all_server_drafts.rb +2 -0
- data/spec/support/frames_base.rb +2 -0
- data/spec/support/handshake_requests.rb +65 -63
- data/spec/support/incoming_frames.rb +2 -0
- data/spec/support/outgoing_frames.rb +2 -0
- data/spec/support/overwrites.rb +2 -0
- data/websocket.gemspec +2 -2
- metadata +3 -3
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'digest/sha1'
|
2
4
|
require 'base64'
|
3
5
|
|
@@ -20,8 +22,8 @@ module WebSocket
|
|
20
22
|
# @see WebSocket::Handshake::Handler::Base#handshake_keys
|
21
23
|
def handshake_keys
|
22
24
|
[
|
23
|
-
%w
|
24
|
-
%w
|
25
|
+
%w[Upgrade websocket],
|
26
|
+
%w[Connection Upgrade],
|
25
27
|
['Sec-WebSocket-Accept', signature]
|
26
28
|
] + protocol
|
27
29
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module WebSocket
|
2
4
|
module Handshake
|
3
5
|
module Handler
|
@@ -20,8 +22,8 @@ module WebSocket
|
|
20
22
|
# @see WebSocket::Handshake::Handler::Base#handshake_keys
|
21
23
|
def handshake_keys
|
22
24
|
[
|
23
|
-
%w
|
24
|
-
%w
|
25
|
+
%w[Upgrade WebSocket],
|
26
|
+
%w[Connection Upgrade],
|
25
27
|
[headers[:origin], @handshake.headers['origin']],
|
26
28
|
[headers[:location], @handshake.uri]
|
27
29
|
] + protocol
|
data/lib/websocket/version.rb
CHANGED
@@ -1,9 +1,11 @@
|
|
1
1
|
# encoding: binary
|
2
|
+
# frozen_string_literal: true
|
2
3
|
|
3
4
|
require 'spec_helper'
|
4
5
|
|
5
6
|
RSpec.describe 'Incoming frame draft 03' do
|
6
7
|
subject { frame }
|
8
|
+
|
7
9
|
let(:version) { 3 }
|
8
10
|
let(:frame) { WebSocket::Frame::Incoming.new(version: version, data: encoded_text) }
|
9
11
|
let(:encoded_text) { nil }
|
@@ -11,14 +13,14 @@ RSpec.describe 'Incoming frame draft 03' do
|
|
11
13
|
let(:frame_type) { nil }
|
12
14
|
let(:error) { nil }
|
13
15
|
|
14
|
-
|
16
|
+
it_behaves_like 'valid_incoming_frame'
|
15
17
|
|
16
18
|
context 'should properly decode close frame' do
|
17
19
|
let(:encoded_text) { "\x01\x05" + decoded_text }
|
18
20
|
let(:frame_type) { :close }
|
19
21
|
let(:decoded_text) { 'Hello' }
|
20
22
|
|
21
|
-
|
23
|
+
it_behaves_like 'valid_incoming_frame'
|
22
24
|
end
|
23
25
|
|
24
26
|
context 'should properly decode ping frame' do
|
@@ -26,7 +28,7 @@ RSpec.describe 'Incoming frame draft 03' do
|
|
26
28
|
let(:frame_type) { :ping }
|
27
29
|
let(:decoded_text) { 'Hello' }
|
28
30
|
|
29
|
-
|
31
|
+
it_behaves_like 'valid_incoming_frame'
|
30
32
|
end
|
31
33
|
|
32
34
|
context 'should properly decode pong frame' do
|
@@ -34,7 +36,7 @@ RSpec.describe 'Incoming frame draft 03' do
|
|
34
36
|
let(:frame_type) { :pong }
|
35
37
|
let(:decoded_text) { 'Hello' }
|
36
38
|
|
37
|
-
|
39
|
+
it_behaves_like 'valid_incoming_frame'
|
38
40
|
end
|
39
41
|
|
40
42
|
context 'should properly decode text frame' do
|
@@ -42,7 +44,7 @@ RSpec.describe 'Incoming frame draft 03' do
|
|
42
44
|
let(:decoded_text) { 'Hello' }
|
43
45
|
let(:frame_type) { :text }
|
44
46
|
|
45
|
-
|
47
|
+
it_behaves_like 'valid_incoming_frame'
|
46
48
|
end
|
47
49
|
|
48
50
|
context 'should properly decode text frame with continuation' do
|
@@ -50,15 +52,15 @@ RSpec.describe 'Incoming frame draft 03' do
|
|
50
52
|
let(:frame_type) { :text }
|
51
53
|
let(:decoded_text) { 'Hello' }
|
52
54
|
|
53
|
-
|
55
|
+
it_behaves_like 'valid_incoming_frame'
|
54
56
|
end
|
55
57
|
|
56
58
|
context 'should properly decode text frame in between of continuation' do
|
57
59
|
let(:encoded_text) { "\x84\x03Hel\x03\x03abc\x00\x02lo" }
|
58
|
-
let(:frame_type) { %i
|
59
|
-
let(:decoded_text) { %w
|
60
|
+
let(:frame_type) { %i[pong text] }
|
61
|
+
let(:decoded_text) { %w[abc Hello] }
|
60
62
|
|
61
|
-
|
63
|
+
it_behaves_like 'valid_incoming_frame'
|
62
64
|
end
|
63
65
|
|
64
66
|
context 'should not return unfinished more frame' do
|
@@ -66,7 +68,7 @@ RSpec.describe 'Incoming frame draft 03' do
|
|
66
68
|
let(:frame_type) { :pong }
|
67
69
|
let(:decoded_text) { 'abc' }
|
68
70
|
|
69
|
-
|
71
|
+
it_behaves_like 'valid_incoming_frame'
|
70
72
|
end
|
71
73
|
|
72
74
|
context 'should properly decode 256 bytes binary frame' do
|
@@ -74,7 +76,7 @@ RSpec.describe 'Incoming frame draft 03' do
|
|
74
76
|
let(:frame_type) { :binary }
|
75
77
|
let(:decoded_text) { 'a' * 256 }
|
76
78
|
|
77
|
-
|
79
|
+
it_behaves_like 'valid_incoming_frame'
|
78
80
|
end
|
79
81
|
|
80
82
|
context 'should properly decode 64KiB binary frame' do
|
@@ -82,14 +84,14 @@ RSpec.describe 'Incoming frame draft 03' do
|
|
82
84
|
let(:frame_type) { :binary }
|
83
85
|
let(:decoded_text) { 'a' * 65_536 }
|
84
86
|
|
85
|
-
|
87
|
+
it_behaves_like 'valid_incoming_frame'
|
86
88
|
end
|
87
89
|
|
88
90
|
context 'should wait with incomplete frame' do
|
89
91
|
let(:encoded_text) { "\x04\x06Hello" }
|
90
92
|
let(:decoded_text) { nil }
|
91
93
|
|
92
|
-
|
94
|
+
it_behaves_like 'valid_incoming_frame'
|
93
95
|
end
|
94
96
|
|
95
97
|
context 'should raise error with invalid opcode' do
|
@@ -97,7 +99,7 @@ RSpec.describe 'Incoming frame draft 03' do
|
|
97
99
|
let(:decoded_text) { nil }
|
98
100
|
let(:error) { WebSocket::Error::Frame::UnknownOpcode }
|
99
101
|
|
100
|
-
|
102
|
+
it_behaves_like 'valid_incoming_frame'
|
101
103
|
end
|
102
104
|
|
103
105
|
context 'should raise error with too long frame' do
|
@@ -105,7 +107,7 @@ RSpec.describe 'Incoming frame draft 03' do
|
|
105
107
|
let(:decoded_text) { nil }
|
106
108
|
let(:error) { WebSocket::Error::Frame::TooLong }
|
107
109
|
|
108
|
-
|
110
|
+
it_behaves_like 'valid_incoming_frame'
|
109
111
|
end
|
110
112
|
|
111
113
|
context 'should raise error with continuation frame without more frame earlier' do
|
@@ -113,6 +115,6 @@ RSpec.describe 'Incoming frame draft 03' do
|
|
113
115
|
let(:decoded_text) { nil }
|
114
116
|
let(:error) { WebSocket::Error::Frame::UnexpectedContinuationFrame }
|
115
117
|
|
116
|
-
|
118
|
+
it_behaves_like 'valid_incoming_frame'
|
117
119
|
end
|
118
120
|
end
|
@@ -1,9 +1,11 @@
|
|
1
1
|
# encoding: binary
|
2
|
+
# frozen_string_literal: true
|
2
3
|
|
3
4
|
require 'spec_helper'
|
4
5
|
|
5
6
|
RSpec.describe 'Incoming frame draft 04' do
|
6
7
|
subject { frame }
|
8
|
+
|
7
9
|
let(:version) { 4 }
|
8
10
|
let(:frame) { WebSocket::Frame::Incoming.new(version: version, data: encoded_text) }
|
9
11
|
let(:encoded_text) { nil }
|
@@ -11,14 +13,14 @@ RSpec.describe 'Incoming frame draft 04' do
|
|
11
13
|
let(:frame_type) { nil }
|
12
14
|
let(:error) { nil }
|
13
15
|
|
14
|
-
|
16
|
+
it_behaves_like 'valid_incoming_frame'
|
15
17
|
|
16
18
|
context 'should properly decode close frame' do
|
17
19
|
let(:encoded_text) { "\x81\x05" + decoded_text }
|
18
20
|
let(:frame_type) { :close }
|
19
21
|
let(:decoded_text) { 'Hello' }
|
20
22
|
|
21
|
-
|
23
|
+
it_behaves_like 'valid_incoming_frame'
|
22
24
|
end
|
23
25
|
|
24
26
|
context 'should properly decode ping frame' do
|
@@ -26,7 +28,7 @@ RSpec.describe 'Incoming frame draft 04' do
|
|
26
28
|
let(:frame_type) { :ping }
|
27
29
|
let(:decoded_text) { 'Hello' }
|
28
30
|
|
29
|
-
|
31
|
+
it_behaves_like 'valid_incoming_frame'
|
30
32
|
end
|
31
33
|
|
32
34
|
context 'should properly decode pong frame' do
|
@@ -34,7 +36,7 @@ RSpec.describe 'Incoming frame draft 04' do
|
|
34
36
|
let(:frame_type) { :pong }
|
35
37
|
let(:decoded_text) { 'Hello' }
|
36
38
|
|
37
|
-
|
39
|
+
it_behaves_like 'valid_incoming_frame'
|
38
40
|
end
|
39
41
|
|
40
42
|
context 'should properly decode text frame' do
|
@@ -42,7 +44,7 @@ RSpec.describe 'Incoming frame draft 04' do
|
|
42
44
|
let(:decoded_text) { 'Hello' }
|
43
45
|
let(:frame_type) { :text }
|
44
46
|
|
45
|
-
|
47
|
+
it_behaves_like 'valid_incoming_frame'
|
46
48
|
end
|
47
49
|
|
48
50
|
context 'should properly decode text frame with continuation' do
|
@@ -50,15 +52,15 @@ RSpec.describe 'Incoming frame draft 04' do
|
|
50
52
|
let(:frame_type) { :text }
|
51
53
|
let(:decoded_text) { 'Hello' }
|
52
54
|
|
53
|
-
|
55
|
+
it_behaves_like 'valid_incoming_frame'
|
54
56
|
end
|
55
57
|
|
56
58
|
context 'should properly decode text frame in between of continuation' do
|
57
59
|
let(:encoded_text) { "\x04\x03Hel\x83\x03abc\x80\x02lo" }
|
58
|
-
let(:frame_type) { %i
|
59
|
-
let(:decoded_text) { %w
|
60
|
+
let(:frame_type) { %i[pong text] }
|
61
|
+
let(:decoded_text) { %w[abc Hello] }
|
60
62
|
|
61
|
-
|
63
|
+
it_behaves_like 'valid_incoming_frame'
|
62
64
|
end
|
63
65
|
|
64
66
|
context 'should not return unfinished more frame' do
|
@@ -66,7 +68,7 @@ RSpec.describe 'Incoming frame draft 04' do
|
|
66
68
|
let(:frame_type) { :pong }
|
67
69
|
let(:decoded_text) { 'abc' }
|
68
70
|
|
69
|
-
|
71
|
+
it_behaves_like 'valid_incoming_frame'
|
70
72
|
end
|
71
73
|
|
72
74
|
context 'should properly decode 256 bytes binary frame' do
|
@@ -74,7 +76,7 @@ RSpec.describe 'Incoming frame draft 04' do
|
|
74
76
|
let(:frame_type) { :binary }
|
75
77
|
let(:decoded_text) { 'a' * 256 }
|
76
78
|
|
77
|
-
|
79
|
+
it_behaves_like 'valid_incoming_frame'
|
78
80
|
end
|
79
81
|
|
80
82
|
context 'should properly decode 64KiB binary frame' do
|
@@ -82,14 +84,14 @@ RSpec.describe 'Incoming frame draft 04' do
|
|
82
84
|
let(:frame_type) { :binary }
|
83
85
|
let(:decoded_text) { 'a' * 65_536 }
|
84
86
|
|
85
|
-
|
87
|
+
it_behaves_like 'valid_incoming_frame'
|
86
88
|
end
|
87
89
|
|
88
90
|
context 'should wait with incomplete frame' do
|
89
91
|
let(:encoded_text) { "\x84\x06Hello" }
|
90
92
|
let(:decoded_text) { nil }
|
91
93
|
|
92
|
-
|
94
|
+
it_behaves_like 'valid_incoming_frame'
|
93
95
|
end
|
94
96
|
|
95
97
|
context 'should raise error with invalid opcode' do
|
@@ -97,7 +99,7 @@ RSpec.describe 'Incoming frame draft 04' do
|
|
97
99
|
let(:decoded_text) { nil }
|
98
100
|
let(:error) { WebSocket::Error::Frame::UnknownOpcode }
|
99
101
|
|
100
|
-
|
102
|
+
it_behaves_like 'valid_incoming_frame'
|
101
103
|
end
|
102
104
|
|
103
105
|
context 'should raise error with too long frame' do
|
@@ -105,7 +107,7 @@ RSpec.describe 'Incoming frame draft 04' do
|
|
105
107
|
let(:decoded_text) { nil }
|
106
108
|
let(:error) { WebSocket::Error::Frame::TooLong }
|
107
109
|
|
108
|
-
|
110
|
+
it_behaves_like 'valid_incoming_frame'
|
109
111
|
end
|
110
112
|
|
111
113
|
context 'should raise error with continuation frame without more frame earlier' do
|
@@ -113,6 +115,6 @@ RSpec.describe 'Incoming frame draft 04' do
|
|
113
115
|
let(:decoded_text) { nil }
|
114
116
|
let(:error) { WebSocket::Error::Frame::UnexpectedContinuationFrame }
|
115
117
|
|
116
|
-
|
118
|
+
it_behaves_like 'valid_incoming_frame'
|
117
119
|
end
|
118
120
|
end
|
@@ -1,9 +1,11 @@
|
|
1
1
|
# encoding: binary
|
2
|
+
# frozen_string_literal: true
|
2
3
|
|
3
4
|
require 'spec_helper'
|
4
5
|
|
5
6
|
RSpec.describe 'Incoming frame draft 05' do
|
6
7
|
subject { frame }
|
8
|
+
|
7
9
|
let(:version) { 5 }
|
8
10
|
let(:frame) { WebSocket::Frame::Incoming.new(version: version, data: encoded_text) }
|
9
11
|
let(:encoded_text) { nil }
|
@@ -11,14 +13,14 @@ RSpec.describe 'Incoming frame draft 05' do
|
|
11
13
|
let(:frame_type) { nil }
|
12
14
|
let(:error) { nil }
|
13
15
|
|
14
|
-
|
16
|
+
it_behaves_like 'valid_incoming_frame'
|
15
17
|
|
16
18
|
context 'should properly decode close frame' do
|
17
19
|
let(:encoded_text) { "\x81\x05" + decoded_text }
|
18
20
|
let(:frame_type) { :close }
|
19
21
|
let(:decoded_text) { 'Hello' }
|
20
22
|
|
21
|
-
|
23
|
+
it_behaves_like 'valid_incoming_frame'
|
22
24
|
end
|
23
25
|
|
24
26
|
context 'should properly decode ping frame' do
|
@@ -26,7 +28,7 @@ RSpec.describe 'Incoming frame draft 05' do
|
|
26
28
|
let(:frame_type) { :ping }
|
27
29
|
let(:decoded_text) { 'Hello' }
|
28
30
|
|
29
|
-
|
31
|
+
it_behaves_like 'valid_incoming_frame'
|
30
32
|
end
|
31
33
|
|
32
34
|
context 'should properly decode pong frame' do
|
@@ -34,7 +36,7 @@ RSpec.describe 'Incoming frame draft 05' do
|
|
34
36
|
let(:frame_type) { :pong }
|
35
37
|
let(:decoded_text) { 'Hello' }
|
36
38
|
|
37
|
-
|
39
|
+
it_behaves_like 'valid_incoming_frame'
|
38
40
|
end
|
39
41
|
|
40
42
|
context 'should properly decode text frame' do
|
@@ -42,7 +44,7 @@ RSpec.describe 'Incoming frame draft 05' do
|
|
42
44
|
let(:decoded_text) { 'Hello' }
|
43
45
|
let(:frame_type) { :text }
|
44
46
|
|
45
|
-
|
47
|
+
it_behaves_like 'valid_incoming_frame'
|
46
48
|
end
|
47
49
|
|
48
50
|
context 'should properly decode masked text frame' do
|
@@ -50,7 +52,7 @@ RSpec.describe 'Incoming frame draft 05' do
|
|
50
52
|
let(:decoded_text) { 'Hello' }
|
51
53
|
let(:frame_type) { :text }
|
52
54
|
|
53
|
-
|
55
|
+
it_behaves_like 'valid_incoming_frame'
|
54
56
|
end
|
55
57
|
|
56
58
|
context 'should properly decode text frame with continuation' do
|
@@ -58,7 +60,7 @@ RSpec.describe 'Incoming frame draft 05' do
|
|
58
60
|
let(:frame_type) { :text }
|
59
61
|
let(:decoded_text) { 'Hello' }
|
60
62
|
|
61
|
-
|
63
|
+
it_behaves_like 'valid_incoming_frame'
|
62
64
|
end
|
63
65
|
|
64
66
|
context 'should properly decode masked text frame with continuation' do
|
@@ -66,15 +68,15 @@ RSpec.describe 'Incoming frame draft 05' do
|
|
66
68
|
let(:frame_type) { :text }
|
67
69
|
let(:decoded_text) { 'Hello' }
|
68
70
|
|
69
|
-
|
71
|
+
it_behaves_like 'valid_incoming_frame'
|
70
72
|
end
|
71
73
|
|
72
74
|
context 'should properly decode text frame in between of continuation' do
|
73
75
|
let(:encoded_text) { "\x04\x03Hel\x83\x03abc\x80\x02lo" }
|
74
|
-
let(:frame_type) { %i
|
75
|
-
let(:decoded_text) { %w
|
76
|
+
let(:frame_type) { %i[pong text] }
|
77
|
+
let(:decoded_text) { %w[abc Hello] }
|
76
78
|
|
77
|
-
|
79
|
+
it_behaves_like 'valid_incoming_frame'
|
78
80
|
end
|
79
81
|
|
80
82
|
context 'should not return unfinished more frame' do
|
@@ -82,7 +84,7 @@ RSpec.describe 'Incoming frame draft 05' do
|
|
82
84
|
let(:frame_type) { :pong }
|
83
85
|
let(:decoded_text) { 'abc' }
|
84
86
|
|
85
|
-
|
87
|
+
it_behaves_like 'valid_incoming_frame'
|
86
88
|
end
|
87
89
|
|
88
90
|
context 'should properly decode 256 bytes binary frame' do
|
@@ -90,7 +92,7 @@ RSpec.describe 'Incoming frame draft 05' do
|
|
90
92
|
let(:frame_type) { :binary }
|
91
93
|
let(:decoded_text) { 'a' * 256 }
|
92
94
|
|
93
|
-
|
95
|
+
it_behaves_like 'valid_incoming_frame'
|
94
96
|
end
|
95
97
|
|
96
98
|
context 'should properly decode 64KiB binary frame' do
|
@@ -98,14 +100,14 @@ RSpec.describe 'Incoming frame draft 05' do
|
|
98
100
|
let(:frame_type) { :binary }
|
99
101
|
let(:decoded_text) { 'a' * 65_536 }
|
100
102
|
|
101
|
-
|
103
|
+
it_behaves_like 'valid_incoming_frame'
|
102
104
|
end
|
103
105
|
|
104
106
|
context 'should wait with incomplete frame' do
|
105
107
|
let(:encoded_text) { "\x84\x06Hello" }
|
106
108
|
let(:decoded_text) { nil }
|
107
109
|
|
108
|
-
|
110
|
+
it_behaves_like 'valid_incoming_frame'
|
109
111
|
end
|
110
112
|
|
111
113
|
context 'should raise error with invalid opcode' do
|
@@ -113,7 +115,7 @@ RSpec.describe 'Incoming frame draft 05' do
|
|
113
115
|
let(:decoded_text) { nil }
|
114
116
|
let(:error) { WebSocket::Error::Frame::UnknownOpcode }
|
115
117
|
|
116
|
-
|
118
|
+
it_behaves_like 'valid_incoming_frame'
|
117
119
|
end
|
118
120
|
|
119
121
|
context 'should raise error with too long frame' do
|
@@ -121,7 +123,7 @@ RSpec.describe 'Incoming frame draft 05' do
|
|
121
123
|
let(:decoded_text) { nil }
|
122
124
|
let(:error) { WebSocket::Error::Frame::TooLong }
|
123
125
|
|
124
|
-
|
126
|
+
it_behaves_like 'valid_incoming_frame'
|
125
127
|
end
|
126
128
|
|
127
129
|
context 'should raise error with continuation frame without more frame earlier' do
|
@@ -129,6 +131,6 @@ RSpec.describe 'Incoming frame draft 05' do
|
|
129
131
|
let(:decoded_text) { nil }
|
130
132
|
let(:error) { WebSocket::Error::Frame::UnexpectedContinuationFrame }
|
131
133
|
|
132
|
-
|
134
|
+
it_behaves_like 'valid_incoming_frame'
|
133
135
|
end
|
134
136
|
end
|