lapis_lazuli 0.9.0 → 1.0.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 +4 -2
- data/lapis_lazuli.gemspec +12 -0
- data/lib/lapis_lazuli.rb +1 -1
- data/lib/lapis_lazuli/api.rb +1 -1
- data/lib/lapis_lazuli/argparse.rb +1 -1
- data/lib/lapis_lazuli/browser.rb +1 -1
- data/lib/lapis_lazuli/browser/error.rb +1 -1
- data/lib/lapis_lazuli/browser/find.rb +1 -1
- data/lib/lapis_lazuli/browser/interaction.rb +1 -1
- data/lib/lapis_lazuli/browser/remote.rb +1 -1
- data/lib/lapis_lazuli/browser/screenshots.rb +1 -1
- data/lib/lapis_lazuli/browser/wait.rb +23 -12
- data/lib/lapis_lazuli/cli.rb +1 -1
- data/lib/lapis_lazuli/cucumber.rb +1 -1
- data/lib/lapis_lazuli/generators/cucumber.rb +1 -1
- data/lib/lapis_lazuli/generators/cucumber/template/Gemfile +3 -7
- data/lib/lapis_lazuli/generators/cucumber/template/README.md +3 -1
- data/lib/lapis_lazuli/generators/cucumber/template/config/config.yml +32 -2
- data/lib/lapis_lazuli/generators/cucumber/template/config/cucumber.yml +0 -9
- data/lib/lapis_lazuli/generators/cucumber/template/features/account.feature +26 -0
- data/lib/lapis_lazuli/generators/cucumber/template/features/example.feature +23 -10
- data/lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/interaction_steps.rb +135 -7
- data/lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/precondition_steps.rb +52 -3
- data/lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/validation_steps.rb +44 -0
- data/lib/lapis_lazuli/generators/cucumber/template/features/support/env.rb +29 -1
- data/lib/lapis_lazuli/generators/cucumber/template/features/support/functions.rb +68 -0
- data/lib/lapis_lazuli/generic/xpath.rb +1 -1
- data/lib/lapis_lazuli/options.rb +1 -1
- data/lib/lapis_lazuli/placeholders.rb +1 -1
- data/lib/lapis_lazuli/proxy.rb +1 -1
- data/lib/lapis_lazuli/runtime.rb +1 -1
- data/lib/lapis_lazuli/scenario.rb +1 -1
- data/lib/lapis_lazuli/storage.rb +1 -1
- data/lib/lapis_lazuli/version.rb +2 -2
- data/lib/lapis_lazuli/versions.rb +1 -1
- data/lib/lapis_lazuli/world/annotate.rb +1 -1
- data/lib/lapis_lazuli/world/api.rb +1 -1
- data/lib/lapis_lazuli/world/browser.rb +1 -1
- data/lib/lapis_lazuli/world/config.rb +1 -1
- data/lib/lapis_lazuli/world/error.rb +1 -1
- data/lib/lapis_lazuli/world/hooks.rb +1 -1
- data/lib/lapis_lazuli/world/logging.rb +1 -1
- data/lib/lapis_lazuli/world/proxy.rb +1 -1
- data/lib/lapis_lazuli/world/variable.rb +1 -1
- data/test/Gemfile +10 -33
- data/test/features/step_definitions/interaction_steps.rb +25 -3
- data/test/features/step_definitions/validation_steps.rb +265 -230
- data/test/features/timing.feature +40 -4
- data/test/server/www/timing.html +15 -0
- metadata +90 -4
@@ -1,8 +1,8 @@
|
|
1
1
|
@timing @p
|
2
2
|
Feature: Timing
|
3
|
-
|
4
|
-
|
5
|
-
|
3
|
+
When I want to test the Lapis Lazuli library
|
4
|
+
I want to run a webserver with some test files
|
5
|
+
And execute the each library function that handles timing.
|
6
6
|
|
7
7
|
@timing_01
|
8
8
|
Scenario: timing_01 - Wait Until
|
@@ -20,7 +20,7 @@ Feature: Timing
|
|
20
20
|
Then within 2 seconds I get an error waiting for "content"
|
21
21
|
And a screenshot should have been created
|
22
22
|
|
23
|
-
@timing_04
|
23
|
+
@timing_04
|
24
24
|
Scenario: timing_04 - Wait While Error
|
25
25
|
Given I navigate to the timing test page
|
26
26
|
Then within 2 seconds I get an error waiting for "waiting" to disappear
|
@@ -45,3 +45,39 @@ Feature: Timing
|
|
45
45
|
Scenario: timing_08 - Expect wait to throw
|
46
46
|
Given I navigate to the timing test page
|
47
47
|
Then within 3 seconds I should not see nonexistent elements
|
48
|
+
|
49
|
+
@timing_09
|
50
|
+
Scenario Outline: Wait with context
|
51
|
+
Given I navigate to the find test page
|
52
|
+
When I wait for "<context>" and name it "test_element"
|
53
|
+
Then I should wait for "<element>" using "test_element" as context
|
54
|
+
And I should not wait for "<error_element>" using "test_element" as context
|
55
|
+
|
56
|
+
Examples:
|
57
|
+
| context | element | error_element |
|
58
|
+
| deep3 | deep6 | deep1 |
|
59
|
+
| deep2 | deep7 | deep1 |
|
60
|
+
| deep6 | deep7 | header |
|
61
|
+
|
62
|
+
@timing_10
|
63
|
+
Scenario Outline: WaitAllPresent with context
|
64
|
+
Given I navigate to the find test page
|
65
|
+
When I wait for "<context>" and name it "test_element"
|
66
|
+
Then I should wait for "<element>" <number> times using "test_element" as context
|
67
|
+
Examples:
|
68
|
+
| context | element | number |
|
69
|
+
| deep3 | deep6 | 1 |
|
70
|
+
| deep3 | count | 4 |
|
71
|
+
| deep3 | does_not_exist | 0 |
|
72
|
+
|
73
|
+
@timing_11
|
74
|
+
Scenario: timing_11 - Waiting for an element in another element you waited for
|
75
|
+
Given I navigate to the timing test page
|
76
|
+
When I wait for class "asdf-foo-bar" and name it "test_element"
|
77
|
+
And I should wait for "inner-div" using "test_element" as context
|
78
|
+
Then that element should not container text "fake"
|
79
|
+
|
80
|
+
@timing_12
|
81
|
+
Scenario: timing_12 - Not throwing an error when failing
|
82
|
+
Given I navigate to the timing test page
|
83
|
+
Then no error should be thrown when waiting for "not_exist"
|
data/test/server/www/timing.html
CHANGED
@@ -22,8 +22,23 @@
|
|
22
22
|
div.innerHTML = "bar";
|
23
23
|
div.id = "bar";
|
24
24
|
document.body.appendChild(div);
|
25
|
+
|
26
|
+
var div2 = document.createElement('div');
|
27
|
+
div2.id = 'inner-div';
|
28
|
+
div2.innerHTML = 'This is a fake inner div';
|
29
|
+
document.body.appendChild(div2);
|
30
|
+
}
|
31
|
+
|
32
|
+
var addSecondContent = function(){
|
33
|
+
// Add extra content later
|
34
|
+
var div = document.createElement('div');
|
35
|
+
div.id = 'inner-div';
|
36
|
+
div.innerHTML = 'This is the inner div';
|
37
|
+
var content = document.getElementsByClassName('asdf-foo-bar')[0];
|
38
|
+
content.innerHTML = content.innerHTML + div.outerHTML;
|
25
39
|
}
|
26
40
|
setTimeout(addContent, 2500);
|
41
|
+
setTimeout(addSecondContent, 5000);
|
27
42
|
</script>
|
28
43
|
</head>
|
29
44
|
<body>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lapis_lazuli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Onno Steenbergen
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2017-
|
14
|
+
date: 2017-03-01 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: bundler
|
@@ -181,6 +181,90 @@ dependencies:
|
|
181
181
|
- - "~>"
|
182
182
|
- !ruby/object:Gem::Version
|
183
183
|
version: '5.10'
|
184
|
+
- !ruby/object:Gem::Dependency
|
185
|
+
name: ffi
|
186
|
+
requirement: !ruby/object:Gem::Requirement
|
187
|
+
requirements:
|
188
|
+
- - "~>"
|
189
|
+
- !ruby/object:Gem::Version
|
190
|
+
version: '1.9'
|
191
|
+
type: :runtime
|
192
|
+
prerelease: false
|
193
|
+
version_requirements: !ruby/object:Gem::Requirement
|
194
|
+
requirements:
|
195
|
+
- - "~>"
|
196
|
+
- !ruby/object:Gem::Version
|
197
|
+
version: '1.9'
|
198
|
+
- !ruby/object:Gem::Dependency
|
199
|
+
name: rspec
|
200
|
+
requirement: !ruby/object:Gem::Requirement
|
201
|
+
requirements:
|
202
|
+
- - "~>"
|
203
|
+
- !ruby/object:Gem::Version
|
204
|
+
version: '3.5'
|
205
|
+
type: :runtime
|
206
|
+
prerelease: false
|
207
|
+
version_requirements: !ruby/object:Gem::Requirement
|
208
|
+
requirements:
|
209
|
+
- - "~>"
|
210
|
+
- !ruby/object:Gem::Version
|
211
|
+
version: '3.5'
|
212
|
+
- !ruby/object:Gem::Dependency
|
213
|
+
name: selenium-webdriver
|
214
|
+
requirement: !ruby/object:Gem::Requirement
|
215
|
+
requirements:
|
216
|
+
- - "~>"
|
217
|
+
- !ruby/object:Gem::Version
|
218
|
+
version: '3'
|
219
|
+
type: :runtime
|
220
|
+
prerelease: false
|
221
|
+
version_requirements: !ruby/object:Gem::Requirement
|
222
|
+
requirements:
|
223
|
+
- - "~>"
|
224
|
+
- !ruby/object:Gem::Version
|
225
|
+
version: '3'
|
226
|
+
- !ruby/object:Gem::Dependency
|
227
|
+
name: watir
|
228
|
+
requirement: !ruby/object:Gem::Requirement
|
229
|
+
requirements:
|
230
|
+
- - "~>"
|
231
|
+
- !ruby/object:Gem::Version
|
232
|
+
version: '6'
|
233
|
+
type: :runtime
|
234
|
+
prerelease: false
|
235
|
+
version_requirements: !ruby/object:Gem::Requirement
|
236
|
+
requirements:
|
237
|
+
- - "~>"
|
238
|
+
- !ruby/object:Gem::Version
|
239
|
+
version: '6'
|
240
|
+
- !ruby/object:Gem::Dependency
|
241
|
+
name: cucumber
|
242
|
+
requirement: !ruby/object:Gem::Requirement
|
243
|
+
requirements:
|
244
|
+
- - "~>"
|
245
|
+
- !ruby/object:Gem::Version
|
246
|
+
version: '2'
|
247
|
+
type: :runtime
|
248
|
+
prerelease: false
|
249
|
+
version_requirements: !ruby/object:Gem::Requirement
|
250
|
+
requirements:
|
251
|
+
- - "~>"
|
252
|
+
- !ruby/object:Gem::Version
|
253
|
+
version: '2'
|
254
|
+
- !ruby/object:Gem::Dependency
|
255
|
+
name: byebug
|
256
|
+
requirement: !ruby/object:Gem::Requirement
|
257
|
+
requirements:
|
258
|
+
- - "~>"
|
259
|
+
- !ruby/object:Gem::Version
|
260
|
+
version: '9'
|
261
|
+
type: :runtime
|
262
|
+
prerelease: false
|
263
|
+
version_requirements: !ruby/object:Gem::Requirement
|
264
|
+
requirements:
|
265
|
+
- - "~>"
|
266
|
+
- !ruby/object:Gem::Version
|
267
|
+
version: '9'
|
184
268
|
description: "\n LapisLazuli provides cucumber helper functions and scaffolding
|
185
269
|
for easier (web)\n test automation suite development.\n\n A lot of functionality
|
186
270
|
is aimed at dealing better with [Watir](http://watir.com/),\n such as:\n\n -
|
@@ -220,11 +304,13 @@ files:
|
|
220
304
|
- lib/lapis_lazuli/generators/cucumber/template/README.md
|
221
305
|
- lib/lapis_lazuli/generators/cucumber/template/config/config.yml
|
222
306
|
- lib/lapis_lazuli/generators/cucumber/template/config/cucumber.yml
|
307
|
+
- lib/lapis_lazuli/generators/cucumber/template/features/account.feature
|
223
308
|
- lib/lapis_lazuli/generators/cucumber/template/features/example.feature
|
224
309
|
- lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/interaction_steps.rb
|
225
310
|
- lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/precondition_steps.rb
|
226
311
|
- lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/validation_steps.rb
|
227
312
|
- lib/lapis_lazuli/generators/cucumber/template/features/support/env.rb
|
313
|
+
- lib/lapis_lazuli/generators/cucumber/template/features/support/functions.rb
|
228
314
|
- lib/lapis_lazuli/generic/assertions.rb
|
229
315
|
- lib/lapis_lazuli/generic/xpath.rb
|
230
316
|
- lib/lapis_lazuli/options.rb
|
@@ -283,9 +369,9 @@ require_paths:
|
|
283
369
|
- lib
|
284
370
|
required_ruby_version: !ruby/object:Gem::Requirement
|
285
371
|
requirements:
|
286
|
-
- - "
|
372
|
+
- - "~>"
|
287
373
|
- !ruby/object:Gem::Version
|
288
|
-
version: '
|
374
|
+
version: '2'
|
289
375
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
290
376
|
requirements:
|
291
377
|
- - ">="
|