capybara-extensions 0.3.0 → 0.3.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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7a7578ae423b1860a572ad5da560de3bffbd51cc
|
4
|
+
data.tar.gz: 80483da282e01105341220adee22a236414aed51
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 66607ca434bc7c7e1d909b3b0034116cae887b95788af1e34123fac25f7310dc7d0afe204093e53c53226916aa834ad0fcb4231ab441e19aba863465d53c2458
|
7
|
+
data.tar.gz: 911eb6947f96f1e2e2125d42e89040d790fc6df5984ce204019baffd2c9fd6493e82e3de182e4d6c132040184d4d1b867e1f358133ff83b9b5dd23637d3ba657
|
@@ -54,7 +54,7 @@ module CapybaraExtensions::Finders
|
|
54
54
|
|
55
55
|
# Find an HTML img based on the src and/or alt values.
|
56
56
|
#
|
57
|
-
# @param options [Hash] Must pass a hash containing the src and/or alt of the image sought.
|
57
|
+
# @param options [Hash] Must pass a hash containing the src and/or alt of the image sought. You may pass a Regexp with src; however, this should be done sparingly, as CapybaraExtensions::Locators#image_locator will find and iterate over all images in the current scope.
|
58
58
|
# @return [Capybara::Element] the found element
|
59
59
|
#
|
60
60
|
def find_image(options = {})
|
@@ -8,8 +8,16 @@ module CapybaraExtensions::Locators
|
|
8
8
|
#
|
9
9
|
def image_locator(options)
|
10
10
|
locator = String.new
|
11
|
+
|
12
|
+
if options[:src]
|
13
|
+
if Regexp === options[:src] && image = _find_image_with_regex(options[:src])
|
14
|
+
locator.concat("[@src='#{image}']")
|
15
|
+
else options[:src]
|
16
|
+
locator.concat "[@src='#{options[:src]}']"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
11
20
|
locator.concat "[@alt='#{options[:alt]}']" if options[:alt]
|
12
|
-
locator.concat "[@src='#{options[:src]}']" if options[:src]
|
13
21
|
locator
|
14
22
|
end
|
15
23
|
|
@@ -25,4 +33,17 @@ module CapybaraExtensions::Locators
|
|
25
33
|
locator.concat "[@content='#{content}']"
|
26
34
|
locator
|
27
35
|
end
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
def _find_image_with_regex(src)
|
40
|
+
all_images = all('img')
|
41
|
+
all_images.each do |image|
|
42
|
+
if image.native.attributes['src'].value.match(src).nil?
|
43
|
+
return nil
|
44
|
+
else
|
45
|
+
return image.native.attributes['src'].value
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
28
49
|
end
|
@@ -6,7 +6,7 @@ module CapybaraExtensions::Matchers
|
|
6
6
|
|
7
7
|
# Checks that the current node has an image with the given src or alt.
|
8
8
|
#
|
9
|
-
# @param options [Hash] must pass a hash containing src and/or alt to match against.
|
9
|
+
# @param options [Hash] must pass a hash containing src and/or alt to match against. You may pass a Regexp with src.
|
10
10
|
# @return [Boolean] true if the image matches.
|
11
11
|
#
|
12
12
|
def has_image?(options = {})
|
data/test/finders_test.rb
CHANGED
@@ -347,7 +347,16 @@ describe '.string' do
|
|
347
347
|
it 'finds an image when passed src and alt' do
|
348
348
|
string.find_image(src: 'http://example.com/johndoe', alt: 'John Doe').native.attributes['src'].value.must_equal image
|
349
349
|
string.find_image(src: 'http://example.com/johndoe').native.attributes['src'].value.must_equal image
|
350
|
+
string.find_image(src: /johndo/).native.attributes['src'].value.must_equal image
|
350
351
|
string.find_image(alt: 'John Doe').native.attributes['src'].value.must_equal image
|
351
352
|
end
|
353
|
+
|
354
|
+
it 'returns ElementNotFound when passed invalid src or alt' do
|
355
|
+
assert_raises(Capybara::ElementNotFound) { string.find_image(src: 'http://example.com/johndoe', alt: 'John Doh') }
|
356
|
+
assert_raises(Capybara::ElementNotFound) { string.find_image(src: 'http://example.com/johndoh', alt: 'John Doe') }
|
357
|
+
assert_raises(Capybara::ElementNotFound) { string.find_image(src: 'http://example.com/johndoh') }
|
358
|
+
assert_raises(Capybara::ElementNotFound) { string.find_image(alt: 'John Doh') }
|
359
|
+
assert_raises(Capybara::ElementNotFound) { string.find_image(src: /johndoh/) }
|
360
|
+
end
|
352
361
|
end
|
353
362
|
end
|
data/test/matchers_test.rb
CHANGED
@@ -18,6 +18,8 @@ describe '.string' do
|
|
18
18
|
|
19
19
|
it 'returns true if the image has an src with the argument' do
|
20
20
|
string.has_image?(src: 'http://example.com/johndoe').must_equal true
|
21
|
+
string.has_image?(src: /johndo/).must_equal true
|
22
|
+
string.has_image?(src: /johndoh/).must_equal false
|
21
23
|
end
|
22
24
|
|
23
25
|
it 'returns false if the image does not have an src with the argument' do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capybara-extensions
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Dupuis Jr.
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-11-
|
12
|
+
date: 2013-11-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: builder
|