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.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -2
  3. data/lapis_lazuli.gemspec +12 -0
  4. data/lib/lapis_lazuli.rb +1 -1
  5. data/lib/lapis_lazuli/api.rb +1 -1
  6. data/lib/lapis_lazuli/argparse.rb +1 -1
  7. data/lib/lapis_lazuli/browser.rb +1 -1
  8. data/lib/lapis_lazuli/browser/error.rb +1 -1
  9. data/lib/lapis_lazuli/browser/find.rb +1 -1
  10. data/lib/lapis_lazuli/browser/interaction.rb +1 -1
  11. data/lib/lapis_lazuli/browser/remote.rb +1 -1
  12. data/lib/lapis_lazuli/browser/screenshots.rb +1 -1
  13. data/lib/lapis_lazuli/browser/wait.rb +23 -12
  14. data/lib/lapis_lazuli/cli.rb +1 -1
  15. data/lib/lapis_lazuli/cucumber.rb +1 -1
  16. data/lib/lapis_lazuli/generators/cucumber.rb +1 -1
  17. data/lib/lapis_lazuli/generators/cucumber/template/Gemfile +3 -7
  18. data/lib/lapis_lazuli/generators/cucumber/template/README.md +3 -1
  19. data/lib/lapis_lazuli/generators/cucumber/template/config/config.yml +32 -2
  20. data/lib/lapis_lazuli/generators/cucumber/template/config/cucumber.yml +0 -9
  21. data/lib/lapis_lazuli/generators/cucumber/template/features/account.feature +26 -0
  22. data/lib/lapis_lazuli/generators/cucumber/template/features/example.feature +23 -10
  23. data/lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/interaction_steps.rb +135 -7
  24. data/lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/precondition_steps.rb +52 -3
  25. data/lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/validation_steps.rb +44 -0
  26. data/lib/lapis_lazuli/generators/cucumber/template/features/support/env.rb +29 -1
  27. data/lib/lapis_lazuli/generators/cucumber/template/features/support/functions.rb +68 -0
  28. data/lib/lapis_lazuli/generic/xpath.rb +1 -1
  29. data/lib/lapis_lazuli/options.rb +1 -1
  30. data/lib/lapis_lazuli/placeholders.rb +1 -1
  31. data/lib/lapis_lazuli/proxy.rb +1 -1
  32. data/lib/lapis_lazuli/runtime.rb +1 -1
  33. data/lib/lapis_lazuli/scenario.rb +1 -1
  34. data/lib/lapis_lazuli/storage.rb +1 -1
  35. data/lib/lapis_lazuli/version.rb +2 -2
  36. data/lib/lapis_lazuli/versions.rb +1 -1
  37. data/lib/lapis_lazuli/world/annotate.rb +1 -1
  38. data/lib/lapis_lazuli/world/api.rb +1 -1
  39. data/lib/lapis_lazuli/world/browser.rb +1 -1
  40. data/lib/lapis_lazuli/world/config.rb +1 -1
  41. data/lib/lapis_lazuli/world/error.rb +1 -1
  42. data/lib/lapis_lazuli/world/hooks.rb +1 -1
  43. data/lib/lapis_lazuli/world/logging.rb +1 -1
  44. data/lib/lapis_lazuli/world/proxy.rb +1 -1
  45. data/lib/lapis_lazuli/world/variable.rb +1 -1
  46. data/test/Gemfile +10 -33
  47. data/test/features/step_definitions/interaction_steps.rb +25 -3
  48. data/test/features/step_definitions/validation_steps.rb +265 -230
  49. data/test/features/timing.feature +40 -4
  50. data/test/server/www/timing.html +15 -0
  51. metadata +90 -4
@@ -1,8 +1,8 @@
1
1
  @timing @p
2
2
  Feature: Timing
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.
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 @timing_errors @issue_24
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"
@@ -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.9.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-02-08 00:00:00.000000000 Z
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: '0'
374
+ version: '2'
289
375
  required_rubygems_version: !ruby/object:Gem::Requirement
290
376
  requirements:
291
377
  - - ">="