lapis_lazuli 0.6.1

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