domino 0.5.0 → 0.6.0
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/.travis.yml +3 -2
- data/README.md +19 -0
- data/domino.gemspec +1 -1
- data/lib/domino.rb +12 -0
- data/test/domino_test.rb +16 -0
- metadata +15 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 554cc2cc550cceacec189b1fcab208a2f530c3b4
|
4
|
+
data.tar.gz: 65dd95a5af9bfa19e04e38e3821cb016e01c8594
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 98a53738194cc39ab9734ceeb69209735f84bb7bec6c06f672b6243556bc4d18fa272b7d5a682ac3fc6264b086eb4b2f09dbc9fd0473b46c09575f0096e0f8e0
|
7
|
+
data.tar.gz: a65293c01ae787bc2df87372ad30b88d7f4b50a20156993e6d501493715e8ffd588e7f366ecec01d646eabdf76ea64466008a4cf8e8c610174e173c76ee7cd6a
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -11,6 +11,7 @@ define a selector and attributes:
|
|
11
11
|
class Post < Domino
|
12
12
|
selector '#posts .post'
|
13
13
|
attribute :title # selector defaults to .title
|
14
|
+
attribute :author_name # selector defaults to .author-name
|
14
15
|
attribute :body, '.post-body' # example of selector override
|
15
16
|
|
16
17
|
# pass a block if you want to modify the value
|
@@ -61,6 +62,24 @@ access to the capybara node.
|
|
61
62
|
|
62
63
|
For more information about using Capybara nodes, check [Capybara Documentation](https://github.com/jnicklas/capybara/blob/master/README.rdoc).
|
63
64
|
|
65
|
+
## Dealing with Asynchronous Behavior
|
66
|
+
|
67
|
+
When working with Capybara drivers that support JavaScript, it may be
|
68
|
+
necessary to wait for elements to appear. Note that the following code
|
69
|
+
simply collects all `Account` dominos currently on the page and
|
70
|
+
returns the first:
|
71
|
+
|
72
|
+
Dom::Account.first # returns nil if account is displayed asynchronously
|
73
|
+
|
74
|
+
When you are waiting for a unique domino to appear, you can instead
|
75
|
+
use the `find!` method:
|
76
|
+
|
77
|
+
Dom::Account.find! # waits for matching element to appear
|
78
|
+
|
79
|
+
If no matching element appears, Capybara will raise an error telling
|
80
|
+
you about the expected selector. Depending on the
|
81
|
+
[`Capybara.match` option](https://github.com/jnicklas/capybara#strategy),
|
82
|
+
this will also raise an error if the selector matches multiple nodes.
|
64
83
|
|
65
84
|
## Integration with Cucumber
|
66
85
|
|
data/domino.gemspec
CHANGED
data/lib/domino.rb
CHANGED
@@ -59,6 +59,18 @@ class Domino
|
|
59
59
|
map{|node| node}
|
60
60
|
end
|
61
61
|
|
62
|
+
# Returns Domino for capybara node matching selector.
|
63
|
+
#
|
64
|
+
# Raises an error if no matching node is found. For drivers that
|
65
|
+
# support asynchronous behavior, this method waits for a matching
|
66
|
+
# node to appear.
|
67
|
+
def find!
|
68
|
+
if @selector.nil?
|
69
|
+
raise Domino::Error.new("You must define a selector")
|
70
|
+
end
|
71
|
+
new(Capybara.current_session.find(@selector))
|
72
|
+
end
|
73
|
+
|
62
74
|
# Define the selector for this Domino
|
63
75
|
#
|
64
76
|
# module Dom
|
data/test/domino_test.rb
CHANGED
@@ -143,4 +143,20 @@ class DominoTest < MiniTest::Unit::TestCase
|
|
143
143
|
def test_callback
|
144
144
|
assert_equal 23, Dom::Person.find_by_name("Alice").age
|
145
145
|
end
|
146
|
+
|
147
|
+
def test_find_bang
|
148
|
+
assert_equal '#receipt-72', Dom::Receipt.find!.id
|
149
|
+
end
|
150
|
+
|
151
|
+
def test_find_bang_without_match
|
152
|
+
assert_raises Capybara::ElementNotFound do
|
153
|
+
Dom::Animal.find!
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
def test_find_bang_without_selector
|
158
|
+
assert_raises Domino::Error do
|
159
|
+
Dom::NoSelector.find!
|
160
|
+
end
|
161
|
+
end
|
146
162
|
end
|
metadata
CHANGED
@@ -1,69 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: domino
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nick Gauthier
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-08-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: capybara
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 0.4.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 0.4.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: minitest
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: simplecov
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
description: "\n Make it easier to deal with UI elements by providing an\n interface
|
@@ -75,8 +75,8 @@ extensions: []
|
|
75
75
|
extra_rdoc_files:
|
76
76
|
- README.md
|
77
77
|
files:
|
78
|
-
- .gitignore
|
79
|
-
- .travis.yml
|
78
|
+
- ".gitignore"
|
79
|
+
- ".travis.yml"
|
80
80
|
- Gemfile
|
81
81
|
- LICENSE.txt
|
82
82
|
- README.md
|
@@ -94,17 +94,17 @@ require_paths:
|
|
94
94
|
- lib
|
95
95
|
required_ruby_version: !ruby/object:Gem::Requirement
|
96
96
|
requirements:
|
97
|
-
- -
|
97
|
+
- - ">="
|
98
98
|
- !ruby/object:Gem::Version
|
99
99
|
version: '0'
|
100
100
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
|
-
- -
|
102
|
+
- - ">="
|
103
103
|
- !ruby/object:Gem::Version
|
104
104
|
version: '0'
|
105
105
|
requirements: []
|
106
106
|
rubyforge_project:
|
107
|
-
rubygems_version: 2.
|
107
|
+
rubygems_version: 2.4.1
|
108
108
|
signing_key:
|
109
109
|
specification_version: 4
|
110
110
|
summary: View abstraction for integration testing
|