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.
- checksums.yaml +7 -0
- data/.gitignore +18 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +42 -0
- data/LICENSE +30 -0
- data/README.md +74 -0
- data/Rakefile +1 -0
- data/bin/lapis_lazuli +3 -0
- data/lapis_lazuli.gemspec +32 -0
- data/lib/lapis_lazuli/api.rb +52 -0
- data/lib/lapis_lazuli/argparse.rb +128 -0
- data/lib/lapis_lazuli/ast.rb +160 -0
- data/lib/lapis_lazuli/browser/error.rb +93 -0
- data/lib/lapis_lazuli/browser/find.rb +500 -0
- data/lib/lapis_lazuli/browser/interaction.rb +91 -0
- data/lib/lapis_lazuli/browser/screenshots.rb +70 -0
- data/lib/lapis_lazuli/browser/wait.rb +158 -0
- data/lib/lapis_lazuli/browser.rb +246 -0
- data/lib/lapis_lazuli/cli.rb +110 -0
- data/lib/lapis_lazuli/cucumber.rb +25 -0
- data/lib/lapis_lazuli/generators/cucumber/template/.gitignore +6 -0
- data/lib/lapis_lazuli/generators/cucumber/template/Gemfile +37 -0
- data/lib/lapis_lazuli/generators/cucumber/template/README.md +27 -0
- data/lib/lapis_lazuli/generators/cucumber/template/config/config.yml +29 -0
- data/lib/lapis_lazuli/generators/cucumber/template/config/cucumber.yml +34 -0
- data/lib/lapis_lazuli/generators/cucumber/template/features/example.feature +11 -0
- data/lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/interaction_steps.rb +20 -0
- data/lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/validation_steps.rb +21 -0
- data/lib/lapis_lazuli/generators/cucumber/template/features/support/env.rb +12 -0
- data/lib/lapis_lazuli/generators/cucumber/template/features/support/transition.rb +12 -0
- data/lib/lapis_lazuli/generators/cucumber.rb +128 -0
- data/lib/lapis_lazuli/generic/xpath.rb +49 -0
- data/lib/lapis_lazuli/options.rb +28 -0
- data/lib/lapis_lazuli/placeholders.rb +36 -0
- data/lib/lapis_lazuli/proxy.rb +179 -0
- data/lib/lapis_lazuli/runtime.rb +88 -0
- data/lib/lapis_lazuli/scenario.rb +88 -0
- data/lib/lapis_lazuli/storage.rb +59 -0
- data/lib/lapis_lazuli/version.rb +10 -0
- data/lib/lapis_lazuli/versions.rb +40 -0
- data/lib/lapis_lazuli/world/annotate.rb +45 -0
- data/lib/lapis_lazuli/world/api.rb +35 -0
- data/lib/lapis_lazuli/world/browser.rb +75 -0
- data/lib/lapis_lazuli/world/config.rb +292 -0
- data/lib/lapis_lazuli/world/error.rb +141 -0
- data/lib/lapis_lazuli/world/hooks.rb +109 -0
- data/lib/lapis_lazuli/world/logging.rb +53 -0
- data/lib/lapis_lazuli/world/proxy.rb +59 -0
- data/lib/lapis_lazuli/world/variable.rb +139 -0
- data/lib/lapis_lazuli.rb +75 -0
- data/test/.gitignore +8 -0
- data/test/Gemfile +42 -0
- data/test/README.md +35 -0
- data/test/config/config.yml +37 -0
- data/test/config/cucumber.yml +37 -0
- data/test/features/annotation.feature +23 -0
- data/test/features/browser.feature +10 -0
- data/test/features/button.feature +38 -0
- data/test/features/click.feature +35 -0
- data/test/features/error.feature +30 -0
- data/test/features/find.feature +92 -0
- data/test/features/har.feature +9 -0
- data/test/features/modules.feature +14 -0
- data/test/features/step_definitions/interaction_steps.rb +154 -0
- data/test/features/step_definitions/validation_steps.rb +350 -0
- data/test/features/support/env.rb +21 -0
- data/test/features/text_field.feature +32 -0
- data/test/features/timing.feature +47 -0
- data/test/features/variable.feature +11 -0
- data/test/features/xpath.feature +41 -0
- data/test/server/start.rb +17 -0
- data/test/server/www/button.html +22 -0
- data/test/server/www/error_html.html +9 -0
- data/test/server/www/find.html +66 -0
- data/test/server/www/javascript_error.html +12 -0
- data/test/server/www/text_fields.html +15 -0
- data/test/server/www/timing.html +32 -0
- data/test/server/www/xpath.html +22 -0
- 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,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,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
|