lapis_lazuli 0.6.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 (79) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +18 -0
  3. data/Gemfile +4 -0
  4. data/Gemfile.lock +42 -0
  5. data/LICENSE +30 -0
  6. data/README.md +74 -0
  7. data/Rakefile +1 -0
  8. data/bin/lapis_lazuli +3 -0
  9. data/lapis_lazuli.gemspec +32 -0
  10. data/lib/lapis_lazuli/api.rb +52 -0
  11. data/lib/lapis_lazuli/argparse.rb +128 -0
  12. data/lib/lapis_lazuli/ast.rb +160 -0
  13. data/lib/lapis_lazuli/browser/error.rb +93 -0
  14. data/lib/lapis_lazuli/browser/find.rb +500 -0
  15. data/lib/lapis_lazuli/browser/interaction.rb +91 -0
  16. data/lib/lapis_lazuli/browser/screenshots.rb +70 -0
  17. data/lib/lapis_lazuli/browser/wait.rb +158 -0
  18. data/lib/lapis_lazuli/browser.rb +246 -0
  19. data/lib/lapis_lazuli/cli.rb +110 -0
  20. data/lib/lapis_lazuli/cucumber.rb +25 -0
  21. data/lib/lapis_lazuli/generators/cucumber/template/.gitignore +6 -0
  22. data/lib/lapis_lazuli/generators/cucumber/template/Gemfile +37 -0
  23. data/lib/lapis_lazuli/generators/cucumber/template/README.md +27 -0
  24. data/lib/lapis_lazuli/generators/cucumber/template/config/config.yml +29 -0
  25. data/lib/lapis_lazuli/generators/cucumber/template/config/cucumber.yml +34 -0
  26. data/lib/lapis_lazuli/generators/cucumber/template/features/example.feature +11 -0
  27. data/lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/interaction_steps.rb +20 -0
  28. data/lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/validation_steps.rb +21 -0
  29. data/lib/lapis_lazuli/generators/cucumber/template/features/support/env.rb +12 -0
  30. data/lib/lapis_lazuli/generators/cucumber/template/features/support/transition.rb +12 -0
  31. data/lib/lapis_lazuli/generators/cucumber.rb +128 -0
  32. data/lib/lapis_lazuli/generic/xpath.rb +49 -0
  33. data/lib/lapis_lazuli/options.rb +28 -0
  34. data/lib/lapis_lazuli/placeholders.rb +36 -0
  35. data/lib/lapis_lazuli/proxy.rb +179 -0
  36. data/lib/lapis_lazuli/runtime.rb +88 -0
  37. data/lib/lapis_lazuli/scenario.rb +88 -0
  38. data/lib/lapis_lazuli/storage.rb +59 -0
  39. data/lib/lapis_lazuli/version.rb +10 -0
  40. data/lib/lapis_lazuli/versions.rb +40 -0
  41. data/lib/lapis_lazuli/world/annotate.rb +45 -0
  42. data/lib/lapis_lazuli/world/api.rb +35 -0
  43. data/lib/lapis_lazuli/world/browser.rb +75 -0
  44. data/lib/lapis_lazuli/world/config.rb +292 -0
  45. data/lib/lapis_lazuli/world/error.rb +141 -0
  46. data/lib/lapis_lazuli/world/hooks.rb +109 -0
  47. data/lib/lapis_lazuli/world/logging.rb +53 -0
  48. data/lib/lapis_lazuli/world/proxy.rb +59 -0
  49. data/lib/lapis_lazuli/world/variable.rb +139 -0
  50. data/lib/lapis_lazuli.rb +75 -0
  51. data/test/.gitignore +8 -0
  52. data/test/Gemfile +42 -0
  53. data/test/README.md +35 -0
  54. data/test/config/config.yml +37 -0
  55. data/test/config/cucumber.yml +37 -0
  56. data/test/features/annotation.feature +23 -0
  57. data/test/features/browser.feature +10 -0
  58. data/test/features/button.feature +38 -0
  59. data/test/features/click.feature +35 -0
  60. data/test/features/error.feature +30 -0
  61. data/test/features/find.feature +92 -0
  62. data/test/features/har.feature +9 -0
  63. data/test/features/modules.feature +14 -0
  64. data/test/features/step_definitions/interaction_steps.rb +154 -0
  65. data/test/features/step_definitions/validation_steps.rb +350 -0
  66. data/test/features/support/env.rb +21 -0
  67. data/test/features/text_field.feature +32 -0
  68. data/test/features/timing.feature +47 -0
  69. data/test/features/variable.feature +11 -0
  70. data/test/features/xpath.feature +41 -0
  71. data/test/server/start.rb +17 -0
  72. data/test/server/www/button.html +22 -0
  73. data/test/server/www/error_html.html +9 -0
  74. data/test/server/www/find.html +66 -0
  75. data/test/server/www/javascript_error.html +12 -0
  76. data/test/server/www/text_fields.html +15 -0
  77. data/test/server/www/timing.html +32 -0
  78. data/test/server/www/xpath.html +22 -0
  79. metadata +295 -0
