prickle 0.0.5 → 0.0.6
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.
- data/README.md +48 -11
- data/lib/prickle/capybara/actions.rb +9 -0
- data/lib/prickle/capybara/element.rb +9 -4
- data/lib/prickle/capybara/popup/selenium.rb +31 -0
- data/lib/prickle/capybara/popup/webkit.rb +68 -0
- data/lib/prickle/capybara/popup.rb +24 -0
- data/lib/prickle/capybara.rb +25 -17
- data/lib/prickle/version.rb +1 -1
- data/prickle.gemspec +1 -0
- data/spec/{finders_spec.rb → capybara/actions_spec.rb} +0 -0
- data/spec/{element_spec.rb → capybara/element_spec.rb} +0 -0
- data/spec/capybara/popups/selenium_spec.rb +41 -0
- data/spec/capybara/popups/webkit_spec.rb +45 -0
- data/spec/capybara_spec.rb +1 -33
- data/spec/extended_wait_spec.rb +2 -3
- data/spec/spec_helper.rb +3 -0
- data/spec/stub/index.html +3 -3
- metadata +32 -16
data/README.md
CHANGED
@@ -32,7 +32,13 @@ To enable this feature you need to set the *Prickle::Capybara.wait_time* propert
|
|
32
32
|
Prickle::Capybara.wait_time = 5
|
33
33
|
```
|
34
34
|
|
35
|
-
If you only want to extend the wait time for a particular feature, then you need to reset the wait time using *Prickle::Capybara = nil
|
35
|
+
If you only want to extend the wait time for a particular feature, then you need to reset the wait time using *Prickle::Capybara = nil* after your call..
|
36
|
+
|
37
|
+
```ruby
|
38
|
+
Prickle::Capybara.wait_time = 5
|
39
|
+
element(:href => "http://google.com").click
|
40
|
+
Prickle::Capybara.wait_time = nil # reset wait time
|
41
|
+
```
|
36
42
|
|
37
43
|
## Usage
|
38
44
|
|
@@ -68,6 +74,47 @@ element(:name => "flower").contains_text? "Roses"
|
|
68
74
|
element(:name => "flower").has_text? "Anemone" # exact match
|
69
75
|
```
|
70
76
|
|
77
|
+
### Popup
|
78
|
+
|
79
|
+
**Selenium**
|
80
|
+
|
81
|
+
```ruby
|
82
|
+
popup.confirm
|
83
|
+
popup.dismiss
|
84
|
+
popup.message
|
85
|
+
|
86
|
+
popup.contains_message? "<text>"
|
87
|
+
```
|
88
|
+
|
89
|
+
**Webkit**
|
90
|
+
|
91
|
+
```ruby
|
92
|
+
popup.confirm {
|
93
|
+
#block that triggers confirmation dialog
|
94
|
+
}
|
95
|
+
|
96
|
+
popup.dismiss {
|
97
|
+
#block that triggers confirmation dialog
|
98
|
+
}
|
99
|
+
|
100
|
+
popup.accept {
|
101
|
+
#block that triggers alert
|
102
|
+
}
|
103
|
+
```
|
104
|
+
|
105
|
+
Verifying popup messageo
|
106
|
+
|
107
|
+
```ruby
|
108
|
+
|
109
|
+
alert = popup.accept {
|
110
|
+
#block that triggers alert
|
111
|
+
}
|
112
|
+
|
113
|
+
alert.contains_message? "<text>"
|
114
|
+
|
115
|
+
```
|
116
|
+
|
117
|
+
|
71
118
|
## Alternative syntax
|
72
119
|
|
73
120
|
### Find
|
@@ -90,16 +137,6 @@ click_input_by_name "blue" #click_<element_tag>_by_name "<name>"
|
|
90
137
|
div_contains_text? "text" #<element_tag>_contains_text? "text"
|
91
138
|
```
|
92
139
|
|
93
|
-
## Popup actions
|
94
|
-
|
95
|
-
```ruby
|
96
|
-
confirm_popup # can be used for both confirmation boxed and alert boxes
|
97
|
-
dismiss_popup
|
98
|
-
popup_message
|
99
|
-
|
100
|
-
popup_message_contains? "<text>"
|
101
|
-
```
|
102
|
-
|
103
140
|
## Capturing screenshots
|
104
141
|
|
105
142
|
Configure the directory where you want the screenshots to be saved
|
@@ -22,6 +22,15 @@ module Prickle
|
|
22
22
|
find_element
|
23
23
|
end
|
24
24
|
|
25
|
+
private
|
26
|
+
|
27
|
+
ALIASES = { "find" => :exists? }
|
28
|
+
|
29
|
+
def self.for properties
|
30
|
+
element = Element::extract_method_missing properties
|
31
|
+
method = ALIASES[element[:method]] || element[:method].to_sym
|
32
|
+
[ method, element[:args] ].compact
|
33
|
+
end
|
25
34
|
end
|
26
35
|
end
|
27
36
|
end
|
@@ -7,6 +7,7 @@ module Prickle
|
|
7
7
|
class Element
|
8
8
|
|
9
9
|
include ::Capybara::DSL
|
10
|
+
include Prickle::Capybara::Actions
|
10
11
|
|
11
12
|
OF_ANY_TYPE = "*"
|
12
13
|
CONVERTED_TYPES = { :link => 'a',
|
@@ -15,6 +16,8 @@ module Prickle
|
|
15
16
|
|
16
17
|
private
|
17
18
|
|
19
|
+
MISSING_METHOD_REGEX = /(^.*)_(contains_text\?)|(click|find)_(.*)_by_name/
|
20
|
+
|
18
21
|
def initialize type=OF_ANY_TYPE, identifier
|
19
22
|
@identifier = identifier
|
20
23
|
@type = type
|
@@ -58,10 +61,12 @@ module Prickle
|
|
58
61
|
Exceptions::ElementNotFound.new(@type, identifier, @text, caught_exception)
|
59
62
|
end
|
60
63
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
64
|
+
def self.extract_method_missing properties
|
65
|
+
element = { }
|
66
|
+
element[:method] = properties[1] || properties[2]
|
67
|
+
element[:args] = properties[4][1]
|
68
|
+
element
|
69
|
+
end
|
65
70
|
end
|
66
71
|
end
|
67
72
|
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Prickle
|
2
|
+
module Capybara
|
3
|
+
module Popups
|
4
|
+
class Selenium
|
5
|
+
|
6
|
+
include ::Capybara::DSL
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
@popup = page.driver.browser.switch_to.alert
|
10
|
+
end
|
11
|
+
|
12
|
+
def confirm
|
13
|
+
@popup.accept
|
14
|
+
end
|
15
|
+
|
16
|
+
def dismiss
|
17
|
+
@popup.dismiss
|
18
|
+
end
|
19
|
+
|
20
|
+
def message
|
21
|
+
@popup.text
|
22
|
+
end
|
23
|
+
|
24
|
+
def contains_message? message
|
25
|
+
raise Exceptions::MessageNotContainedInPopup.new(self.message) unless self.message.eql? message
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
module Prickle
|
2
|
+
module Capybara
|
3
|
+
module Popups
|
4
|
+
class Webkit
|
5
|
+
|
6
|
+
include ::Capybara::DSL
|
7
|
+
|
8
|
+
def confirm &block
|
9
|
+
set_type_to :confirm
|
10
|
+
manage_popup true, &block
|
11
|
+
end
|
12
|
+
|
13
|
+
def dismiss &block
|
14
|
+
set_type_to :confirm
|
15
|
+
manage_popup false, &block
|
16
|
+
end
|
17
|
+
|
18
|
+
def accept &block
|
19
|
+
set_type_to :alert
|
20
|
+
manage_popup true, &block
|
21
|
+
end
|
22
|
+
|
23
|
+
def message
|
24
|
+
@message
|
25
|
+
end
|
26
|
+
|
27
|
+
def contains_message? message
|
28
|
+
raise Exceptions::MessageNotContainedInPopup.new(self.message) unless self.message.include? message
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
def set_type_to type
|
34
|
+
@type = type
|
35
|
+
end
|
36
|
+
|
37
|
+
def type
|
38
|
+
@type.to_s
|
39
|
+
end
|
40
|
+
|
41
|
+
def manage_popup accept
|
42
|
+
listen_and accept
|
43
|
+
yield
|
44
|
+
restore
|
45
|
+
capture_message
|
46
|
+
self
|
47
|
+
end
|
48
|
+
|
49
|
+
def listen_and accept
|
50
|
+
page.execute_script %{
|
51
|
+
window.original_#{type}_function = window.#{type}
|
52
|
+
window.#{type}_msg = null
|
53
|
+
window.#{type} = function(msg) { window.#{type}_msg = msg; return #{!!accept}; }
|
54
|
+
}
|
55
|
+
end
|
56
|
+
|
57
|
+
def restore
|
58
|
+
page.execute_script "window.#{type} = window.original_#{type}_function"
|
59
|
+
end
|
60
|
+
|
61
|
+
def capture_message
|
62
|
+
@message = page.evaluate_script "window.#{type}_msg"
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require_relative 'popup/webkit'
|
2
|
+
require_relative 'popup/selenium'
|
3
|
+
|
4
|
+
module Prickle
|
5
|
+
module Capybara
|
6
|
+
class Popup
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
return @base = Popups::Webkit.new if ::Capybara.current_driver == :webkit or ::Capybara.javascript_driver == :webkit
|
10
|
+
@base = Popups::Selenium.new
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
def method_missing method, *args, &block
|
15
|
+
if @base.respond_to? method
|
16
|
+
@base.send method, *args, &block
|
17
|
+
else
|
18
|
+
super
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/lib/prickle/capybara.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require_relative 'capybara/element'
|
2
|
+
require_relative 'capybara/popup'
|
2
3
|
require_relative 'exceptions'
|
3
4
|
require_relative 'core_ext/symbol'
|
4
5
|
|
@@ -14,13 +15,6 @@ module Prickle
|
|
14
15
|
find_by_name(name).click
|
15
16
|
end
|
16
17
|
|
17
|
-
def confirm_popup
|
18
|
-
page.driver.browser.switch_to.alert.accept
|
19
|
-
end
|
20
|
-
|
21
|
-
def dismiss_popup
|
22
|
-
page.driver.browser.switch_to.alert.dismiss
|
23
|
-
end
|
24
18
|
|
25
19
|
def element type=Element::OF_ANY_TYPE, identifier
|
26
20
|
Element.new type, identifier
|
@@ -30,12 +24,24 @@ module Prickle
|
|
30
24
|
element(type, :name => name).exists?
|
31
25
|
end
|
32
26
|
|
27
|
+
def popup
|
28
|
+
Popup.new
|
29
|
+
end
|
30
|
+
|
31
|
+
def confirm_popup
|
32
|
+
popup.confirm
|
33
|
+
end
|
34
|
+
|
35
|
+
def dismiss_popup
|
36
|
+
popup.dismiss
|
37
|
+
end
|
38
|
+
|
33
39
|
def popup_message
|
34
|
-
|
40
|
+
popup.message
|
35
41
|
end
|
36
42
|
|
37
43
|
def popup_message_contains? message
|
38
|
-
|
44
|
+
popup.contains_message? message
|
39
45
|
end
|
40
46
|
|
41
47
|
def capture_screen name=screenshot_name
|
@@ -46,20 +52,22 @@ module Prickle
|
|
46
52
|
|
47
53
|
TIME_FORMATTER = "%Y%m%d-%H.%M.%s"
|
48
54
|
|
55
|
+
def screenshot_name
|
56
|
+
Time.now.strftime(TIME_FORMATTER)
|
57
|
+
end
|
58
|
+
|
49
59
|
def method_missing method, *args
|
50
|
-
if method =~
|
51
|
-
|
52
|
-
elsif method =~ /^click_(.*)_by_name$/
|
53
|
-
element($1, :name => args.first).click
|
54
|
-
elsif method =~ /^find_(.*)_by_name$/
|
55
|
-
element($1, :name => args.first).exists?
|
60
|
+
if method =~ Element::MISSING_METHOD_REGEX
|
61
|
+
call_element_with $1, $2, $3, $4, args
|
56
62
|
else
|
57
63
|
super
|
58
64
|
end
|
59
65
|
end
|
60
66
|
|
61
|
-
def
|
62
|
-
|
67
|
+
def call_element_with *properties
|
68
|
+
type = properties[0] || properties[3]
|
69
|
+
name = properties[4][0]
|
70
|
+
element(type, :name => name).send *Actions::for(properties)
|
63
71
|
end
|
64
72
|
end
|
65
73
|
end
|
data/lib/prickle/version.rb
CHANGED
data/prickle.gemspec
CHANGED
@@ -25,6 +25,7 @@ Gem::Specification.new do |s|
|
|
25
25
|
s.add_development_dependency "rspec", "~> 2.8.0"
|
26
26
|
s.add_development_dependency "sinatra", "~> 1.3.2"
|
27
27
|
s.add_development_dependency "rake"
|
28
|
+
s.add_development_dependency "capybara-webkit"
|
28
29
|
s.add_development_dependency "reek"
|
29
30
|
end
|
30
31
|
|
File without changes
|
File without changes
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Prickle::Capybara::Popup do
|
4
|
+
let(:prickly) { Prickly.new }
|
5
|
+
|
6
|
+
before do
|
7
|
+
Prickle::Capybara.wait_time = nil
|
8
|
+
end
|
9
|
+
|
10
|
+
before(:each) do
|
11
|
+
prickly.visit '/'
|
12
|
+
end
|
13
|
+
|
14
|
+
context 'Managing selenium popups', :javascript => true do
|
15
|
+
|
16
|
+
it 'can confirm an alert box' do
|
17
|
+
prickly.click_by_name 'popups'
|
18
|
+
prickly.confirm_popup
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'can confirm a popup' do
|
22
|
+
prickly.click_by_name 'confirm_box'
|
23
|
+
prickly.confirm_popup
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'can dismiss a popup' do
|
27
|
+
prickly.click_by_name 'confirm_box'
|
28
|
+
prickly.dismiss_popup
|
29
|
+
prickly.popup_message.should eq "Aborting."
|
30
|
+
prickly.confirm_popup
|
31
|
+
end
|
32
|
+
|
33
|
+
context "matching text" do
|
34
|
+
it "can verify the content of a popup" do
|
35
|
+
prickly.click_by_name "popups"
|
36
|
+
prickly.popup_message_contains? "Hello"
|
37
|
+
prickly.dismiss_popup
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Prickle::Capybara::Popup do
|
4
|
+
let(:prickly) { Prickly.new }
|
5
|
+
|
6
|
+
before do
|
7
|
+
Prickle::Capybara.wait_time = nil
|
8
|
+
Capybara.current_driver = :webkit
|
9
|
+
end
|
10
|
+
|
11
|
+
before(:each) do
|
12
|
+
prickly.visit '/'
|
13
|
+
end
|
14
|
+
|
15
|
+
after do
|
16
|
+
Capybara.use_default_driver
|
17
|
+
end
|
18
|
+
|
19
|
+
context 'Managing webkit popups', :js => true, :driver => :webkit do
|
20
|
+
it 'can confirm an alert box' do
|
21
|
+
|
22
|
+
alert = prickly.popup.accept {
|
23
|
+
prickly.click_by_name 'popups'
|
24
|
+
}
|
25
|
+
|
26
|
+
alert.contains_message? "Hello"
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'can confirm a popup' do
|
30
|
+
alert = prickly.popup.confirm {
|
31
|
+
prickly.click_by_name 'confirm_box'
|
32
|
+
}
|
33
|
+
alert.contains_message? "Click yes to continue"
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'can dismiss a popup' do
|
37
|
+
alert = prickly.popup.dismiss {
|
38
|
+
prickly.click_by_name 'confirm_box'
|
39
|
+
}
|
40
|
+
|
41
|
+
alert.contains_message? "Click yes to continue"
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
end
|
data/spec/capybara_spec.rb
CHANGED
@@ -4,43 +4,11 @@ describe Prickle::Capybara do
|
|
4
4
|
let(:prickly) { Prickly.new }
|
5
5
|
|
6
6
|
before do
|
7
|
-
Capybara.default_driver = :selenium
|
8
7
|
Prickle::Capybara.wait_time = nil
|
9
|
-
end
|
10
|
-
|
11
|
-
before(:each) do
|
12
8
|
prickly.visit '/'
|
13
9
|
end
|
14
10
|
|
15
|
-
context '
|
16
|
-
|
17
|
-
it 'can confirm an alert box' do
|
18
|
-
prickly.click_by_name 'popups'
|
19
|
-
prickly.confirm_popup
|
20
|
-
end
|
21
|
-
|
22
|
-
it 'can confirm a popup' do
|
23
|
-
prickly.click_by_name 'confirm_box'
|
24
|
-
prickly.confirm_popup
|
25
|
-
end
|
26
|
-
|
27
|
-
it 'can dismiss a popup' do
|
28
|
-
prickly.click_by_name 'confirm_box'
|
29
|
-
prickly.dismiss_popup
|
30
|
-
prickly.popup_message.should eq "Aborting."
|
31
|
-
prickly.confirm_popup
|
32
|
-
end
|
33
|
-
|
34
|
-
context "matching text" do
|
35
|
-
it "can verify the content of a popup" do
|
36
|
-
prickly.click_by_name "popups"
|
37
|
-
prickly.popup_message_contains? "Hello"
|
38
|
-
prickly.dismiss_popup
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
context 'Screenshots', :javascript => true do
|
11
|
+
context 'Screenshots', :javascript => true, :driver => :selenium do
|
44
12
|
|
45
13
|
it 'can capture the screen' do
|
46
14
|
screenshot_name = Time.now.strftime("%Y%m%d-%H.%M.%s")
|
data/spec/extended_wait_spec.rb
CHANGED
@@ -4,11 +4,10 @@ describe Prickle::Capybara do
|
|
4
4
|
let(:prickly) { Prickly.new }
|
5
5
|
|
6
6
|
before do
|
7
|
-
Capybara.default_driver = :selenium
|
8
7
|
prickly.visit '/'
|
9
8
|
end
|
10
9
|
|
11
|
-
context 'Extended waits', :javascript => true do
|
10
|
+
context 'Extended waits', :javascript => true, :driver => :selenium do
|
12
11
|
|
13
12
|
before(:each) do
|
14
13
|
Prickle::Capybara.wait_time = nil
|
@@ -23,7 +22,7 @@ describe Prickle::Capybara do
|
|
23
22
|
|
24
23
|
it "can fail if an element doesn't appear after the default wait time" do
|
25
24
|
Prickle::Capybara.wait_time = 1
|
26
|
-
expect { prickly.element(:name => '
|
25
|
+
expect { prickly.element(:name => 'never_appear').contains_text? "I lag" }.to raise_error Capybara::TimeoutError
|
27
26
|
end
|
28
27
|
end
|
29
28
|
|
data/spec/spec_helper.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), "..", "lib", "prickle", "capybara")
|
2
2
|
|
3
3
|
require 'rspec'
|
4
|
+
require 'capybara/rspec'
|
5
|
+
require 'capybara-webkit'
|
4
6
|
require 'prickle/capybara'
|
5
7
|
|
6
8
|
class Prickly
|
@@ -13,3 +15,4 @@ require_relative 'stub/app'
|
|
13
15
|
Capybara.app = Sinatra::Application
|
14
16
|
Capybara.default_wait_time = 0
|
15
17
|
Prickle::Capybara.image_dir = File.dirname(__FILE__) + "/tmp/"
|
18
|
+
Capybara.default_driver = :selenium
|
data/spec/stub/index.html
CHANGED
@@ -13,8 +13,9 @@
|
|
13
13
|
<li name="purple">Im not purple!</li>
|
14
14
|
<a name="orangey">Me too!!</a>
|
15
15
|
|
16
|
-
<div name='lagged' class='hidden'> I lag</div>
|
17
|
-
<div name='
|
16
|
+
<div name='lagged' class='hidden' style='display: none;'> I lag</div>
|
17
|
+
<div name='never_appear' style='display: none;'> I lag</div>
|
18
|
+
<div name='orangey' class='pink'> Blue hippos</div>
|
18
19
|
|
19
20
|
<p id='coffee'>Capuccino</p>
|
20
21
|
|
@@ -28,7 +29,6 @@
|
|
28
29
|
|
29
30
|
<script>
|
30
31
|
$(document).ready(function() {
|
31
|
-
$('.hidden').hide();
|
32
32
|
setTimeout(showHidden, 3000);
|
33
33
|
});
|
34
34
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: prickle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-02-
|
12
|
+
date: 2012-02-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: capybara
|
16
|
-
requirement: &
|
16
|
+
requirement: &70098719150400 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70098719150400
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: capybara
|
27
|
-
requirement: &
|
27
|
+
requirement: &70098719149760 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70098719149760
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rspec
|
38
|
-
requirement: &
|
38
|
+
requirement: &70098719149100 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 2.8.0
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70098719149100
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: sinatra
|
49
|
-
requirement: &
|
49
|
+
requirement: &70098719148440 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 1.3.2
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70098719148440
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rake
|
60
|
-
requirement: &
|
60
|
+
requirement: &70098719147940 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,21 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70098719147940
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: capybara-webkit
|
71
|
+
requirement: &70098719147380 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: *70098719147380
|
69
80
|
- !ruby/object:Gem::Dependency
|
70
81
|
name: reek
|
71
|
-
requirement: &
|
82
|
+
requirement: &70098719163000 !ruby/object:Gem::Requirement
|
72
83
|
none: false
|
73
84
|
requirements:
|
74
85
|
- - ! '>='
|
@@ -76,7 +87,7 @@ dependencies:
|
|
76
87
|
version: '0'
|
77
88
|
type: :development
|
78
89
|
prerelease: false
|
79
|
-
version_requirements: *
|
90
|
+
version_requirements: *70098719163000
|
80
91
|
description: A simple DSL extending Capybara.
|
81
92
|
email: despo@extractmethod.com
|
82
93
|
executables: []
|
@@ -93,6 +104,9 @@ files:
|
|
93
104
|
- lib/prickle/capybara.rb
|
94
105
|
- lib/prickle/capybara/actions.rb
|
95
106
|
- lib/prickle/capybara/element.rb
|
107
|
+
- lib/prickle/capybara/popup.rb
|
108
|
+
- lib/prickle/capybara/popup/selenium.rb
|
109
|
+
- lib/prickle/capybara/popup/webkit.rb
|
96
110
|
- lib/prickle/capybara/xpath.rb
|
97
111
|
- lib/prickle/capybara/xpath/expression.rb
|
98
112
|
- lib/prickle/core_ext/symbol.rb
|
@@ -101,10 +115,12 @@ files:
|
|
101
115
|
- lib/prickle/version.rb
|
102
116
|
- prickle.gemspec
|
103
117
|
- prickle.png
|
118
|
+
- spec/capybara/actions_spec.rb
|
119
|
+
- spec/capybara/element_spec.rb
|
120
|
+
- spec/capybara/popups/selenium_spec.rb
|
121
|
+
- spec/capybara/popups/webkit_spec.rb
|
104
122
|
- spec/capybara_spec.rb
|
105
|
-
- spec/element_spec.rb
|
106
123
|
- spec/extended_wait_spec.rb
|
107
|
-
- spec/finders_spec.rb
|
108
124
|
- spec/spec_helper.rb
|
109
125
|
- spec/stub/app.rb
|
110
126
|
- spec/stub/index.html
|