watir_drops 0.5.7 → 0.5.8
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 +4 -4
- data/.gitignore +2 -1
- data/.travis.yml +27 -0
- data/CHANGES.md +4 -0
- data/README.md +35 -1
- data/lib/watir_drops/page_object.rb +16 -9
- data/watir_drops.gemspec +2 -2
- metadata +8 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3e1b03e9a9684d4250351bfefb2ab56a2351fc13
|
4
|
+
data.tar.gz: 0c4bc45059018b83d0baa6a09dbfcd4395bbee8b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 766bd79dd80b375a49ead4dde707d56cc7da14e173021862c492cb834848819b19e9cd6d7ffc7f8f9d28ae9c93f713963436eda78b28a9c4184b638b73f39f2a
|
7
|
+
data.tar.gz: 480979f6e590e8226b862c71d085ccff66308accd1f7b1e56e28ee161d43b53e7aaa67f680751a254a6e2be555aab1c8ad99098c433a0fd5c611f17939076dcd
|
data/.gitignore
CHANGED
data/.travis.yml
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
sudo: false
|
2
|
+
language: ruby
|
3
|
+
rvm:
|
4
|
+
- 2.2.5
|
5
|
+
before_script:
|
6
|
+
- mkdir travis-drivers
|
7
|
+
- export PATH=$PWD/travis-drivers:$PATH
|
8
|
+
- sh -e /etc/init.d/xvfb start
|
9
|
+
script:
|
10
|
+
- |
|
11
|
+
# https://omahaproxy.appspot.com
|
12
|
+
# https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html?prefix=Linux_x64/
|
13
|
+
# CHROME_REVISION=`curl -s http://commondatastorage.googleapis.com/chromium-browser-snapshots/Linux_x64/LAST_CHANGE`
|
14
|
+
|
15
|
+
CHROME_REVISION=417841
|
16
|
+
|
17
|
+
curl -L -O "http://commondatastorage.googleapis.com/chromium-browser-snapshots/Linux_x64/${CHROME_REVISION}/chrome-linux.zip"
|
18
|
+
unzip chrome-linux.zip
|
19
|
+
|
20
|
+
CHROMEDRIVER_VERSION=$(curl -s http://chromedriver.storage.googleapis.com/LATEST_RELEASE)
|
21
|
+
curl -L -O "http://chromedriver.storage.googleapis.com/${CHROMEDRIVER_VERSION}/chromedriver_linux64.zip"
|
22
|
+
unzip chromedriver_linux64.zip
|
23
|
+
|
24
|
+
mv chromedriver travis-drivers/chromedriver
|
25
|
+
chmod +x travis-drivers/chromedriver
|
26
|
+
|
27
|
+
bundle exec rake
|
data/CHANGES.md
CHANGED
data/README.md
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
# WatirDrops
|
2
2
|
|
3
|
+
[](http://badge.fury.io/rb/watir_drops)
|
4
|
+
[](https://travis-ci.org/titusfortner/watir_drops)
|
5
|
+
|
3
6
|
This gem leverages the Watir test framework to allow for easy modeling of specific web application information,
|
4
7
|
allowing it to be decoupled from the tests.
|
5
8
|
The intention is to provide a solution that is easy to use and maintain, while still providing power and flexibility.
|
@@ -8,6 +11,38 @@ The intention is to provide a solution that is easy to use and maintain, while s
|
|
8
11
|
|
9
12
|
Create a class that represents a unique page or modal on your site and have it inherit WatirDrops.
|
10
13
|
|
14
|
+
Please see [spec/test_page.rb](spec/test_page.rb) for an example.
|
15
|
+
|
16
|
+
Once you have created the representation of the page, your automated test can manipluate the page object.
|
17
|
+
|
18
|
+
Please see [spec/watir_drops_spec.rb](spec/watir_drops_spec.rb) for examples.
|
19
|
+
|
20
|
+
WatirDrops is written to accept several different ways to model test data.
|
21
|
+
|
22
|
+
Please see [spec/form_filling_spec.rb](spec/form_filling_spec.rb) for examples.
|
23
|
+
|
24
|
+
## Installation
|
25
|
+
|
26
|
+
Add this line to your application's Gemfile:
|
27
|
+
|
28
|
+
```ruby
|
29
|
+
gem 'watir_drops'
|
30
|
+
```
|
31
|
+
|
32
|
+
And then execute:
|
33
|
+
|
34
|
+
$ bundle
|
35
|
+
|
36
|
+
Or install it yourself as:
|
37
|
+
|
38
|
+
$ gem install watir_drops
|
39
|
+
|
40
|
+
To use this library:
|
41
|
+
|
42
|
+
```ruby
|
43
|
+
require 'watir_drops'
|
44
|
+
```
|
45
|
+
|
11
46
|
|
12
47
|
## Contributing
|
13
48
|
|
@@ -17,4 +52,3 @@ Bug reports and pull requests are welcome on [GitHub](https://github.com/titusfo
|
|
17
52
|
## License
|
18
53
|
|
19
54
|
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
20
|
-
|
@@ -2,6 +2,7 @@ require 'active_support/inflector'
|
|
2
2
|
|
3
3
|
module WatirDrops
|
4
4
|
class PageObject
|
5
|
+
include Watir::Waitable
|
5
6
|
|
6
7
|
class << self
|
7
8
|
|
@@ -40,7 +41,6 @@ module WatirDrops
|
|
40
41
|
|
41
42
|
define_method("#{name}=") do |val|
|
42
43
|
watir_element = self.instance_exec &block
|
43
|
-
watir_element.wait_until_present
|
44
44
|
case watir_element
|
45
45
|
when Watir::Radio
|
46
46
|
watir_element.set if val
|
@@ -50,10 +50,8 @@ module WatirDrops
|
|
50
50
|
watir_element.select val
|
51
51
|
when Watir::Button
|
52
52
|
watir_element.click
|
53
|
-
|
54
|
-
|
55
|
-
watir_element.wd.clear
|
56
|
-
watir_element.send_keys val
|
53
|
+
when Watir::TextField, Watir::TextArea
|
54
|
+
watir_element.set val if val
|
57
55
|
else
|
58
56
|
watir_element.click if val
|
59
57
|
end
|
@@ -103,12 +101,21 @@ module WatirDrops
|
|
103
101
|
end
|
104
102
|
end
|
105
103
|
|
106
|
-
def
|
107
|
-
|
104
|
+
def inspect
|
105
|
+
'#<%s url=%s title=%s>' % [self.class, url.inspect, title.inspect]
|
108
106
|
end
|
107
|
+
alias selector_string inspect
|
109
108
|
|
110
|
-
def
|
111
|
-
browser.
|
109
|
+
def method_missing(method, *args, &block)
|
110
|
+
if @browser.respond_to?(method)
|
111
|
+
@browser.send(method, *args, &block)
|
112
|
+
else
|
113
|
+
super
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
def respond_to_missing?(method, _include_all = false)
|
118
|
+
@browser.respond_to?(method) || super
|
112
119
|
end
|
113
120
|
|
114
121
|
end
|
data/watir_drops.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
4
|
spec.name = 'watir_drops'
|
5
|
-
spec.version = '0.5.
|
5
|
+
spec.version = '0.5.8'
|
6
6
|
spec.authors = ['Titus Fortner']
|
7
7
|
spec.email = ['titusfortner@gmail.com']
|
8
8
|
|
@@ -16,7 +16,7 @@ application information, allowing it to be decoupled from the tests}
|
|
16
16
|
spec.require_paths = ['lib']
|
17
17
|
|
18
18
|
spec.add_runtime_dependency 'activesupport'
|
19
|
-
spec.add_runtime_dependency 'watir'
|
19
|
+
spec.add_runtime_dependency 'watir', '~> 6.0.0'
|
20
20
|
|
21
21
|
spec.add_development_dependency 'bundler', '~> 1.10'
|
22
22
|
spec.add_development_dependency 'rake', '~> 10.0'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: watir_drops
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Titus Fortner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-12-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -28,16 +28,16 @@ dependencies:
|
|
28
28
|
name: watir
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 6.0.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 6.0.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -132,6 +132,7 @@ extensions: []
|
|
132
132
|
extra_rdoc_files: []
|
133
133
|
files:
|
134
134
|
- ".gitignore"
|
135
|
+
- ".travis.yml"
|
135
136
|
- CHANGES.md
|
136
137
|
- Gemfile
|
137
138
|
- LICENSE.txt
|
@@ -161,7 +162,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
161
162
|
version: '0'
|
162
163
|
requirements: []
|
163
164
|
rubyforge_project:
|
164
|
-
rubygems_version: 2.
|
165
|
+
rubygems_version: 2.6.8
|
165
166
|
signing_key:
|
166
167
|
specification_version: 4
|
167
168
|
summary: Page Object Framework for use with Watir
|