site_prism 3.3 → 3.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +80 -39
- data/lib/site_prism.rb +10 -0
- data/lib/site_prism/addressable_url_matcher.rb +1 -1
- data/lib/site_prism/dsl.rb +11 -9
- data/lib/site_prism/element_checker.rb +9 -1
- data/lib/site_prism/version.rb +1 -1
- data/lib/site_prism/waiter.rb +1 -1
- metadata +32 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c80d215b3527e90d15660f863dcb13b251e10f465dfc0ef47c344ebf6ea4b54b
|
4
|
+
data.tar.gz: 04cf863dcd21233726aea475e4eefc676c7d387717c29e9dda68ede2113b7319
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9a53a48fd0f06f6ee754b9d78e27251a9768c9e227c6970807c85aefbc4e3a1f2d36fe90baa4d01867cef1f7a446ccc7d97177865a5e5da4760a5d75428338fe
|
7
|
+
data.tar.gz: 9c88141815dfc9b5e3299efa204d9bead7ecf89c91a58a66fdacc3544abca17afd65c265a8d0a484d4d90122835317449cd8d9bf875b594085244449989dfc73
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# SitePrism
|
2
2
|
[![Gem Version](https://badge.fury.io/rb/site_prism.svg)](https://badge.fury.io/rb/site_prism)
|
3
|
-
[![Build Status](https://travis-ci.
|
3
|
+
[![Build Status](https://travis-ci.com/site-prism/site_prism.png)](https://travis-ci.com/site-prism/site_prism)
|
4
4
|
|
5
5
|
_A Page Object Model DSL for Capybara_
|
6
6
|
|
@@ -9,7 +9,7 @@ for use with Capybara in automated acceptance testing.
|
|
9
9
|
|
10
10
|
Find the pretty documentation here: http://rdoc.info/gems/site_prism/frames
|
11
11
|
|
12
|
-
Make sure to add your project/company to https://github.com/
|
12
|
+
Make sure to add your project/company to https://github.com/site-prism/site_prism/wiki/Who-is-using-SitePrism
|
13
13
|
|
14
14
|
## Developing / Contributing to SitePrism
|
15
15
|
|
@@ -42,14 +42,14 @@ class Home < SitePrism::Page
|
|
42
42
|
element :search_field, 'input[name="q"]'
|
43
43
|
element :search_button, 'button[name="btnK"]'
|
44
44
|
elements :footer_links, '#footer a'
|
45
|
-
section :menu,
|
45
|
+
section :menu, Menu, '#gbx3'
|
46
46
|
end
|
47
47
|
|
48
48
|
class SearchResults < SitePrism::Page
|
49
49
|
set_url_matcher(/google.com\/results\?.*/)
|
50
50
|
|
51
|
-
section :menu,
|
52
|
-
sections :search_results,
|
51
|
+
section :menu, Menu, '#gbx3'
|
52
|
+
sections :search_results, SearchResults, '#results li'
|
53
53
|
|
54
54
|
def search_result_links
|
55
55
|
search_results.map { |result| result.title['href'] }
|
@@ -58,13 +58,13 @@ end
|
|
58
58
|
|
59
59
|
# define sections used on multiple pages or multiple times on one page
|
60
60
|
|
61
|
-
class
|
61
|
+
class Menu < SitePrism::Section
|
62
62
|
element :search, 'a.search'
|
63
63
|
element :images, 'a.image-search'
|
64
64
|
element :maps, 'a.map-search'
|
65
65
|
end
|
66
66
|
|
67
|
-
class
|
67
|
+
class SearchResults < SitePrism::Section
|
68
68
|
element :title, 'a.title'
|
69
69
|
element :blurb, 'span.result-description'
|
70
70
|
end
|
@@ -126,6 +126,20 @@ require 'selenium-webdriver'
|
|
126
126
|
require 'site_prism'
|
127
127
|
```
|
128
128
|
|
129
|
+
The driver creation is identical to how you would normally create a Capybara driver,
|
130
|
+
a sample Selenium one could look something like this...
|
131
|
+
|
132
|
+
```ruby
|
133
|
+
Capybara.register_driver :site_prism do |app|
|
134
|
+
browser = ENV.fetch('browser', 'firefox').to_sym
|
135
|
+
Capybara::Selenium::Driver.new(app, browser: browser, desired_capabilities: capabilities)
|
136
|
+
end
|
137
|
+
|
138
|
+
Capybara.configure do |config|
|
139
|
+
config.default_driver = :site_prism
|
140
|
+
end
|
141
|
+
```
|
142
|
+
|
129
143
|
### Using SitePrism with RSpec
|
130
144
|
|
131
145
|
If you're using rspec instead, here's what needs requiring:
|
@@ -137,6 +151,8 @@ require 'selenium-webdriver'
|
|
137
151
|
require 'site_prism'
|
138
152
|
```
|
139
153
|
|
154
|
+
And again, as above, a sample driver is no different to a normal driver instantiation in Capybara.
|
155
|
+
|
140
156
|
## Introduction to the Page Object Model
|
141
157
|
|
142
158
|
The Page Object Model is a test automation pattern that aims to create
|
@@ -158,7 +174,7 @@ multiple pages, or many times on a page using the concept of sections.
|
|
158
174
|
As you might be able to guess from the name, pages are fairly central to
|
159
175
|
the Page Object Model. Here's how SitePrism models them:
|
160
176
|
|
161
|
-
### Creating
|
177
|
+
### Creating your first Page using the Page Object Model
|
162
178
|
|
163
179
|
The simplest page is one that has nothing defined in it. Here's an
|
164
180
|
example of how to begin modelling a home page:
|
@@ -168,7 +184,7 @@ class Home < SitePrism::Page
|
|
168
184
|
end
|
169
185
|
```
|
170
186
|
|
171
|
-
The above has nothing useful defined,
|
187
|
+
The above has nothing useful defined, so to start with lets give it some properties.
|
172
188
|
|
173
189
|
### Adding a URL
|
174
190
|
|
@@ -177,7 +193,7 @@ you'll need to set its URL. Here's how:
|
|
177
193
|
|
178
194
|
```ruby
|
179
195
|
class Home < SitePrism::Page
|
180
|
-
set_url 'http://www.
|
196
|
+
set_url 'http://www.mysite.com/home.htm'
|
181
197
|
end
|
182
198
|
```
|
183
199
|
|
@@ -332,7 +348,7 @@ end
|
|
332
348
|
SitePrism's `#displayed?` predicate method allows for semantic code in your tests:
|
333
349
|
|
334
350
|
```ruby
|
335
|
-
Then
|
351
|
+
Then(/^the account page is displayed$/) do
|
336
352
|
expect(@account_page).to be_displayed
|
337
353
|
expect(@some_other_page).not_to be_displayed
|
338
354
|
end
|
@@ -431,7 +447,7 @@ end
|
|
431
447
|
#### Testing for the existence of the element
|
432
448
|
|
433
449
|
Another method added to the Page class by the `element` method is the
|
434
|
-
`has_<
|
450
|
+
`has_<element_name>?` method. Using the same example as above:
|
435
451
|
|
436
452
|
```ruby
|
437
453
|
class Home < SitePrism::Page
|
@@ -452,7 +468,7 @@ end
|
|
452
468
|
...which makes for nice test code:
|
453
469
|
|
454
470
|
```ruby
|
455
|
-
Then
|
471
|
+
Then(/^the search field exists$/) do
|
456
472
|
expect(@home).to have_search_field
|
457
473
|
end
|
458
474
|
```
|
@@ -472,7 +488,7 @@ that should be used to test for non-existence. Using the above example:
|
|
472
488
|
...which makes for nice test code:
|
473
489
|
|
474
490
|
```ruby
|
475
|
-
Then
|
491
|
+
Then(/^the search field exists$/)do
|
476
492
|
expect(@home).to have_no_search_field #NB: NOT => expect(@home).not_to have_search_field
|
477
493
|
end
|
478
494
|
```
|
@@ -619,7 +635,7 @@ Then the following method is available:
|
|
619
635
|
This in turn allows the following nice test code
|
620
636
|
|
621
637
|
```ruby
|
622
|
-
Then
|
638
|
+
Then(/^there should be some names listed on the page$/) do
|
623
639
|
expect(@friends_page).to have_names #=> This only passes if there is at least one `name`
|
624
640
|
end
|
625
641
|
```
|
@@ -660,7 +676,7 @@ are present in the browser and `false` if they're not all there.
|
|
660
676
|
|
661
677
|
# and...
|
662
678
|
|
663
|
-
Then
|
679
|
+
Then(/^the friends page contains all the expected elements$/) do
|
664
680
|
expect(@friends_page).to be_all_there
|
665
681
|
end
|
666
682
|
```
|
@@ -695,6 +711,28 @@ end
|
|
695
711
|
@test_page.elements_present #=> [:address_field]
|
696
712
|
```
|
697
713
|
|
714
|
+
If you are specifying a highly nested set of sections inside a Page and need to recurse
|
715
|
+
through them to find out if all of your items are present then you can also do this.
|
716
|
+
|
717
|
+
Simply pass a recursion parameter to the `#all_there?` check. Note that the only valid values
|
718
|
+
for this at the moment are `:none` and `:one`
|
719
|
+
|
720
|
+
Passing `:none` in (default), will not change the functionality. However passing in `:one` will cause
|
721
|
+
site_prism to recurse through all section / sections items defined in your current scope.
|
722
|
+
|
723
|
+
Work alongside developing this functionality further is being continued in the
|
724
|
+
[site_prism-all_there](http://www.github.com/site-prism/site_prism-all_there) repo. So head on over
|
725
|
+
there if you're interested in how this feature will work going forwards
|
726
|
+
|
727
|
+
NB: At the moment a "primitive" but working copy of this is hosted inside this gem. But if you wish to
|
728
|
+
use the bleeding edge version of the logic. Then simply set the following configuration parameter
|
729
|
+
|
730
|
+
```rb
|
731
|
+
SitePrism.use_all_there_gem = true
|
732
|
+
```
|
733
|
+
|
734
|
+
Make sure as well to require the gem code by doing `require 'site_prism/all_there'`
|
735
|
+
|
698
736
|
## Sections
|
699
737
|
|
700
738
|
SitePrism allows you to model sections of a page that appear on multiple
|
@@ -750,7 +788,7 @@ class People < SitePrism::Section
|
|
750
788
|
element :footer, 'h4'
|
751
789
|
end
|
752
790
|
|
753
|
-
class
|
791
|
+
class Home < SitePrism::Page
|
754
792
|
# section people_with_block will have `headline` and
|
755
793
|
# `footer` elements in it
|
756
794
|
section :people_with_block, People do
|
@@ -870,7 +908,7 @@ end
|
|
870
908
|
This then leads to some pretty test code ...
|
871
909
|
|
872
910
|
```ruby
|
873
|
-
Then
|
911
|
+
Then(/^the home page menu contains a link to the various search functions$/) do
|
874
912
|
expect(@home.menu).to have_search
|
875
913
|
expect(@home.menu.search['href']).to include('google.com')
|
876
914
|
expect(@home.menu).to have_images
|
@@ -886,7 +924,7 @@ particularly with nested sections. Some of this test code can be
|
|
886
924
|
made a little prettier by simply passing a block in.
|
887
925
|
|
888
926
|
```ruby
|
889
|
-
Then
|
927
|
+
Then(/^the home page menu contains a link to the various search functions$/) do
|
890
928
|
@home.menu do |menu|
|
891
929
|
expect(menu).to have_search
|
892
930
|
expect(menu.search['href']).to include('google.com')
|
@@ -902,27 +940,27 @@ It is possible to ask a section for its parent (page, or section if this
|
|
902
940
|
section is a subsection). For example, given the following setup:
|
903
941
|
|
904
942
|
```ruby
|
905
|
-
class
|
906
|
-
element :
|
943
|
+
class DestinationFilters < SitePrism::Section
|
944
|
+
element :morocco, 'abc'
|
907
945
|
end
|
908
946
|
|
909
|
-
class
|
910
|
-
section :
|
947
|
+
class FilterPanel < SitePrism::Section
|
948
|
+
section :destination_filters, DestinationFilters, 'def'
|
911
949
|
end
|
912
950
|
|
913
|
-
class
|
914
|
-
section :
|
951
|
+
class Home < SitePrism::Page
|
952
|
+
section :filter_panel, FilterPanel, 'ghi'
|
915
953
|
end
|
916
954
|
```
|
917
955
|
|
918
956
|
Then calling `#parent` will return the following:
|
919
957
|
|
920
958
|
```ruby
|
921
|
-
@
|
922
|
-
@
|
959
|
+
@home = Home.new
|
960
|
+
@home.load
|
923
961
|
|
924
|
-
@
|
925
|
-
@
|
962
|
+
@home.filter_panel.parent #=> returns @home
|
963
|
+
@home.filter_panel.destination_filters.parent #=> returns @home.filter_panel
|
926
964
|
```
|
927
965
|
|
928
966
|
#### Getting a section's parent page
|
@@ -1043,7 +1081,7 @@ end
|
|
1043
1081
|
|
1044
1082
|
# how to login (fatuous, but demonstrates the point):
|
1045
1083
|
|
1046
|
-
Then
|
1084
|
+
Then(/^I sign in$/) do
|
1047
1085
|
@home = Home.new
|
1048
1086
|
@home.load
|
1049
1087
|
expect(@home).to have_login_and_registration
|
@@ -1055,7 +1093,7 @@ end
|
|
1055
1093
|
|
1056
1094
|
# how to sign up:
|
1057
1095
|
|
1058
|
-
When
|
1096
|
+
When(/^I enter my name into the home page's registration form$/) do
|
1059
1097
|
@home = Home.new
|
1060
1098
|
@home.load
|
1061
1099
|
expect(@home.login_and_registration).to have_first_name
|
@@ -1132,7 +1170,7 @@ end
|
|
1132
1170
|
This allows for pretty tests ...
|
1133
1171
|
|
1134
1172
|
```ruby
|
1135
|
-
Then
|
1173
|
+
Then(/^there are lots of search_results$/) do
|
1136
1174
|
expect(@results_page.search_results.size).to eq(10)
|
1137
1175
|
|
1138
1176
|
@home.search_results.each do |result|
|
@@ -1143,7 +1181,7 @@ end
|
|
1143
1181
|
```
|
1144
1182
|
|
1145
1183
|
The css selector that is passed as the 3rd argument to the
|
1146
|
-
`sections` method (
|
1184
|
+
`sections` method (`#results li`) is used to find a number of capybara
|
1147
1185
|
elements. Each capybara element found using the css selector is used to
|
1148
1186
|
create a new instance of `SearchResults` and becomes its root
|
1149
1187
|
element. So if the css selector finds 3 `li` elements, calling
|
@@ -1196,7 +1234,7 @@ Here's how to test for the existence of the section:
|
|
1196
1234
|
This allows for some pretty tests ...
|
1197
1235
|
|
1198
1236
|
```ruby
|
1199
|
-
Then
|
1237
|
+
Then(/^there are search results on the page$/) do
|
1200
1238
|
expect(@home).to have_search_results
|
1201
1239
|
end
|
1202
1240
|
```
|
@@ -1397,7 +1435,7 @@ the validations will be performed in the following order:
|
|
1397
1435
|
**NB:** `SitePrism::Page` **used to** include a default load validation on
|
1398
1436
|
`page.displayed?` however for v3 this has been removed. It is therefore
|
1399
1437
|
necessary to re-define this if you want to retain the behaviour
|
1400
|
-
from site_prism v2. See [UPGRADING.md](https://github.com/
|
1438
|
+
from site_prism v2. See [UPGRADING.md](https://github.com/site-prism/site_prism/blob/master/UPGRADING.md#default-load-validations)
|
1401
1439
|
for more info on this.
|
1402
1440
|
|
1403
1441
|
## Using Capybara Query Options
|
@@ -1447,7 +1485,7 @@ Now we can write pretty, non-failing tests without hard coding these options
|
|
1447
1485
|
into our page and section classes:
|
1448
1486
|
|
1449
1487
|
```ruby
|
1450
|
-
Then
|
1488
|
+
Then(/^there are search results on the page$/) do
|
1451
1489
|
expect(@results_page).to have_search_results(count: 25)
|
1452
1490
|
end
|
1453
1491
|
```
|
@@ -1580,7 +1618,7 @@ class Home < SitePrism::Page
|
|
1580
1618
|
end
|
1581
1619
|
|
1582
1620
|
# cucumber step that performs login
|
1583
|
-
When
|
1621
|
+
When(/^I log in$/) do
|
1584
1622
|
@home = Home.new
|
1585
1623
|
@home.load
|
1586
1624
|
|
@@ -1611,8 +1649,8 @@ as per the code below
|
|
1611
1649
|
|
1612
1650
|
```ruby
|
1613
1651
|
Capybara.configure do |config|
|
1614
|
-
config.default_max_wait_time = 11 #=> Wait up to 11 seconds for all
|
1615
|
-
# or
|
1652
|
+
config.default_max_wait_time = 11 #=> Wait up to 11 seconds for all queries to fail
|
1653
|
+
# or if you don't want to ever wait
|
1616
1654
|
config.default_max_wait_time = 0 #=> Don't ever wait!
|
1617
1655
|
end
|
1618
1656
|
```
|
@@ -1635,6 +1673,9 @@ end
|
|
1635
1673
|
There's a SitePrism plugin called `site_prism.vcr` that lets you use
|
1636
1674
|
SitePrism with the VCR gem. Check it out [HERE](https://github.com/dnesteryuk/site_prism.vcr)
|
1637
1675
|
|
1676
|
+
Note that as of 2016 this plugin doesn't appear to have been under active development. Also it is
|
1677
|
+
still pinned to the `2.x` series of site_prism so use it of your own accord.
|
1678
|
+
|
1638
1679
|
# Epilogue
|
1639
1680
|
|
1640
1681
|
So, we've seen how to use SitePrism to put together page objects made up
|
data/lib/site_prism.rb
CHANGED
@@ -15,6 +15,8 @@ module SitePrism
|
|
15
15
|
autoload :Waiter, 'site_prism/waiter'
|
16
16
|
|
17
17
|
class << self
|
18
|
+
attr_reader :use_all_there_gem
|
19
|
+
|
18
20
|
def configure
|
19
21
|
yield self
|
20
22
|
end
|
@@ -65,5 +67,13 @@ module SitePrism
|
|
65
67
|
def log_level
|
66
68
|
%i[DEBUG INFO WARN ERROR FATAL UNKNOWN][logger.level]
|
67
69
|
end
|
70
|
+
|
71
|
+
# Whether you wish to use the new experimental all_there dependent gem
|
72
|
+
# This will be enforced from site_prism v4 onwards as this is where
|
73
|
+
# the development of this functionality will be focused
|
74
|
+
def use_all_there_gem=(value)
|
75
|
+
logger.debug("Setting use_all_there_gem to #{value}")
|
76
|
+
@use_all_there_gem = value
|
77
|
+
end
|
68
78
|
end
|
69
79
|
end
|
@@ -98,7 +98,7 @@ module SitePrism
|
|
98
98
|
begin
|
99
99
|
Addressable::URI.parse(url)
|
100
100
|
rescue Addressable::URI::InvalidURIError
|
101
|
-
SitePrism.logger.
|
101
|
+
SitePrism.logger.fatal("Ensure you don't use templated port numbers.")
|
102
102
|
raise SitePrism::InvalidUrlMatcherError
|
103
103
|
end
|
104
104
|
end
|
data/lib/site_prism/dsl.rb
CHANGED
@@ -76,6 +76,7 @@ module SitePrism
|
|
76
76
|
attr_reader :expected_items
|
77
77
|
|
78
78
|
def element(name, *find_args)
|
79
|
+
SitePrism::Deprecator.deprecate('Passing a block to :element') if block_given?
|
79
80
|
build(:element, name, *find_args) do
|
80
81
|
define_method(name) do |*runtime_args, &element_block|
|
81
82
|
raise_if_block(self, name, !element_block.nil?, :element)
|
@@ -85,6 +86,7 @@ module SitePrism
|
|
85
86
|
end
|
86
87
|
|
87
88
|
def elements(name, *find_args)
|
89
|
+
SitePrism::Deprecator.deprecate('Passing a block to :elements') if block_given?
|
88
90
|
build(:elements, name, *find_args) do
|
89
91
|
define_method(name) do |*runtime_args, &element_block|
|
90
92
|
raise_if_block(self, name, !element_block.nil?, :elements)
|
@@ -120,6 +122,7 @@ module SitePrism
|
|
120
122
|
end
|
121
123
|
|
122
124
|
def iframe(name, klass, *args)
|
125
|
+
SitePrism.logger.debug('Block passed into iFrame construct at build time') if block_given?
|
123
126
|
element_find_args = deduce_iframe_element_find_args(args)
|
124
127
|
scope_find_args = deduce_iframe_scope_find_args(args)
|
125
128
|
build(:iframe, name, *element_find_args) do
|
@@ -142,10 +145,11 @@ module SitePrism
|
|
142
145
|
private
|
143
146
|
|
144
147
|
def old_mapped_items
|
145
|
-
SitePrism.
|
146
|
-
|
147
|
-
|
148
|
-
|
148
|
+
SitePrism::Deprecator.soft_deprecate(
|
149
|
+
'.mapped_items on a class',
|
150
|
+
'To allow easier recursion through the items in conjunction with #all_there?',
|
151
|
+
'.mapped_items(legacy: false)'
|
152
|
+
)
|
149
153
|
@old_mapped_items ||= []
|
150
154
|
end
|
151
155
|
|
@@ -196,9 +200,7 @@ until a v5 has been released (And will be deprecated in v4 of site_prism")
|
|
196
200
|
|
197
201
|
RSpec::Matchers.define "have_#{element_name}" do |*args|
|
198
202
|
match { |actual| actual.public_send(matcher, *args) }
|
199
|
-
match_when_negated
|
200
|
-
actual.public_send(negated_matcher, *args)
|
201
|
-
end
|
203
|
+
match_when_negated { |actual| actual.public_send(negated_matcher, *args) }
|
202
204
|
end
|
203
205
|
end
|
204
206
|
|
@@ -247,7 +249,7 @@ until a v5 has been released (And will be deprecated in v4 of site_prism")
|
|
247
249
|
end
|
248
250
|
|
249
251
|
def create_error_method(name)
|
250
|
-
SitePrism.logger.error("#{name} has come from an item with
|
252
|
+
SitePrism.logger.error("#{name} has come from an item with no locators.")
|
251
253
|
define_method(name) { raise SitePrism::InvalidElementError }
|
252
254
|
end
|
253
255
|
|
@@ -273,7 +275,7 @@ until a v5 has been released (And will be deprecated in v4 of site_prism")
|
|
273
275
|
return unless looks_like_xpath?(args[0])
|
274
276
|
|
275
277
|
SitePrism.logger.warn('The arguments passed in look like xpath. Check your locators.')
|
276
|
-
SitePrism.logger.debug("Default locator: #{Capybara.default_selector}")
|
278
|
+
SitePrism.logger.debug("Default locator strategy: #{Capybara.default_selector}")
|
277
279
|
end
|
278
280
|
|
279
281
|
def looks_like_xpath?(arg)
|
@@ -24,7 +24,7 @@ module SitePrism
|
|
24
24
|
if recursion == :none
|
25
25
|
elements_to_check.all? { |name| there?(name) }
|
26
26
|
elsif recursion == :one
|
27
|
-
|
27
|
+
all_there_with_recursion
|
28
28
|
else
|
29
29
|
SitePrism.logger.debug("Input value '#{recursion}'. Valid values are :none or :one.")
|
30
30
|
SitePrism.logger.error('Invalid recursion setting, Will not run #all_there?.')
|
@@ -37,6 +37,14 @@ module SitePrism
|
|
37
37
|
|
38
38
|
private
|
39
39
|
|
40
|
+
def all_there_with_recursion
|
41
|
+
if SitePrism.use_all_there_gem
|
42
|
+
SitePrism::AllThere::RecursionChecker.new(self).all_there?
|
43
|
+
else
|
44
|
+
RecursionChecker.new(self).all_there?
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
40
48
|
# If the page or section has expected_items set, return expected_items that are mapped
|
41
49
|
# otherwise just return the list of all mapped_items
|
42
50
|
def elements_to_check
|
data/lib/site_prism/version.rb
CHANGED
data/lib/site_prism/waiter.rb
CHANGED
@@ -26,7 +26,7 @@ module SitePrism
|
|
26
26
|
raise(
|
27
27
|
SitePrism::FrozenInTimeError,
|
28
28
|
'Time appears to be frozen. For more info, see ' \
|
29
|
-
'https://github.com/
|
29
|
+
'https://github.com/site-prism/site_prism/blob/master/lib/site_prism/error.rb'
|
30
30
|
)
|
31
31
|
end
|
32
32
|
end
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: site_prism
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '3.
|
4
|
+
version: '3.4'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
- Nat Ritmeyer
|
8
7
|
- Luke Hill
|
8
|
+
- Nat Ritmeyer
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2019-
|
12
|
+
date: 2019-08-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: addressable
|
@@ -45,14 +45,14 @@ dependencies:
|
|
45
45
|
requirements:
|
46
46
|
- - "~>"
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version: 0.
|
48
|
+
version: 0.2.0
|
49
49
|
type: :runtime
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
53
|
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version: 0.
|
55
|
+
version: 0.2.0
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: cucumber
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -101,28 +101,42 @@ dependencies:
|
|
101
101
|
requirements:
|
102
102
|
- - "~>"
|
103
103
|
- !ruby/object:Gem::Version
|
104
|
-
version: 0.
|
104
|
+
version: 0.73.0
|
105
105
|
type: :development
|
106
106
|
prerelease: false
|
107
107
|
version_requirements: !ruby/object:Gem::Requirement
|
108
108
|
requirements:
|
109
109
|
- - "~>"
|
110
110
|
- !ruby/object:Gem::Version
|
111
|
-
version: 0.
|
111
|
+
version: 0.73.0
|
112
112
|
- !ruby/object:Gem::Dependency
|
113
113
|
name: rubocop-performance
|
114
114
|
requirement: !ruby/object:Gem::Requirement
|
115
115
|
requirements:
|
116
116
|
- - "~>"
|
117
117
|
- !ruby/object:Gem::Version
|
118
|
-
version: 1.
|
118
|
+
version: 1.4.0
|
119
119
|
type: :development
|
120
120
|
prerelease: false
|
121
121
|
version_requirements: !ruby/object:Gem::Requirement
|
122
122
|
requirements:
|
123
123
|
- - "~>"
|
124
124
|
- !ruby/object:Gem::Version
|
125
|
-
version: 1.
|
125
|
+
version: 1.4.0
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: rubocop-rspec
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - "~>"
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: 1.33.0
|
133
|
+
type: :development
|
134
|
+
prerelease: false
|
135
|
+
version_requirements: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - "~>"
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: 1.33.0
|
126
140
|
- !ruby/object:Gem::Dependency
|
127
141
|
name: selenium-webdriver
|
128
142
|
requirement: !ruby/object:Gem::Requirement
|
@@ -143,35 +157,35 @@ dependencies:
|
|
143
157
|
requirements:
|
144
158
|
- - "~>"
|
145
159
|
- !ruby/object:Gem::Version
|
146
|
-
version: '0.
|
160
|
+
version: '0.17'
|
147
161
|
type: :development
|
148
162
|
prerelease: false
|
149
163
|
version_requirements: !ruby/object:Gem::Requirement
|
150
164
|
requirements:
|
151
165
|
- - "~>"
|
152
166
|
- !ruby/object:Gem::Version
|
153
|
-
version: '0.
|
167
|
+
version: '0.17'
|
154
168
|
- !ruby/object:Gem::Dependency
|
155
169
|
name: webdrivers
|
156
170
|
requirement: !ruby/object:Gem::Requirement
|
157
171
|
requirements:
|
158
172
|
- - "~>"
|
159
173
|
- !ruby/object:Gem::Version
|
160
|
-
version: 3.9.
|
174
|
+
version: 3.9.3
|
161
175
|
type: :development
|
162
176
|
prerelease: false
|
163
177
|
version_requirements: !ruby/object:Gem::Requirement
|
164
178
|
requirements:
|
165
179
|
- - "~>"
|
166
180
|
- !ruby/object:Gem::Version
|
167
|
-
version: 3.9.
|
181
|
+
version: 3.9.3
|
168
182
|
description: |-
|
169
183
|
SitePrism gives you a simple,
|
170
184
|
clean and semantic DSL for describing your site.
|
171
185
|
SitePrism implements the Page Object Model pattern on top of Capybara.
|
172
186
|
email:
|
173
|
-
- nat@natontesting.com
|
174
187
|
- lukehill_uk@hotmail.com
|
188
|
+
- nat@natontesting.com
|
175
189
|
executables: []
|
176
190
|
extensions: []
|
177
191
|
extra_rdoc_files: []
|
@@ -191,13 +205,13 @@ files:
|
|
191
205
|
- lib/site_prism/section.rb
|
192
206
|
- lib/site_prism/version.rb
|
193
207
|
- lib/site_prism/waiter.rb
|
194
|
-
homepage: https://github.com/
|
208
|
+
homepage: https://github.com/site-prism/site_prism
|
195
209
|
licenses:
|
196
210
|
- BSD-3-Clause
|
197
211
|
metadata:
|
198
|
-
bug_tracker_uri: https://github.com/
|
199
|
-
changelog_uri: https://github.com/
|
200
|
-
source_code_uri: https://github.com/
|
212
|
+
bug_tracker_uri: https://github.com/site-prism/site_prism/issues
|
213
|
+
changelog_uri: https://github.com/site-prism/site_prism/blob/master/CHANGELOG.md
|
214
|
+
source_code_uri: https://github.com/site-prism/site_prism
|
201
215
|
post_install_message: |-
|
202
216
|
site_prism has now moved to a new organisation to facilitate better
|
203
217
|
management of the codebase. The new organisation link is available at www.github.com/site-prism
|