opal-browser 0.1.0.beta1 → 0.2.0.beta1
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 +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
|