@@ -0,0 +1,21 @@
1
+ ################################################################################
2
+ # Copyright 2014 spriteCloud B.V. All rights reserved.
3
+ # Generated by LapisLazuli, version 0.0.1
4
+ # Author: "Onno Steenbergen" <onno@steenbe.nl>
5
+ require 'lapis_lazuli'
6
+ require 'lapis_lazuli/cucumber'
7
+
8
+ module TestModule
9
+ def test_func
10
+ # does nothing. being able to call it is important
11
+ end
12
+ end
13
+
14
+ LapisLazuli::WorldModule::Config.config_file = "config/config.yml"
15
+ World(LapisLazuli, TestModule)
16
+
17
+ LapisLazuli::WorldModule::Browser.browser_module(TestModule)
18
+
19
+
20
+ # Transition function from old codebase to new
21
+ load 'server/start.rb'
@@ -0,0 +1,32 @@
1
+ @text_field @p
2
+ Feature: Text Fields
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 text fields.
6
+
7
+ @text_field_01
8
+ Scenario: text_field_01 - Find First
9
+ Given I navigate to the text fields test page
10
+ Then the first text field should be the first element on the page
11
+ And the 1st text field should be the first element on the page
12
+ And the first text field should not be the last element on the page
13
+
14
+ @text_field_02
15
+ Scenario: text_field_02 - Find Last
16
+ Given I navigate to the text fields test page
17
+ Then the last text field should not be the first element on the page
18
+ And the last text field should be the last element on the page
19
+
20
+ @text_field_03
21
+ Scenario: text_field_03 - Find based on index
22
+ Given I navigate to the text fields test page
23
+ Then the 3rd text field should be the 3rd element on the page
24
+ And the 3rd text field should not be the 2nd element on the page
25
+ And the 3rd text field should not be the last element on the page
26
+ And the 3rd text field should not be the first element on the page
27
+
28
+ @text_field_04
29
+ Scenario: text_field_04 - Hidden elements
30
+ Given I navigate to the text fields test page
31
+ Then the 4th text field should not be present
32
+ And the 5th text field should be present
@@ -0,0 +1,47 @@
1
+ @timing @p
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.
6
+
7
+ @timing_01
8
+ Scenario: timing_01 - Wait Until
9
+ Given I navigate to the timing test page
10
+ Then within 3 seconds I should see "content"
11
+
12
+ @timing_02
13
+ Scenario: timing_02 - Wait While
14
+ Given I navigate to the timing test page
15
+ Then within 3 seconds I should see "waiting" disappear
16
+
17
+ @timing_03
18
+ Scenario: timing_03 - Wait Until Error
19
+ Given I navigate to the timing test page
20
+ Then within 2 seconds I get an error waiting for "content"
21
+ And a screenshot should have been created
22
+
23
+ @timing_04
24
+ Scenario: timing_04 - Wait While Error
25
+ Given I navigate to the timing test page
26
+ Then within 2 seconds I get an error waiting for "waiting" disappear
27
+ And a screenshot should have been created
28
+
29
+ @timing_05
30
+ Scenario: timing_05 - Wait until multiple
31
+ Given I navigate to the timing test page
32
+ Then within 3 seconds I should see "content" and "foo"
33
+
34
+ @timing_06
35
+ Scenario: timing_06 - Wait until multiple (defaults)
36
+ Given I navigate to the timing test page
37
+ Then within 10 seconds I should see either added element
38
+
39
+ @timing_07
40
+ Scenario: timing_07 - Wait until multiple with text/html matching
41
+ Given I navigate to the timing test page
42
+ Then within 3 seconds I should see added elements with matching
43
+
44
+ @timing_08 @timing_errors @issue_9
45
+ Scenario: timing_08 - Expect wait to throw
46
+ Given I navigate to the timing test page
47
+ Then within 3 seconds I should not see nonexistent elements
@@ -0,0 +1,11 @@
1
+ @variable @p
2
+ Feature: Variables
3
+ When I want to test the Lapis Lazuli library
4
+ I want to run a webserver with some test files
5
+ And execute each library function that handles variables.
6
+
7
+ @variable_01
8
+ Scenario: variable_01 - Email replacement
9
+ Given I generate and store an email
10
+ Then I can retrieve the email
11
+ And I expect the email to contain the domain name I specified.
@@ -0,0 +1,41 @@
1
+ @xpath @p
2
+ Feature: XPath Helpers
3
+ When I want to test the Lapis Lazuli library
4
+ Then I expect the xpath helper functions to work
5
+
6
+ @xpath_01
7
+ Scenario Outline: xpath_01 - contains helper without sepearator
8
+ Given I navigate to the xpath test page
9
+ And I specify a needle "<needle>" and a node "<node>" to xp_contains
10
+ Then I expect an xpath fragment "<fragment>"
11
+ And I expect the fragment "<fragment>" to find <n> element(s).
12
+
13
+ Examples:
14
+ | node | needle | fragment | n |
15
+ | @class | foo | contains(concat(' ', normalize-space(@class), ' '), ' foo ') | 4 |
16
+ | text() | foo | contains(concat(' ', normalize-space(text()), ' '), ' foo ') | 4 |
17
+
18
+ @xpath_02
19
+ Scenario Outline: xpath_02 - contains helper with sepearator
20
+ Given I navigate to the xpath test page
21
+ And I specify a needle "<needle>" and a node "<node>" and an empty separator to xp_contains
22
+ Then I expect an xpath fragment "<fragment>"
23
+ And I expect the fragment "<fragment>" to find <n> element(s).
24
+
25
+ Examples:
26
+ | node | needle | fragment | n |
27
+ | @class | foo | contains(concat('', normalize-space(@class), ''), 'foo') | 5 |
28
+ | text() | foo | contains(concat('', normalize-space(text()), ''), 'foo') | 5 |
29
+
30
+ @xpath_03
31
+ Scenario Outline: xpath_03 - operators
32
+ Given I navigate to the xpath test page
33
+ And I search for elements where node "<node>" contains "<first>" and not "<second>"
34
+ Then I expect to find <n> elements.
35
+
36
+ Examples:
37
+ | node | first | second | n |
38
+ | @class | foo | bar | 1 |
39
+ | @class | bar | foo | 0 |
40
+ | text() | foo | bar | 1 |
41
+ | text() | bar | foo | 0 |
@@ -0,0 +1,17 @@
1
+ require "webrick"
2
+
3
+ # Configure the Webserver
4
+ server = WEBrick::HTTPServer.new(
5
+ :Port => 9090,
6
+ :DocumentRoot => File.expand_path("../www", __FILE__),
7
+ AccessLog: [],
8
+ );
9
+
10
+ # Start a new thread with the server so cucumber can continue
11
+ thread = Thread.new { server.start }
12
+
13
+ # If this file was executed manually, let's wait for input
14
+ if __FILE__ == $0
15
+ puts "Press enter to shut down the server."
16
+ gets
17
+ end
@@ -0,0 +1,22 @@
1
+ <!doctype html>
2
+
3
+ <html lang="en">
4
+ <head>
5
+ <meta charset="utf-8">
6
+ <script>
7
+ function button_click(button){
8
+ var output = document.getElementById("output");
9
+ output.innerHTML = button.id + " clicked";
10
+ }
11
+ </script>
12
+ </head>
13
+ <body>
14
+ <button type="submit" id="first" onclick="button_click(this)">first</button>
15
+ <button type="submit" id="second" onclick="button_click(this)">second</button>
16
+ <button type="submit" id="third" onclick="button_click(this)">third</button>
17
+ <button type="submit" id="hidden_fourth" style="display:none;" onclick="button_click(this)">hidden_fourth</button>
18
+ <button type="submit" id="fifth" onclick="button_click(this)">fifth</button>
19
+ <button type="submit" id="last" onclick="button_click(this)">last</button>
20
+ <div id="output"></div>
21
+ </body>
22
+ </html>
@@ -0,0 +1,9 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ </head>
6
+ <body>
7
+ <span>Server Error</span>
8
+ </body>
9
+ </html>
@@ -0,0 +1,66 @@
1
+ <!doctype html>
2
+
3
+ <html lang="en">
4
+ <head>
5
+ <meta charset="utf-8">
6
+ <title>Find test</title>
7
+ </head>
8
+ <body>
9
+ <nav id="header">
10
+ <a href="/relative/link">Rel Link</a>
11
+ <a href="http://example.com/full/link">Full Link</a>
12
+ <a class="item" href="/example">Test link</a>
13
+ </nav>
14
+
15
+ <form id="form1">
16
+ <button>No Attribute</button>
17
+ <button id="form1_submit">ID</button>
18
+ <button type="submit">Type</button>
19
+ <button class="btn btn-xs submit">Class</button>
20
+ </form>
21
+
22
+ <form id="form2">
23
+ <button>No Attribute</button>
24
+ <button id="form2_submit">ID</button>
25
+ <button type="submit">Type</button>
26
+ <button class="btn btn-xs submit">Class</button>
27
+ </form>
28
+
29
+ <div id="deep1">
30
+ <div id="deep2">
31
+ <div id="deep3">
32
+ <div id="deep4">
33
+ <div id="deep5">
34
+ <span id="deep6">
35
+ <p id="deep7">
36
+ <div name="count">
37
+ First
38
+ </div>
39
+ <div style="display:none;" name="count">
40
+ Hidden
41
+ </div>
42
+ <div name="count">
43
+ Second
44
+ </div>
45
+ <div name="count">
46
+ Third
47
+ </div>
48
+ <div name="count">
49
+ Fourth
50
+ </div>
51
+ </p>
52
+ </span>
53
+ </div>
54
+ </div>
55
+ </div>
56
+ </div>
57
+ </div>
58
+
59
+ <!-- Repeat header to complicate things and test FindAll-->
60
+ <nav id="footer">
61
+ <a href="/relative/link">Rel Link</a>
62
+ <a href="http://example.com/full/link">Full Link</a>
63
+ <a class="item" href="/example">Test link</a>
64
+ </nav>
65
+ </body>
66
+ </html>
@@ -0,0 +1,12 @@
1
+ <!doctype html>
2
+
3
+ <html lang="en">
4
+ <head>
5
+ <meta charset="utf-8">
6
+ <script>
7
+ throw new Error("A sample error");
8
+ </script>
9
+ </head>
10
+ <body>
11
+ </body>
12
+ </html
@@ -0,0 +1,15 @@
1
+ <!doctype html>
2
+
3
+ <html lang="en">
4
+ <head>
5
+ <meta charset="utf-8">
6
+ </head>
7
+ <body>
8
+ <input type="text" id="first" value="first">
9
+ <input type="text" id="second" value="second">
10
+ <input type="text" id="third" value="third">
11
+ <input type="text" id="hidden_fourth" value="hidden_fourth" style="display:none;">
12
+ <input type="text" id="fifth" value="fifth">
13
+ <input type="text" id="last" value="last">
14
+ </body>
15
+ </html>
@@ -0,0 +1,32 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <script>
6
+ var addContent = function(){
7
+ // Clear the body first
8
+ document.body.innerHTML = ""
9
+
10
+ // Add our new content to the body
11
+ var content = document.createElement('span')
12
+ content.innerHTML = "content";
13
+ document.body.appendChild(content);
14
+
15
+ // Add a few more things...
16
+ var span = document.createElement('span')
17
+ span.innerHTML = "foo";
18
+ span.className = "asdf-foo-bar";
19
+ document.body.appendChild(span);
20
+
21
+ var div = document.createElement('div');
22
+ div.innerHTML = "bar";
23
+ div.id = "bar";
24
+ document.body.appendChild(div);
25
+ }
26
+ setTimeout(addContent, 2500);
27
+ </script>
28
+ </head>
29
+ <body>
30
+ <span>waiting</span>
31
+ </body>
32
+ </html>
@@ -0,0 +1,22 @@
1
+ <!doctype html>
2
+
3
+ <html lang="en">
4
+ <head>
5
+ <meta charset="utf-8">
6
+ <title>Find test</title>
7
+ </head>
8
+ <body>
9
+ <div class="foo">first</div>
10
+ <div class="foo bar">second</div>
11
+ <div class="bar foo">third</div>
12
+ <div class="bar foo quux">fourth</div>
13
+ <div class="bar-foo">not found</div>
14
+
15
+ <div>foo</div>
16
+ <div>foo bar</div>
17
+ <div>bar foo</div>
18
+ <div>bar foo quux</div>
19
+ <div>bar-foo</div>
20
+
21
+ </body>
22
+ </html>
metadata ADDED
@@ -0,0 +1,295 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: lapis_lazuli
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.6.1
5
+ platform: ruby
6
+ authors:
7
+ - Onno Steenbergen
8
+ - Gijs Paulides
9
+ - Mark Barzilay
10
+ - Jens Finkhaeuser
11
+ autorequire:
12
+ bindir: bin
13
+ cert_chain: []
14
+ date: 2015-03-30 00:00:00.000000000 Z
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: bundler
18
+ requirement: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - "~>"
21
+ - !ruby/object:Gem::Version
22
+ version: '1.6'
23
+ type: :development
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '1.6'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rake
32
+ requirement: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: '0'
37
+ type: :development
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ - !ruby/object:Gem::Dependency
45
+ name: simplecov
46
+ requirement: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: '0'
51
+ type: :development
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: '0'
58
+ - !ruby/object:Gem::Dependency
59
+ name: thor
60
+ requirement: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - "~>"
63
+ - !ruby/object:Gem::Version
64
+ version: '0.19'
65
+ type: :runtime
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - "~>"
70
+ - !ruby/object:Gem::Version
71
+ version: '0.19'
72
+ - !ruby/object:Gem::Dependency
73
+ name: facets
74
+ requirement: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - "~>"
77
+ - !ruby/object:Gem::Version
78
+ version: '2.9'
79
+ type: :runtime
80
+ prerelease: false
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - "~>"
84
+ - !ruby/object:Gem::Version
85
+ version: '2.9'
86
+ - !ruby/object:Gem::Dependency
87
+ name: json
88
+ requirement: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - "~>"
91
+ - !ruby/object:Gem::Version
92
+ version: 1.8.1
93
+ type: :runtime
94
+ prerelease: false
95
+ version_requirements: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - "~>"
98
+ - !ruby/object:Gem::Version
99
+ version: 1.8.1
100
+ - !ruby/object:Gem::Dependency
101
+ name: faraday
102
+ requirement: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - "~>"
105
+ - !ruby/object:Gem::Version
106
+ version: 0.9.0
107
+ type: :runtime
108
+ prerelease: false
109
+ version_requirements: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - "~>"
112
+ - !ruby/object:Gem::Version
113
+ version: 0.9.0
114
+ - !ruby/object:Gem::Dependency
115
+ name: faraday_middleware
116
+ requirement: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - "~>"
119
+ - !ruby/object:Gem::Version
120
+ version: 0.9.1
121
+ type: :runtime
122
+ prerelease: false
123
+ version_requirements: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - "~>"
126
+ - !ruby/object:Gem::Version
127
+ version: 0.9.1
128
+ - !ruby/object:Gem::Dependency
129
+ name: multi_xml
130
+ requirement: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - "~>"
133
+ - !ruby/object:Gem::Version
134
+ version: 0.5.5
135
+ type: :runtime
136
+ prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - "~>"
140
+ - !ruby/object:Gem::Version
141
+ version: 0.5.5
142
+ - !ruby/object:Gem::Dependency
143
+ name: teelogger
144
+ requirement: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - "~>"
147
+ - !ruby/object:Gem::Version
148
+ version: 0.3.0
149
+ type: :runtime
150
+ prerelease: false
151
+ version_requirements: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - "~>"
154
+ - !ruby/object:Gem::Version
155
+ version: 0.3.0
156
+ description: Cucumber helper functions and scaffolding for easier test automation
157
+ suite development.
158
+ email:
159
+ - foss@spritecloud.com
160
+ executables:
161
+ - lapis_lazuli
162
+ extensions: []
163
+ extra_rdoc_files: []
164
+ files:
165
+ - ".gitignore"
166
+ - Gemfile
167
+ - Gemfile.lock
168
+ - LICENSE
169
+ - README.md
170
+ - Rakefile
171
+ - bin/lapis_lazuli
172
+ - lapis_lazuli.gemspec
173
+ - lib/lapis_lazuli.rb
174
+ - lib/lapis_lazuli/api.rb
175
+ - lib/lapis_lazuli/argparse.rb
176
+ - lib/lapis_lazuli/ast.rb
177
+ - lib/lapis_lazuli/browser.rb
178
+ - lib/lapis_lazuli/browser/error.rb
179
+ - lib/lapis_lazuli/browser/find.rb
180
+ - lib/lapis_lazuli/browser/interaction.rb
181
+ - lib/lapis_lazuli/browser/screenshots.rb
182
+ - lib/lapis_lazuli/browser/wait.rb
183
+ - lib/lapis_lazuli/cli.rb
184
+ - lib/lapis_lazuli/cucumber.rb
185
+ - lib/lapis_lazuli/generators/cucumber.rb
186
+ - lib/lapis_lazuli/generators/cucumber/template/.gitignore
187
+ - lib/lapis_lazuli/generators/cucumber/template/Gemfile
188
+ - lib/lapis_lazuli/generators/cucumber/template/README.md
189
+ - lib/lapis_lazuli/generators/cucumber/template/config/config.yml
190
+ - lib/lapis_lazuli/generators/cucumber/template/config/cucumber.yml
191
+ - lib/lapis_lazuli/generators/cucumber/template/features/example.feature
192
+ - lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/interaction_steps.rb
193
+ - lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/validation_steps.rb
194
+ - lib/lapis_lazuli/generators/cucumber/template/features/support/env.rb
195
+ - lib/lapis_lazuli/generators/cucumber/template/features/support/transition.rb
196
+ - lib/lapis_lazuli/generic/xpath.rb
197
+ - lib/lapis_lazuli/options.rb
198
+ - lib/lapis_lazuli/placeholders.rb
199
+ - lib/lapis_lazuli/proxy.rb
200
+ - lib/lapis_lazuli/runtime.rb
201
+ - lib/lapis_lazuli/scenario.rb
202
+ - lib/lapis_lazuli/storage.rb
203
+ - lib/lapis_lazuli/version.rb
204
+ - lib/lapis_lazuli/versions.rb
205
+ - lib/lapis_lazuli/world/annotate.rb
206
+ - lib/lapis_lazuli/world/api.rb
207
+ - lib/lapis_lazuli/world/browser.rb
208
+ - lib/lapis_lazuli/world/config.rb
209
+ - lib/lapis_lazuli/world/error.rb
210
+ - lib/lapis_lazuli/world/hooks.rb
211
+ - lib/lapis_lazuli/world/logging.rb
212
+ - lib/lapis_lazuli/world/proxy.rb
213
+ - lib/lapis_lazuli/world/variable.rb
214
+ - test/.gitignore
215
+ - test/Gemfile
216
+ - test/README.md
217
+ - test/config/config.yml
218
+ - test/config/cucumber.yml
219
+ - test/features/annotation.feature
220
+ - test/features/browser.feature
221
+ - test/features/button.feature
222
+ - test/features/click.feature
223
+ - test/features/error.feature
224
+ - test/features/find.feature
225
+ - test/features/har.feature
226
+ - test/features/modules.feature
227
+ - test/features/step_definitions/interaction_steps.rb
228
+ - test/features/step_definitions/validation_steps.rb
229
+ - test/features/support/env.rb
230
+ - test/features/text_field.feature
231
+ - test/features/timing.feature
232
+ - test/features/variable.feature
233
+ - test/features/xpath.feature
234
+ - test/server/start.rb
235
+ - test/server/www/button.html
236
+ - test/server/www/error_html.html
237
+ - test/server/www/find.html
238
+ - test/server/www/javascript_error.html
239
+ - test/server/www/text_fields.html
240
+ - test/server/www/timing.html
241
+ - test/server/www/xpath.html
242
+ homepage: https://github.com/spriteCloud/lapis-lazuli
243
+ licenses:
244
+ - MITNFA
245
+ metadata: {}
246
+ post_install_message:
247
+ rdoc_options: []
248
+ require_paths:
249
+ - lib
250
+ required_ruby_version: !ruby/object:Gem::Requirement
251
+ requirements:
252
+ - - ">="
253
+ - !ruby/object:Gem::Version
254
+ version: '0'
255
+ required_rubygems_version: !ruby/object:Gem::Requirement
256
+ requirements:
257
+ - - ">="
258
+ - !ruby/object:Gem::Version
259
+ version: '0'
260
+ requirements: []
261
+ rubyforge_project:
262
+ rubygems_version: 2.0.3
263
+ signing_key:
264
+ specification_version: 4
265
+ summary: Cucumber helper functions and scaffolding for easier test automation suite
266
+ development.
267
+ test_files:
268
+ - test/.gitignore
269
+ - test/Gemfile
270
+ - test/README.md
271
+ - test/config/config.yml
272
+ - test/config/cucumber.yml
273
+ - test/features/annotation.feature
274
+ - test/features/browser.feature
275
+ - test/features/button.feature
276
+ - test/features/click.feature
277
+ - test/features/error.feature
278
+ - test/features/find.feature
279
+ - test/features/har.feature
280
+ - test/features/modules.feature
281
+ - test/features/step_definitions/interaction_steps.rb
282
+ - test/features/step_definitions/validation_steps.rb
283
+ - test/features/support/env.rb
284
+ - test/features/text_field.feature
285
+ - test/features/timing.feature
286
+ - test/features/variable.feature
287
+ - test/features/xpath.feature
288
+ - test/server/start.rb
289
+ - test/server/www/button.html
290
+ - test/server/www/error_html.html
291
+ - test/server/www/find.html
292
+ - test/server/www/javascript_error.html
293
+ - test/server/www/text_fields.html
294
+ - test/server/www/timing.html
295
+ - test/server/www/xpath.html