capybara-ng 0.0.7 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ruby-gemset +1 -1
- data/.travis.yml +25 -0
- data/README.md +11 -0
- data/lib/angular/capybara_setup.rb +4 -0
- data/lib/angular/dsl.rb +39 -24
- data/lib/angular/setup.rb +7 -3
- data/lib/angular/version.rb +1 -1
- data/travis/run.sh +13 -0
- data/travis/setup.sh +3 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d0fd3873f9fff7e7552e5a62b0a16a12cb8e960f
|
4
|
+
data.tar.gz: 03011c29b2d399748ca090482395bb0fb47e4820
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 42bc6bbfb546dd007a27308146e4bec2e914ae99cb47a167bbfbf3a8bd35c0ca61d0676a68af1d456129eb2e312d21790145ac03b5e8f8ddf43f81b99624c51f
|
7
|
+
data.tar.gz: 2154e49664ff9d9a06c616b019383d0e14fff13755d95623f07aa69a6ff638180b57175b1963f6ec376e8c3e18fadb896fdef2c0bcd07da6979af8947606e103
|
data/.ruby-gemset
CHANGED
@@ -1 +1 @@
|
|
1
|
-
capybara-
|
1
|
+
capybara-ng
|
data/.travis.yml
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
language: ruby
|
2
|
+
rvm:
|
3
|
+
- 2.1.5
|
4
|
+
sudo: false
|
5
|
+
cache: bundler
|
6
|
+
# directories:
|
7
|
+
# - vendor/bundle
|
8
|
+
# - spec/dummy/vendor/bundl
|
9
|
+
gemfile: spec/dummy/Gemfile
|
10
|
+
branches:
|
11
|
+
only:
|
12
|
+
- master
|
13
|
+
|
14
|
+
#before_install:
|
15
|
+
# - "export DISPLAY=:99.0"
|
16
|
+
# - "sh -e /etc/init.d/xvfb start"
|
17
|
+
|
18
|
+
# @see https://github.com/travis-ci/travis-ci/issues/938
|
19
|
+
before_install:
|
20
|
+
- export DISPLAY=:99.0
|
21
|
+
- sh -e /etc/init.d/xvfb start
|
22
|
+
- curl -Lo chrome.zip https://download-chromium.appspot.com/dl/Linux_x64 && unzip chrome.zip
|
23
|
+
|
24
|
+
before_script: travis/setup.sh
|
25
|
+
script: travis/run.sh
|
data/README.md
CHANGED
@@ -41,6 +41,17 @@ RSpec.configure do |config|
|
|
41
41
|
end
|
42
42
|
```
|
43
43
|
|
44
|
+
## Examples
|
45
|
+
|
46
|
+
### Example test cases
|
47
|
+
|
48
|
+
````bash
|
49
|
+
cd spec/dummy
|
50
|
+
bundle
|
51
|
+
bundle exec rake rspec
|
52
|
+
bundle exec rake cucumber
|
53
|
+
```
|
54
|
+
|
44
55
|
### Experimenting features
|
45
56
|
|
46
57
|
@see https://github.com/kikonen/sampler/blob/master/dummy/spec/request/test_spec.rb
|
data/lib/angular/dsl.rb
CHANGED
@@ -5,10 +5,11 @@ module DSL
|
|
5
5
|
end
|
6
6
|
|
7
7
|
def ng_root_selector(root_selector = nil)
|
8
|
+
opt = ng.page.ng_session_options
|
8
9
|
if root_selector
|
9
|
-
|
10
|
+
opt[:root_selector] = root_selector
|
10
11
|
end
|
11
|
-
|
12
|
+
opt[:root_selector] || ::Angular.root_selector
|
12
13
|
end
|
13
14
|
|
14
15
|
def ng_install
|
@@ -23,14 +24,14 @@ module DSL
|
|
23
24
|
# @return current location absolute url
|
24
25
|
#
|
25
26
|
def ng_location_abs(opt = {})
|
26
|
-
selector = opt.delete(:
|
27
|
+
selector = opt.delete(:root_selector) || ng_root_selector
|
27
28
|
ng.make_call :getLocationAbsUrl, [selector], opt
|
28
29
|
end
|
29
30
|
|
30
31
|
# @return current location absolute url
|
31
32
|
#
|
32
33
|
def ng_location(opt = {})
|
33
|
-
selector = opt.delete(:
|
34
|
+
selector = opt.delete(:root_selector) || ng_root_selector
|
34
35
|
ng.make_call :getLocation, [selector], opt
|
35
36
|
end
|
36
37
|
|
@@ -38,18 +39,18 @@ module DSL
|
|
38
39
|
# @return current location
|
39
40
|
#
|
40
41
|
def ng_set_location(url, opt = {})
|
41
|
-
selector = opt.delete(:
|
42
|
+
selector = opt.delete(:root_selector) || ng_root_selector
|
42
43
|
ng.make_call :setLocation, [selector, url], opt
|
43
44
|
end
|
44
45
|
|
45
46
|
#
|
46
47
|
# @param opt
|
47
|
-
# - :
|
48
|
+
# - :root_selector
|
48
49
|
# - :wait
|
49
50
|
# @return eval result
|
50
51
|
#
|
51
52
|
def ng_eval(expr, opt = {})
|
52
|
-
selector = opt.delete(:
|
53
|
+
selector = opt.delete(:root_selector) || ng_root_selector
|
53
54
|
ng.make_call :evaluate, [selector, expr], opt
|
54
55
|
end
|
55
56
|
|
@@ -59,7 +60,7 @@ module DSL
|
|
59
60
|
# @param opt
|
60
61
|
# - :exact
|
61
62
|
# - :using
|
62
|
-
# - :
|
63
|
+
# - :root_selector
|
63
64
|
# - :wait
|
64
65
|
# @return true | false
|
65
66
|
#
|
@@ -77,11 +78,12 @@ module DSL
|
|
77
78
|
# - :row
|
78
79
|
# - :exact
|
79
80
|
# - :using
|
80
|
-
# - :
|
81
|
+
# - :root_selector
|
81
82
|
# - :wait
|
82
83
|
# @return nth node
|
83
84
|
#
|
84
85
|
def ng_binding(binding, opt = {})
|
86
|
+
opt[:root_selector] ||= ng_root_selector
|
85
87
|
row = ng.row(opt)
|
86
88
|
ng_bindings(binding, opt)[row]
|
87
89
|
end
|
@@ -92,12 +94,13 @@ module DSL
|
|
92
94
|
# @param opt
|
93
95
|
# - :exact
|
94
96
|
# - :using
|
95
|
-
# - :
|
97
|
+
# - :root_selector
|
96
98
|
# - :wait
|
97
99
|
# @return [node, ...]
|
98
100
|
#
|
99
101
|
def ng_bindings(binding, opt = {})
|
100
|
-
|
102
|
+
opt[:root_selector] ||= ng_root_selector
|
103
|
+
ng.get_nodes :findBindings, [binding, opt[:exact] == true], opt
|
101
104
|
end
|
102
105
|
|
103
106
|
#
|
@@ -105,7 +108,7 @@ module DSL
|
|
105
108
|
#
|
106
109
|
# @param opt
|
107
110
|
# - :using
|
108
|
-
# - :
|
111
|
+
# - :root_selector
|
109
112
|
# - :wait
|
110
113
|
# @return true | false
|
111
114
|
#
|
@@ -122,11 +125,12 @@ module DSL
|
|
122
125
|
# @param opt
|
123
126
|
# - :row
|
124
127
|
# - :using
|
125
|
-
# - :
|
128
|
+
# - :root_selector
|
126
129
|
# - :wait
|
127
130
|
# @return nth node
|
128
131
|
#
|
129
132
|
def ng_model(model, opt = {})
|
133
|
+
opt[:root_selector] ||= ng_root_selector
|
130
134
|
row = ng.row(opt)
|
131
135
|
ng_models(model, opt)[row]
|
132
136
|
end
|
@@ -136,11 +140,12 @@ module DSL
|
|
136
140
|
#
|
137
141
|
# @param opt
|
138
142
|
# - :using
|
139
|
-
# - :
|
143
|
+
# - :root_selector
|
140
144
|
# - :wait
|
141
145
|
# @return [node, ...]
|
142
146
|
#
|
143
147
|
def ng_models(model, opt = {})
|
148
|
+
opt[:root_selector] ||= ng_root_selector
|
144
149
|
ng.get_nodes :findByModel, [model], opt
|
145
150
|
end
|
146
151
|
|
@@ -149,11 +154,12 @@ module DSL
|
|
149
154
|
#
|
150
155
|
# @param opt
|
151
156
|
# - :using
|
152
|
-
# - :
|
157
|
+
# - :root_selector
|
153
158
|
# - :wait
|
154
159
|
# @return true | false
|
155
160
|
#
|
156
161
|
def has_ng_option?(options, opt = {})
|
162
|
+
opt[:root_selector] ||= ng_root_selector
|
157
163
|
ng_options(options, opt)
|
158
164
|
true
|
159
165
|
rescue NotFound
|
@@ -166,11 +172,12 @@ module DSL
|
|
166
172
|
# @param opt
|
167
173
|
# - :row
|
168
174
|
# - :using
|
169
|
-
# - :
|
175
|
+
# - :root_selector
|
170
176
|
# - :wait
|
171
177
|
# @return nth node
|
172
178
|
#
|
173
179
|
def ng_option(options, opt = {})
|
180
|
+
opt[:root_selector] ||= ng_root_selector
|
174
181
|
row = ng.row(opt)
|
175
182
|
ng_options(options, opt)[row]
|
176
183
|
end
|
@@ -180,11 +187,12 @@ module DSL
|
|
180
187
|
#
|
181
188
|
# @param opt
|
182
189
|
# - :using
|
183
|
-
# - :
|
190
|
+
# - :root_selector
|
184
191
|
# - :wait
|
185
192
|
# @return [node, ...]
|
186
193
|
#
|
187
194
|
def ng_options(options, opt = {})
|
195
|
+
opt[:root_selector] ||= ng_root_selector
|
188
196
|
ng.get_nodes :findByOptions, [options], opt
|
189
197
|
end
|
190
198
|
|
@@ -193,11 +201,12 @@ module DSL
|
|
193
201
|
#
|
194
202
|
# @param opt
|
195
203
|
# - :using
|
196
|
-
# - :
|
204
|
+
# - :root_selector
|
197
205
|
# - :wait
|
198
206
|
# @return true | false
|
199
207
|
#
|
200
208
|
def has_ng_repeater_row?(repeater, opt = {})
|
209
|
+
opt[:root_selector] ||= ng_root_selector
|
201
210
|
ng.get_nodes(:findRepeaterRows, [repeater, 0], opt)
|
202
211
|
true
|
203
212
|
rescue NotFound
|
@@ -210,11 +219,12 @@ module DSL
|
|
210
219
|
# @param opt
|
211
220
|
# - :row
|
212
221
|
# - :using
|
213
|
-
# - :
|
222
|
+
# - :root_selector
|
214
223
|
# - :wait
|
215
224
|
# @return nth node
|
216
225
|
#
|
217
226
|
def ng_repeater_row(repeater, opt = {})
|
227
|
+
opt[:root_selector] ||= ng_root_selector
|
218
228
|
row = ng.row(opt)
|
219
229
|
data = ng.get_nodes(:findRepeaterRows, [repeater, row], opt)
|
220
230
|
data.first
|
@@ -225,11 +235,12 @@ module DSL
|
|
225
235
|
#
|
226
236
|
# @param opt
|
227
237
|
# - :using
|
228
|
-
# - :
|
238
|
+
# - :root_selector
|
229
239
|
# - :wait
|
230
240
|
# @return [node, ...]
|
231
241
|
#
|
232
242
|
def ng_repeater_rows(repeater, opt = {})
|
243
|
+
opt[:root_selector] ||= ng_root_selector
|
233
244
|
ng.get_nodes :findAllRepeaterRows, [repeater], opt
|
234
245
|
end
|
235
246
|
|
@@ -239,11 +250,12 @@ module DSL
|
|
239
250
|
# @param opt
|
240
251
|
# - :row
|
241
252
|
# - :using
|
242
|
-
# - :
|
253
|
+
# - :root_selector
|
243
254
|
# - :wait
|
244
255
|
# @return nth node
|
245
256
|
#
|
246
257
|
def ng_repeater_column(repeater, binding, opt = {})
|
258
|
+
opt[:root_selector] ||= ng_root_selector
|
247
259
|
row = ng.row(opt)
|
248
260
|
ng_repeater_columns(repeater, binding, opt)[row]
|
249
261
|
end
|
@@ -253,11 +265,12 @@ module DSL
|
|
253
265
|
#
|
254
266
|
# @param opt
|
255
267
|
# - :using
|
256
|
-
# - :
|
268
|
+
# - :root_selector
|
257
269
|
# - :wait
|
258
270
|
# @return [node, ...]
|
259
271
|
#
|
260
272
|
def ng_repeater_columns(repeater, binding, opt = {})
|
273
|
+
opt[:root_selector] ||= ng_root_selector
|
261
274
|
ng.get_nodes :findRepeaterColumn, [repeater, binding], opt
|
262
275
|
end
|
263
276
|
|
@@ -265,11 +278,12 @@ module DSL
|
|
265
278
|
# @param opt
|
266
279
|
# - :row
|
267
280
|
# - :using
|
268
|
-
# - :
|
281
|
+
# - :root_selector
|
269
282
|
# - :wait
|
270
283
|
# @return nth node
|
271
284
|
#
|
272
285
|
def ng_repeater_element(repeater, index, binding, opt = {})
|
286
|
+
opt[:root_selector] ||= ng_root_selector
|
273
287
|
row = ng.row(opt)
|
274
288
|
ng_repeater_elements(repeater, index, binding, opt)[row]
|
275
289
|
end
|
@@ -277,11 +291,12 @@ module DSL
|
|
277
291
|
#
|
278
292
|
# @param opt
|
279
293
|
# - :using
|
280
|
-
# - :
|
294
|
+
# - :root_selector
|
281
295
|
# - :wait
|
282
296
|
# @return [node, ...]
|
283
297
|
#
|
284
298
|
def ng_repeater_elements(repeater, index, binding, opt = {})
|
299
|
+
opt[:root_selector] ||= ng_root_selector
|
285
300
|
ng.get_nodes :findRepeaterElement, [repeater, index, binding], opt
|
286
301
|
end
|
287
302
|
end
|
data/lib/angular/setup.rb
CHANGED
@@ -20,14 +20,14 @@ module Angular
|
|
20
20
|
#
|
21
21
|
# @param opt
|
22
22
|
# - :using
|
23
|
-
# - :
|
23
|
+
# - :root_selector
|
24
24
|
# - :wait
|
25
25
|
#
|
26
26
|
def get_nodes(method, params, opt = {})
|
27
27
|
opt = {
|
28
28
|
nodes: true,
|
29
29
|
using: nil,
|
30
|
-
|
30
|
+
root_selector: ::Angular.root_selector,
|
31
31
|
}.merge(opt)
|
32
32
|
make_call(method, params, opt)
|
33
33
|
end
|
@@ -46,7 +46,7 @@ module Angular
|
|
46
46
|
ng_wait if opt[:wait]
|
47
47
|
|
48
48
|
params << opt[:using] if opt.has_key?(:using)
|
49
|
-
params << opt[:
|
49
|
+
params << opt[:root_selector] if opt.has_key?(:root_selector)
|
50
50
|
js_params = params.map do |p|
|
51
51
|
if p.nil?
|
52
52
|
'null'
|
@@ -77,6 +77,10 @@ module Angular
|
|
77
77
|
raise NotFound.new("#{method}: #{params.inspect}")
|
78
78
|
end
|
79
79
|
|
80
|
+
if js_result.is_a? String
|
81
|
+
raise js_result
|
82
|
+
end
|
83
|
+
|
80
84
|
js_result.map do |el|
|
81
85
|
el ? Capybara::Selenium::Node.new(page.driver, el) : nil
|
82
86
|
end
|
data/lib/angular/version.rb
CHANGED
data/travis/run.sh
ADDED
data/travis/setup.sh
ADDED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capybara-ng
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kari
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04-
|
11
|
+
date: 2015-04-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -62,6 +62,7 @@ files:
|
|
62
62
|
- ".gitignore"
|
63
63
|
- ".ruby-gemset"
|
64
64
|
- ".ruby-version"
|
65
|
+
- ".travis.yml"
|
65
66
|
- Gemfile
|
66
67
|
- LICENSE.txt
|
67
68
|
- README.md
|
@@ -78,6 +79,8 @@ files:
|
|
78
79
|
- lib/angular/version.rb
|
79
80
|
- lib/angular/waiter.rb
|
80
81
|
- lib/capybara-ng.rb
|
82
|
+
- travis/run.sh
|
83
|
+
- travis/setup.sh
|
81
84
|
homepage: https://github.com/kikonen/capybara-ng
|
82
85
|
licenses:
|
83
86
|
- MIT
|