opal-browser 0.1.0.beta1 → 0.2.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +60 -0
- data/.yardopts +1 -1
- data/Gemfile +7 -2
- data/LICENSE +19 -0
- data/README.md +74 -10
- data/config.ru +2 -1
- data/index.html.erb +22 -0
- data/opal-browser.gemspec +9 -11
- data/opal/browser.rb +1 -1
- data/opal/browser/animation_frame.rb +66 -9
- data/opal/browser/canvas.rb +72 -18
- data/opal/browser/canvas/data.rb +1 -1
- data/opal/browser/console.rb +3 -37
- data/opal/browser/cookies.rb +80 -24
- data/opal/browser/css/declaration.rb +0 -5
- data/opal/browser/{timeout.rb → delay.rb} +13 -13
- data/opal/browser/dom.rb +0 -2
- data/opal/browser/dom/attribute.rb +6 -0
- data/opal/browser/dom/builder.rb +4 -8
- data/opal/browser/dom/character_data.rb +43 -7
- data/opal/browser/dom/document.rb +13 -11
- data/opal/browser/dom/element.rb +127 -29
- data/opal/browser/dom/element/image.rb +23 -0
- data/opal/browser/dom/element/offset.rb +27 -10
- data/opal/browser/dom/element/scroll.rb +32 -12
- data/opal/browser/dom/element/size.rb +29 -0
- data/opal/browser/dom/event.rb +88 -75
- data/opal/browser/dom/event/animation.rb +16 -4
- data/opal/browser/dom/event/audio_processing.rb +6 -4
- data/opal/browser/dom/event/base.rb +229 -64
- data/opal/browser/dom/event/before_unload.rb +6 -4
- data/opal/browser/dom/event/clipboard.rb +6 -4
- data/opal/browser/dom/event/close.rb +16 -4
- data/opal/browser/dom/event/composition.rb +16 -4
- data/opal/browser/dom/event/custom.rb +43 -8
- data/opal/browser/dom/event/device_light.rb +6 -4
- data/opal/browser/dom/event/device_motion.rb +17 -4
- data/opal/browser/dom/event/device_orientation.rb +16 -4
- data/opal/browser/dom/event/device_proximity.rb +6 -4
- data/opal/browser/dom/event/drag.rb +34 -28
- data/opal/browser/dom/event/focus.rb +21 -5
- data/opal/browser/dom/event/gamepad.rb +33 -20
- data/opal/browser/dom/event/hash_change.rb +6 -4
- data/opal/browser/dom/event/keyboard.rb +45 -23
- data/opal/browser/dom/event/message.rb +28 -8
- data/opal/browser/dom/event/mouse.rb +26 -25
- data/opal/browser/dom/event/page_transition.rb +6 -4
- data/opal/browser/dom/event/pop_state.rb +16 -4
- data/opal/browser/dom/event/progress.rb +16 -4
- data/opal/browser/dom/event/sensor.rb +6 -4
- data/opal/browser/dom/event/storage.rb +6 -4
- data/opal/browser/dom/event/touch.rb +10 -19
- data/opal/browser/dom/event/ui.rb +19 -3
- data/opal/browser/dom/event/wheel.rb +2 -2
- data/opal/browser/dom/mutation_observer.rb +65 -5
- data/opal/browser/dom/node.rb +164 -59
- data/opal/browser/dom/node_set.rb +4 -0
- data/opal/browser/dom/text.rb +16 -1
- data/opal/browser/event_source.rb +5 -2
- data/opal/browser/history.rb +51 -15
- data/opal/browser/http.rb +22 -7
- data/opal/browser/http/headers.rb +5 -0
- data/opal/browser/http/request.rb +40 -10
- data/opal/browser/immediate.rb +123 -9
- data/opal/browser/interval.rb +8 -13
- data/opal/browser/location.rb +13 -3
- data/opal/browser/navigator.rb +9 -6
- data/opal/browser/screen.rb +31 -5
- data/opal/browser/socket.rb +8 -4
- data/opal/browser/storage.rb +118 -33
- data/opal/browser/support.rb +232 -0
- data/opal/browser/utils.rb +24 -6
- data/opal/browser/version.rb +1 -1
- data/opal/browser/window.rb +1 -2
- data/opal/browser/window/scroll.rb +21 -11
- data/opal/browser/window/size.rb +16 -6
- data/opal/browser/window/view.rb +23 -5
- data/spec/dom/builder_spec.rb +19 -19
- data/spec/dom/document_spec.rb +6 -6
- data/spec/dom/element_spec.rb +5 -5
- data/spec/dom/event_spec.rb +20 -20
- data/spec/dom/mutation_observer_spec.rb +5 -5
- data/spec/dom/node_spec.rb +39 -27
- data/spec/dom_spec.rb +10 -8
- data/spec/event_source_spec.rb +12 -12
- data/spec/history_spec.rb +24 -15
- data/spec/http_spec.rb +18 -17
- data/spec/immediate_spec.rb +9 -7
- data/spec/runner.rb +114 -0
- data/spec/socket_spec.rb +8 -8
- data/spec/spec_helper.rb +1 -0
- data/spec/storage_spec.rb +6 -6
- data/spec/wgxpath.install.js +49 -0
- data/spec/window_spec.rb +2 -2
- metadata +21 -54
- data/opal/browser/compatibility.rb +0 -59
- data/opal/browser/compatibility/animation_frame.rb +0 -93
- data/opal/browser/compatibility/dom/document/window.rb +0 -15
- data/opal/browser/compatibility/dom/element/css.rb +0 -15
- data/opal/browser/compatibility/dom/element/matches.rb +0 -31
- data/opal/browser/compatibility/dom/element/offset.rb +0 -20
- data/opal/browser/compatibility/dom/element/scroll.rb +0 -25
- data/opal/browser/compatibility/dom/element/style.rb +0 -15
- data/opal/browser/compatibility/dom/mutation_observer.rb +0 -47
- data/opal/browser/compatibility/http/request.rb +0 -15
- data/opal/browser/compatibility/immediate.rb +0 -107
- data/opal/browser/compatibility/window/scroll.rb +0 -27
- data/opal/browser/compatibility/window/size.rb +0 -13
- data/opal/browser/compatibility/window/view.rb +0 -13
- data/opal/browser/dom/compatibility.rb +0 -8
- data/opal/browser/http/compatibility.rb +0 -1
- data/opal/browser/window/compatibility.rb +0 -3
data/spec/dom/document_spec.rb
CHANGED
@@ -3,7 +3,7 @@ require 'spec_helper'
|
|
3
3
|
describe Browser::DOM::Document do
|
4
4
|
describe '#title' do
|
5
5
|
it 'should get the document title' do
|
6
|
-
$document.title.
|
6
|
+
expect($document.title).to be_a(String)
|
7
7
|
end
|
8
8
|
end
|
9
9
|
|
@@ -11,7 +11,7 @@ describe Browser::DOM::Document do
|
|
11
11
|
it 'should set the document title' do
|
12
12
|
old = $document.title
|
13
13
|
$document.title = 'lol'
|
14
|
-
$document.title.
|
14
|
+
expect($document.title).to eq('lol')
|
15
15
|
$document.title = old
|
16
16
|
end
|
17
17
|
end
|
@@ -22,19 +22,19 @@ describe Browser::DOM::Document do
|
|
22
22
|
HTML
|
23
23
|
|
24
24
|
it "should get element by id" do
|
25
|
-
$document["lol"].
|
25
|
+
expect($document["lol"]).to eq(`document.getElementById('lol')`)
|
26
26
|
end
|
27
27
|
|
28
28
|
it "should get element by css" do
|
29
|
-
$document["lol"].
|
29
|
+
expect($document["#lol"]).to eq(`document.getElementById('lol')`)
|
30
30
|
end
|
31
31
|
|
32
32
|
it "should get element by xpath" do
|
33
|
-
$document["//*[@id='lol']"].
|
33
|
+
expect($document["//*[@id='lol']"]).to eq(`document.getElementById('lol')`)
|
34
34
|
end
|
35
35
|
|
36
36
|
it "should return nil if it can't find anything" do
|
37
|
-
$document["doo-dah"].
|
37
|
+
expect($document["doo-dah"]).to be_nil
|
38
38
|
end
|
39
39
|
end
|
40
40
|
end
|
data/spec/dom/element_spec.rb
CHANGED
@@ -7,7 +7,7 @@ describe Browser::DOM::Element do
|
|
7
7
|
HTML
|
8
8
|
|
9
9
|
it 'gets the proper id' do
|
10
|
-
$document["lol"].id.
|
10
|
+
expect($document["lol"].id).to eq('lol')
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
@@ -20,11 +20,11 @@ describe Browser::DOM::Element do
|
|
20
20
|
HTML
|
21
21
|
|
22
22
|
it 'gives an empty array when no class is set' do
|
23
|
-
$document["class-names-2"].class_names.
|
23
|
+
expect($document["class-names-2"].class_names).to eq([])
|
24
24
|
end
|
25
25
|
|
26
26
|
it 'gives an array of class names' do
|
27
|
-
$document["class-names-1"].class_names.
|
27
|
+
expect($document["class-names-1"].class_names).to eq(%w[a b c])
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
@@ -36,11 +36,11 @@ describe Browser::DOM::Element do
|
|
36
36
|
HTML
|
37
37
|
|
38
38
|
it 'matches on class and id' do
|
39
|
-
$document[:matches].matches?('#matches.not.me').
|
39
|
+
expect($document[:matches].matches?('#matches.not.me')).to be_truthy
|
40
40
|
end
|
41
41
|
|
42
42
|
it 'matches on class and name' do
|
43
|
-
$document[:matches].first_element_child.matches?('span.yes').
|
43
|
+
expect($document[:matches].first_element_child.matches?('span.yes')).to be_truthy
|
44
44
|
end
|
45
45
|
end
|
46
46
|
end
|
data/spec/dom/event_spec.rb
CHANGED
@@ -16,13 +16,13 @@ describe Browser::DOM::Event do
|
|
16
16
|
count += 1
|
17
17
|
end
|
18
18
|
|
19
|
-
count.
|
19
|
+
expect(count).to eq(0)
|
20
20
|
elem.trigger :click
|
21
|
-
count.
|
21
|
+
expect(count).to eq(1)
|
22
22
|
elem.trigger :click
|
23
|
-
count.
|
23
|
+
expect(count).to eq(2)
|
24
24
|
elem.trigger 'mouse:down'
|
25
|
-
count.
|
25
|
+
expect(count).to eq(2)
|
26
26
|
end
|
27
27
|
|
28
28
|
it "listens for custom events" do
|
@@ -33,19 +33,19 @@ describe Browser::DOM::Event do
|
|
33
33
|
count += 1
|
34
34
|
end
|
35
35
|
|
36
|
-
count.
|
36
|
+
expect(count).to eq(0)
|
37
37
|
elem.trigger :huehue
|
38
|
-
count.
|
38
|
+
expect(count).to eq(1)
|
39
39
|
elem.trigger :huehue
|
40
|
-
count.
|
40
|
+
expect(count).to eq(2)
|
41
41
|
end
|
42
42
|
|
43
43
|
async "passes an event to the handler" do
|
44
44
|
elem = $document["event-spec"]
|
45
45
|
|
46
46
|
elem.on :click do |event|
|
47
|
-
|
48
|
-
event.
|
47
|
+
async {
|
48
|
+
expect(event).to be_a(Browser::DOM::Event)
|
49
49
|
}
|
50
50
|
end
|
51
51
|
|
@@ -56,22 +56,22 @@ describe Browser::DOM::Event do
|
|
56
56
|
elem = $document["event-spec"]
|
57
57
|
|
58
58
|
elem.on :bazinga do |event, foo, bar, baz|
|
59
|
-
|
60
|
-
foo.
|
61
|
-
bar.
|
62
|
-
baz.
|
59
|
+
async {
|
60
|
+
expect(foo).to eq(1)
|
61
|
+
expect(bar).to eq(2)
|
62
|
+
expect(baz).to eq(3)
|
63
63
|
}
|
64
64
|
end
|
65
65
|
|
66
66
|
elem.trigger :bazinga, 1, 2, 3
|
67
67
|
end
|
68
68
|
|
69
|
-
async "works with
|
69
|
+
async "works with delegated events" do
|
70
70
|
elem = $document["event-spec"]
|
71
71
|
|
72
72
|
elem.on :bazinga, 'span.nami' do
|
73
|
-
|
74
|
-
true.
|
73
|
+
async {
|
74
|
+
expect(true).to be_truthy
|
75
75
|
}
|
76
76
|
end
|
77
77
|
|
@@ -97,11 +97,11 @@ describe Browser::DOM::Event do
|
|
97
97
|
end
|
98
98
|
|
99
99
|
elem.trigger :click
|
100
|
-
count.
|
100
|
+
expect(count).to eq(2)
|
101
101
|
|
102
102
|
elem.off :click
|
103
103
|
elem.trigger :click
|
104
|
-
count.
|
104
|
+
expect(count).to eq(2)
|
105
105
|
end
|
106
106
|
|
107
107
|
it "removes only the passed handler" do
|
@@ -117,11 +117,11 @@ describe Browser::DOM::Event do
|
|
117
117
|
end
|
118
118
|
|
119
119
|
elem.trigger :click
|
120
|
-
count.
|
120
|
+
expect(count).to eq(2)
|
121
121
|
|
122
122
|
cb.off
|
123
123
|
elem.trigger :click
|
124
|
-
count.
|
124
|
+
expect(count).to eq(3)
|
125
125
|
end
|
126
126
|
end
|
127
127
|
end
|
@@ -9,8 +9,8 @@ describe Browser::DOM::MutationObserver do
|
|
9
9
|
|
10
10
|
async 'notifies additions' do
|
11
11
|
obs = Browser::DOM::MutationObserver.new {|mutations|
|
12
|
-
|
13
|
-
mutations.first.added.first.name.
|
12
|
+
async {
|
13
|
+
expect(mutations.first.added.first.name).to eq('DIV')
|
14
14
|
}
|
15
15
|
|
16
16
|
obs.disconnect
|
@@ -23,8 +23,8 @@ describe Browser::DOM::MutationObserver do
|
|
23
23
|
|
24
24
|
async 'notifies removals' do
|
25
25
|
obs = Browser::DOM::MutationObserver.new {|mutations|
|
26
|
-
|
27
|
-
mutations.first.removed.first.name.
|
26
|
+
async {
|
27
|
+
expect(mutations.first.removed.first.name).to eq('SPAN')
|
28
28
|
}
|
29
29
|
|
30
30
|
obs.disconnect
|
@@ -34,4 +34,4 @@ describe Browser::DOM::MutationObserver do
|
|
34
34
|
|
35
35
|
$document[:mutate].first_element_child.remove
|
36
36
|
end
|
37
|
-
end
|
37
|
+
end if Browser::DOM::MutationObserver.supported?
|
data/spec/dom/node_spec.rb
CHANGED
@@ -5,22 +5,22 @@ describe Browser::DOM::Node do
|
|
5
5
|
html '<div id="lol"></div>'
|
6
6
|
|
7
7
|
it 'should work when the other argument is the native counterpart' do
|
8
|
-
$document["lol"].
|
8
|
+
expect($document["lol"]).to eq(`document.getElementById("lol")`)
|
9
9
|
end
|
10
10
|
|
11
11
|
it 'should work when the other argument is the same DOM::Node' do
|
12
12
|
el = $document["lol"]
|
13
|
-
el.
|
13
|
+
expect(el).to eq(el)
|
14
14
|
end
|
15
15
|
|
16
16
|
it 'should work when the other argument is another DOM::Node' do
|
17
|
-
$document["lol"].
|
17
|
+
expect($document["lol"]).to eq($document["lol"])
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
21
21
|
describe "#document?" do
|
22
22
|
it "should be true for document" do
|
23
|
-
$document.document
|
23
|
+
expect($document.document?).to be_truthy
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
@@ -28,7 +28,7 @@ describe Browser::DOM::Node do
|
|
28
28
|
html '<div id="lol"></div>'
|
29
29
|
|
30
30
|
it "should be true for <div id='lol'>" do
|
31
|
-
$document["#lol"].element
|
31
|
+
expect($document["#lol"].element?).to be_truthy
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
@@ -36,7 +36,7 @@ describe Browser::DOM::Node do
|
|
36
36
|
html '<div id="omg">lol</div>'
|
37
37
|
|
38
38
|
it "should be true for the first child of <div id='lol'>" do
|
39
|
-
$document["#omg"].child.text
|
39
|
+
expect($document["#omg"].child.text?).to be_truthy
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
@@ -48,13 +48,13 @@ describe Browser::DOM::Node do
|
|
48
48
|
it 'should get all ancestors' do
|
49
49
|
ancestors = $document["incest"].ancestors
|
50
50
|
|
51
|
-
ancestors[0].name.
|
52
|
-
ancestors[1].name.
|
53
|
-
ancestors[2].name.
|
51
|
+
expect(ancestors[0].name).to eq('STRONG')
|
52
|
+
expect(ancestors[1].name).to eq('SPAN')
|
53
|
+
expect(ancestors[2].name).to eq('DIV')
|
54
54
|
end
|
55
55
|
|
56
56
|
it 'should get only the selected ancestors' do
|
57
|
-
$document["incest"].ancestors('strong').length.
|
57
|
+
expect($document["incest"].ancestors('strong').length).to eq(1)
|
58
58
|
end
|
59
59
|
end
|
60
60
|
|
@@ -64,81 +64,93 @@ describe Browser::DOM::Node do
|
|
64
64
|
HTML
|
65
65
|
|
66
66
|
it 'gets the first child properly' do
|
67
|
-
$document["test-1"].child.id.
|
67
|
+
expect($document["test-1"].child.id).to eq('test-2')
|
68
68
|
end
|
69
69
|
|
70
70
|
it 'returns nil if there is no child' do
|
71
|
-
$document["test-2"].child.
|
71
|
+
expect($document["test-2"].child).to be_nil
|
72
72
|
end
|
73
73
|
end
|
74
74
|
|
75
75
|
describe '#next' do
|
76
76
|
html <<-HTML
|
77
77
|
<div id="spec-1"></div>
|
78
|
+
a
|
78
79
|
<div id="spec-2"></div>
|
80
|
+
b
|
79
81
|
<div id="spec-3"></div>
|
82
|
+
c
|
80
83
|
HTML
|
81
84
|
|
82
85
|
it 'should return the next sibling' do
|
83
|
-
$document["spec-1"].next.text
|
84
|
-
$document["spec-1"].next.next.id.
|
86
|
+
expect($document["spec-1"].next.text?).to be_truthy
|
87
|
+
expect($document["spec-1"].next.next.id).to eq('spec-2')
|
85
88
|
end
|
86
89
|
|
87
90
|
it 'should return nil when there is no next sibling' do
|
88
|
-
$document["spec-3"].next.text
|
89
|
-
$document["spec-3"].next.next.
|
91
|
+
expect($document["spec-3"].next.text?).to be_truthy
|
92
|
+
expect($document["spec-3"].next.next).to be_nil
|
90
93
|
end
|
91
94
|
end
|
92
95
|
|
93
96
|
describe '#next_element' do
|
94
97
|
html <<-HTML
|
95
98
|
<div id="spec-1"></div>
|
99
|
+
a
|
96
100
|
<div id="spec-2"></div>
|
101
|
+
b
|
97
102
|
<div id="spec-3"></div>
|
103
|
+
c
|
98
104
|
HTML
|
99
105
|
|
100
106
|
it 'should return the next element sibling' do
|
101
|
-
$document["spec-1"].next_element.id.
|
102
|
-
$document["spec-2"].next_element.id.
|
107
|
+
expect($document["spec-1"].next_element.id).to eq('spec-2')
|
108
|
+
expect($document["spec-2"].next_element.id).to eq('spec-3')
|
103
109
|
end
|
104
110
|
|
105
111
|
it 'should return nil when there is no next element sibling' do
|
106
|
-
$document["spec-3"].next_element.
|
112
|
+
expect($document["spec-3"].next_element).to be_nil
|
107
113
|
end
|
108
114
|
end
|
109
115
|
|
110
116
|
describe '#previous' do
|
111
117
|
html <<-HTML
|
118
|
+
a
|
112
119
|
<div id="spec-1"></div>
|
120
|
+
b
|
113
121
|
<div id="spec-2"></div>
|
122
|
+
c
|
114
123
|
<div id="spec-3"></div>
|
115
124
|
HTML
|
116
125
|
|
117
126
|
it 'should return the previous sibling' do
|
118
|
-
$document["spec-2"].previous.text
|
119
|
-
$document["spec-2"].previous.previous.id.
|
127
|
+
expect($document["spec-2"].previous.text?).to be_truthy
|
128
|
+
expect($document["spec-2"].previous.previous.id).to eq('spec-1')
|
120
129
|
end
|
121
130
|
|
122
131
|
it 'should return nil when there is no previous sibling' do
|
123
|
-
$document["spec-1"].previous.text
|
124
|
-
$document["spec-1"].previous.previous.
|
132
|
+
expect($document["spec-1"].previous.text?).to be_truthy
|
133
|
+
expect($document["spec-1"].previous.previous).to be_nil
|
125
134
|
end
|
126
135
|
end
|
127
136
|
|
128
137
|
describe '#previous_element' do
|
129
138
|
html <<-HTML
|
139
|
+
a
|
130
140
|
<div id="spec-1"></div>
|
141
|
+
b
|
131
142
|
<div id="spec-2"></div>
|
143
|
+
c
|
132
144
|
<div id="spec-3"></div>
|
133
145
|
HTML
|
134
146
|
|
135
147
|
it 'should return the previous element sibling' do
|
136
|
-
$document["spec-2"].previous_element.id.
|
137
|
-
$document["spec-3"].previous_element.id.
|
148
|
+
expect($document["spec-2"].previous_element.id).to eq('spec-1')
|
149
|
+
expect($document["spec-3"].previous_element.id).to eq('spec-2')
|
138
150
|
end
|
139
151
|
|
140
152
|
it 'should return nil when there is no previous element sibling' do
|
141
|
-
$document["spec-1"].previous_element.
|
153
|
+
expect($document["spec-1"].previous_element).to be_nil
|
142
154
|
end
|
143
155
|
end
|
144
156
|
|
@@ -148,7 +160,7 @@ describe Browser::DOM::Node do
|
|
148
160
|
HTML
|
149
161
|
|
150
162
|
it 'should get the whole text for elements' do
|
151
|
-
$document["inner"].inner_text.
|
163
|
+
expect($document["inner"].inner_text).to eq('I like trains. And turtles.')
|
152
164
|
end
|
153
165
|
end
|
154
166
|
end
|
data/spec/dom_spec.rb
CHANGED
@@ -1,13 +1,15 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
3
|
+
describe 'Kernel' do
|
4
|
+
describe '.DOM()' do
|
5
|
+
html <<-HTML
|
6
|
+
<div class="spec"></div>
|
7
|
+
<div class="sock"></div>
|
8
|
+
HTML
|
8
9
|
|
9
|
-
|
10
|
-
|
11
|
-
|
10
|
+
it "parses HTML" do
|
11
|
+
expect($document['.spec'].element?).to be_truthy
|
12
|
+
expect($document['.sock'].element?).to be_truthy
|
13
|
+
end
|
12
14
|
end
|
13
15
|
end
|
data/spec/event_source_spec.rb
CHANGED
@@ -5,11 +5,11 @@ describe Browser::EventSource do
|
|
5
5
|
async 'creates it' do
|
6
6
|
Browser::EventSource.new '/events' do |es|
|
7
7
|
es.on :open do |e|
|
8
|
-
run_async {
|
9
|
-
e.target.should be_kind_of Browser::EventSource
|
10
|
-
}
|
11
|
-
|
12
8
|
es.close
|
9
|
+
|
10
|
+
async {
|
11
|
+
expect(e.target).to be_a(Browser::EventSource)
|
12
|
+
}
|
13
13
|
end
|
14
14
|
end
|
15
15
|
end
|
@@ -17,12 +17,12 @@ describe Browser::EventSource do
|
|
17
17
|
async 'receives an unnamed event' do
|
18
18
|
Browser::EventSource.new '/events' do |es|
|
19
19
|
es.on :message do |e|
|
20
|
-
run_async {
|
21
|
-
e.data.should == 'lol'
|
22
|
-
}
|
23
|
-
|
24
20
|
e.off
|
25
21
|
es.close
|
22
|
+
|
23
|
+
async {
|
24
|
+
expect(e.data).to eq('lol')
|
25
|
+
}
|
26
26
|
end
|
27
27
|
end
|
28
28
|
end
|
@@ -30,12 +30,12 @@ describe Browser::EventSource do
|
|
30
30
|
async 'receives a named event' do
|
31
31
|
Browser::EventSource.new '/events' do |es|
|
32
32
|
es.on :custom do |e|
|
33
|
-
run_async {
|
34
|
-
e.data.should == 'omg'
|
35
|
-
}
|
36
|
-
|
37
33
|
e.off
|
38
34
|
es.close
|
35
|
+
|
36
|
+
async {
|
37
|
+
expect(e.data).to eq('omg')
|
38
|
+
}
|
39
39
|
end
|
40
40
|
end
|
41
41
|
end
|