capybara-ng 0.2.0 → 0.2.1
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/README.md +1 -0
- data/lib/angular/dsl.rb +31 -19
- data/lib/angular/log.rb +1 -1
- data/lib/angular/setup.rb +9 -39
- data/lib/angular/version.rb +1 -1
- data/lib/angular.rb +14 -0
- data/travis/run.sh +28 -6
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9a4244f3f4b4efc807b67ad806ebab71b7a7a470
|
4
|
+
data.tar.gz: b844b0f756bbf73f3c6318f41c864aa7cce9121d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b7c4f1fbde0af58a31fd0e52a72bc59a7efbdf726c25ed17c4609c522eaade408388e1f1b3cd0b1be0cd6584daa30211b5361a97f8a7a20f9bb814d5f29929cd
|
7
|
+
data.tar.gz: 6f899d9f44d42f4e166554cc194ef13c72e7ab85715b7018edf15e6842d87f16932e144e9011e43cab8a070f58bc585b96b5d5382025718c4853b48e44b02f3b
|
data/README.md
CHANGED
data/lib/angular/dsl.rb
CHANGED
@@ -1,9 +1,23 @@
|
|
1
1
|
module Angular
|
2
|
+
#
|
3
|
+
# common options (aka. "opt"):
|
4
|
+
# - root_selector Allow overriding global/page per individual query
|
5
|
+
# - wait If true wait for AngularJS to be ready before doing quer (default: true)
|
6
|
+
#
|
2
7
|
module DSL
|
3
8
|
def ng
|
4
9
|
Capybara.current_session.ng
|
5
10
|
end
|
6
11
|
|
12
|
+
#
|
13
|
+
# Get or set selector to find ng-app for current capybara test session
|
14
|
+
#
|
15
|
+
# TIP: try using '[ng-app]', which will find ng-app as attribute anywhere.
|
16
|
+
#
|
17
|
+
# @param root_selector if nil then return current value without change
|
18
|
+
# @return test specific selector to find ng-app,
|
19
|
+
# by default global ::Angular.root_selector is used.
|
20
|
+
#
|
7
21
|
def ng_root_selector(root_selector = nil)
|
8
22
|
opt = ng.page.ng_session_options
|
9
23
|
if root_selector
|
@@ -12,15 +26,25 @@ module DSL
|
|
12
26
|
opt[:root_selector] || ::Angular.root_selector
|
13
27
|
end
|
14
28
|
|
29
|
+
#
|
30
|
+
# Setup AngularJS test hooks in web page. In normal usage there is no need
|
31
|
+
# to use this
|
32
|
+
#
|
15
33
|
def ng_install
|
16
34
|
ng.install
|
17
35
|
end
|
18
36
|
|
37
|
+
#
|
38
|
+
# Wait that AngularJS is ready
|
39
|
+
#
|
19
40
|
def ng_wait
|
20
41
|
ng.ng_wait
|
21
42
|
end
|
22
43
|
|
23
44
|
#
|
45
|
+
# @param opt
|
46
|
+
# - :root_selector
|
47
|
+
# - :wait
|
24
48
|
# @return current location absolute url
|
25
49
|
#
|
26
50
|
def ng_location_abs(opt = {})
|
@@ -28,6 +52,10 @@ module DSL
|
|
28
52
|
ng.make_call :getLocationAbsUrl, [selector], opt
|
29
53
|
end
|
30
54
|
|
55
|
+
#
|
56
|
+
# @param opt
|
57
|
+
# - :root_selector
|
58
|
+
# - :wait
|
31
59
|
# @return current location absolute url
|
32
60
|
#
|
33
61
|
def ng_location(opt = {})
|
@@ -36,6 +64,9 @@ module DSL
|
|
36
64
|
end
|
37
65
|
|
38
66
|
#
|
67
|
+
# @param opt
|
68
|
+
# - :root_selector
|
69
|
+
# - :wait
|
39
70
|
# @return current location
|
40
71
|
#
|
41
72
|
def ng_set_location(url, opt = {})
|
@@ -59,7 +90,6 @@ module DSL
|
|
59
90
|
#
|
60
91
|
# @param opt
|
61
92
|
# - :exact
|
62
|
-
# - :using
|
63
93
|
# - :root_selector
|
64
94
|
# - :wait
|
65
95
|
# @return true | false
|
@@ -77,7 +107,6 @@ module DSL
|
|
77
107
|
# @param opt
|
78
108
|
# - :row
|
79
109
|
# - :exact
|
80
|
-
# - :using
|
81
110
|
# - :root_selector
|
82
111
|
# - :wait
|
83
112
|
# @return nth node
|
@@ -93,7 +122,6 @@ module DSL
|
|
93
122
|
#
|
94
123
|
# @param opt
|
95
124
|
# - :exact
|
96
|
-
# - :using
|
97
125
|
# - :root_selector
|
98
126
|
# - :wait
|
99
127
|
# @return [node, ...]
|
@@ -107,7 +135,6 @@ module DSL
|
|
107
135
|
# Does model exist
|
108
136
|
#
|
109
137
|
# @param opt
|
110
|
-
# - :using
|
111
138
|
# - :root_selector
|
112
139
|
# - :wait
|
113
140
|
# @return true | false
|
@@ -122,7 +149,6 @@ module DSL
|
|
122
149
|
# Does model not exist
|
123
150
|
#
|
124
151
|
# @param opt
|
125
|
-
# - :using
|
126
152
|
# - :root_selector
|
127
153
|
# - :wait
|
128
154
|
# @return true | false
|
@@ -136,7 +162,6 @@ module DSL
|
|
136
162
|
#
|
137
163
|
# @param opt
|
138
164
|
# - :row
|
139
|
-
# - :using
|
140
165
|
# - :root_selector
|
141
166
|
# - :wait
|
142
167
|
# @return nth node
|
@@ -151,7 +176,6 @@ module DSL
|
|
151
176
|
# All nodes matching model
|
152
177
|
#
|
153
178
|
# @param opt
|
154
|
-
# - :using
|
155
179
|
# - :root_selector
|
156
180
|
# - :wait
|
157
181
|
# @return [node, ...]
|
@@ -165,7 +189,6 @@ module DSL
|
|
165
189
|
# Does option exist
|
166
190
|
#
|
167
191
|
# @param opt
|
168
|
-
# - :using
|
169
192
|
# - :root_selector
|
170
193
|
# - :wait
|
171
194
|
# @return true | false
|
@@ -182,7 +205,6 @@ module DSL
|
|
182
205
|
# Does option not exist
|
183
206
|
#
|
184
207
|
# @param opt
|
185
|
-
# - :using
|
186
208
|
# - :root_selector
|
187
209
|
# - :wait
|
188
210
|
# @return true | false
|
@@ -196,7 +218,6 @@ module DSL
|
|
196
218
|
#
|
197
219
|
# @param opt
|
198
220
|
# - :row
|
199
|
-
# - :using
|
200
221
|
# - :root_selector
|
201
222
|
# - :wait
|
202
223
|
# @return nth node
|
@@ -211,7 +232,6 @@ module DSL
|
|
211
232
|
# All option values matching option
|
212
233
|
#
|
213
234
|
# @param opt
|
214
|
-
# - :using
|
215
235
|
# - :root_selector
|
216
236
|
# - :wait
|
217
237
|
# @return [node, ...]
|
@@ -225,7 +245,6 @@ module DSL
|
|
225
245
|
# Does row exist
|
226
246
|
#
|
227
247
|
# @param opt
|
228
|
-
# - :using
|
229
248
|
# - :root_selector
|
230
249
|
# - :wait
|
231
250
|
# @return true | false
|
@@ -241,7 +260,6 @@ module DSL
|
|
241
260
|
# Does row not exist
|
242
261
|
#
|
243
262
|
# @param opt
|
244
|
-
# - :using
|
245
263
|
# - :root_selector
|
246
264
|
# - :wait
|
247
265
|
# @return true | false
|
@@ -255,7 +273,6 @@ module DSL
|
|
255
273
|
#
|
256
274
|
# @param opt
|
257
275
|
# - :row
|
258
|
-
# - :using
|
259
276
|
# - :root_selector
|
260
277
|
# - :wait
|
261
278
|
# @return nth node
|
@@ -271,7 +288,6 @@ module DSL
|
|
271
288
|
# All nodes matching repeater
|
272
289
|
#
|
273
290
|
# @param opt
|
274
|
-
# - :using
|
275
291
|
# - :root_selector
|
276
292
|
# - :wait
|
277
293
|
# @return [node, ...]
|
@@ -286,7 +302,6 @@ module DSL
|
|
286
302
|
#
|
287
303
|
# @param opt
|
288
304
|
# - :row
|
289
|
-
# - :using
|
290
305
|
# - :root_selector
|
291
306
|
# - :wait
|
292
307
|
# @return nth node
|
@@ -301,7 +316,6 @@ module DSL
|
|
301
316
|
# Node for column binding value in all rows
|
302
317
|
#
|
303
318
|
# @param opt
|
304
|
-
# - :using
|
305
319
|
# - :root_selector
|
306
320
|
# - :wait
|
307
321
|
# @return [node, ...]
|
@@ -314,7 +328,6 @@ module DSL
|
|
314
328
|
#
|
315
329
|
# @param opt
|
316
330
|
# - :row
|
317
|
-
# - :using
|
318
331
|
# - :root_selector
|
319
332
|
# - :wait
|
320
333
|
# @return nth node
|
@@ -327,7 +340,6 @@ module DSL
|
|
327
340
|
|
328
341
|
#
|
329
342
|
# @param opt
|
330
|
-
# - :using
|
331
343
|
# - :root_selector
|
332
344
|
# - :wait
|
333
345
|
# @return [node, ...]
|
data/lib/angular/log.rb
CHANGED
data/lib/angular/setup.rb
CHANGED
@@ -19,28 +19,11 @@ module Angular
|
|
19
19
|
|
20
20
|
#
|
21
21
|
# @param opt
|
22
|
-
# - :using
|
23
|
-
# - :root_selector
|
24
|
-
# - :wait
|
25
|
-
#
|
26
|
-
def get_nodes(method, params, opt = {})
|
27
|
-
opt = {
|
28
|
-
nodes: true,
|
29
|
-
using: nil,
|
30
|
-
root_selector: ::Angular.root_selector,
|
31
|
-
}.merge(opt)
|
32
|
-
make_call(method, params, opt)
|
33
|
-
end
|
34
|
-
|
35
|
-
#
|
36
|
-
# @param opt
|
37
|
-
# - :using
|
38
22
|
# - :root_selector
|
39
23
|
# - :wait
|
40
24
|
#
|
41
25
|
def get_nodes_2(method, params, opt = {})
|
42
26
|
opt = {
|
43
|
-
nodes: false,
|
44
27
|
using: nil,
|
45
28
|
root_selector: ::Angular.root_selector,
|
46
29
|
}.merge(opt)
|
@@ -49,6 +32,11 @@ module Angular
|
|
49
32
|
make_nodes(ids, opt)
|
50
33
|
end
|
51
34
|
|
35
|
+
#
|
36
|
+
# Find nodes matching 'capybara-ng-match' attributes using ids
|
37
|
+
#
|
38
|
+
# @return nodes matching ids
|
39
|
+
#
|
52
40
|
def make_nodes(ids, opt)
|
53
41
|
result = []
|
54
42
|
ids.each do |id|
|
@@ -65,12 +53,13 @@ module Angular
|
|
65
53
|
|
66
54
|
#
|
67
55
|
# @param opt
|
68
|
-
# - :
|
56
|
+
# - :root_selector
|
69
57
|
# - :wait
|
70
58
|
#
|
59
|
+
# @return result from page.evaluate_script
|
60
|
+
#
|
71
61
|
def make_call(method, params, opt = {})
|
72
62
|
opt = {
|
73
|
-
nodes: false,
|
74
63
|
wait: true,
|
75
64
|
}.merge(opt)
|
76
65
|
|
@@ -94,26 +83,7 @@ module Angular
|
|
94
83
|
js_result = page.evaluate_script(js);
|
95
84
|
# logger.debug js_result
|
96
85
|
|
97
|
-
|
98
|
-
make_result method, params, js_result
|
99
|
-
else
|
100
|
-
js_result
|
101
|
-
end
|
102
|
-
end
|
103
|
-
|
104
|
-
|
105
|
-
def make_result(method, params, js_result)
|
106
|
-
if js_result.nil? || js_result.empty?
|
107
|
-
raise NotFound.new("#{method}: #{params.inspect}")
|
108
|
-
end
|
109
|
-
|
110
|
-
if js_result.is_a? String
|
111
|
-
raise js_result
|
112
|
-
end
|
113
|
-
|
114
|
-
js_result.map do |el|
|
115
|
-
el ? Capybara::Selenium::Node.new(page.driver, el) : nil
|
116
|
-
end
|
86
|
+
js_result
|
117
87
|
end
|
118
88
|
|
119
89
|
def angular_app?
|
data/lib/angular/version.rb
CHANGED
data/lib/angular.rb
CHANGED
@@ -1,18 +1,32 @@
|
|
1
1
|
require "angular/version"
|
2
2
|
require 'capybara'
|
3
|
+
require 'logger'
|
3
4
|
|
4
5
|
module Angular
|
5
6
|
class NotFound < StandardError
|
6
7
|
end
|
7
8
|
|
9
|
+
#
|
10
|
+
# @return selector to find ng-app, by default 'body'
|
11
|
+
#
|
8
12
|
def self.root_selector
|
9
13
|
@root_slector ||= 'body'
|
10
14
|
end
|
11
15
|
|
16
|
+
#
|
17
|
+
# Set global default selector for finding ng-app
|
18
|
+
#
|
12
19
|
def self.root_selector=(root_selector)
|
13
20
|
@root_selector = root_selector
|
14
21
|
end
|
15
22
|
|
23
|
+
def self.logger
|
24
|
+
@logger ||= defined?(::Rails) ? ::Rails.logger : Logger.new('capybara-ng.log')
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.logger=(logger)
|
28
|
+
@logger = logger
|
29
|
+
end
|
16
30
|
end
|
17
31
|
|
18
32
|
require 'angular/log'
|
data/travis/run.sh
CHANGED
@@ -1,23 +1,45 @@
|
|
1
1
|
cd spec/dummy
|
2
2
|
export BUNDLE_GEMFILE=$PWD/Gemfile
|
3
3
|
|
4
|
+
#
|
5
|
+
# CUCUMBER
|
6
|
+
#
|
4
7
|
echo "cucumber - poltergeist"
|
5
8
|
xvfb-run -a export CAPYBARA_DRIVER=poltergeist && bundle exec cucumber
|
6
|
-
|
9
|
+
EXIT_1_1=$?
|
7
10
|
|
8
11
|
echo "cucumber - webkit"
|
9
12
|
xvfb-run -a export CAPYBARA_DRIVER=webkit && bundle exec cucumber
|
10
|
-
|
13
|
+
EXIT_1_2=$?
|
11
14
|
|
15
|
+
echo "cucumber - selenium"
|
16
|
+
xvfb-run -a export CAPYBARA_DRIVER=selenium && bundle exec cucumber
|
17
|
+
EXIT_1_3=$?
|
18
|
+
|
19
|
+
#
|
20
|
+
# RSPEC
|
21
|
+
#
|
12
22
|
echo "rspec - poltergeist"
|
13
23
|
xvfb-run -a export CAPYBARA_DRIVER=poltergeist && bundle exec rspec
|
14
|
-
|
24
|
+
EXIT_2_1=$?
|
15
25
|
|
16
26
|
echo "rspec - webkit"
|
17
27
|
xvfb-run -a export CAPYBARA_DRIVER=webkit && bundle exec rspec
|
18
|
-
|
28
|
+
EXIT_2_2=$?
|
29
|
+
|
30
|
+
echo "rspec - selenium"
|
31
|
+
xvfb-run -a export CAPYBARA_DRIVER=selenium && bundle exec rspec
|
32
|
+
EXIT_2_3=$?
|
33
|
+
|
34
|
+
#
|
35
|
+
# Exit check
|
36
|
+
#
|
37
|
+
if [[ $EXIT_1_1 != 0 || $EXIT_1_2 != 0 || $EXIT_1_3 != 0 ]]; then
|
38
|
+
echo "Cucumber Failed"
|
39
|
+
exit 1
|
40
|
+
fi
|
19
41
|
|
20
|
-
if [[ $
|
21
|
-
echo "Failed"
|
42
|
+
if [[ $EXIT_2_1 != 0 || $EXIT_2_2 != 0 || $EXIT_2_3 != 0 ]]; then
|
43
|
+
echo "Rspec Failed"
|
22
44
|
exit 1
|
23
45
|
fi
|
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.2.
|
4
|
+
version: 0.2.1
|
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-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|