lapis_lazuli 0.9.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
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
  - - ">="