watir_pump 0.3.7 → 0.3.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/watir_pump/component.rb +25 -3
- data/lib/watir_pump/errors/element_mismatch.rb +12 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ee18bfe88d1c960ab0eea77c154a0c8cd5bdbf0f
|
4
|
+
data.tar.gz: 6148984fde63b139d4065b5910f370e2d94e59f1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4943fcbb68cb2c31ab71b7e63d75a189506c31a53abee9e5b79e13e4b083016213445286dc13b75a7d96a2ffa77fc747c6aa7f372d5dbba0e3b92d7f7595bc28
|
7
|
+
data.tar.gz: f09295a0103d7945940020727d626d2b83dff890117dc4d3f30159186a27e7385cfc8748263254f11982850d5a9639b534ace827328e275b87ec83730e4db45b
|
data/lib/watir_pump/component.rb
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
require 'set'
|
4
4
|
require 'forwardable'
|
5
5
|
|
6
|
+
require_relative 'errors/element_mismatch'
|
6
7
|
require_relative 'component_collection'
|
7
8
|
require_relative 'decorated_element'
|
8
9
|
require_relative 'constants'
|
@@ -131,7 +132,10 @@ module WatirPump
|
|
131
132
|
define_method(name) do |*args|
|
132
133
|
ret = instance_exec(*args, &p)
|
133
134
|
unless ret.is_a?(Watir::Element)
|
134
|
-
raise
|
135
|
+
raise Errors::ElementMismatch.new(
|
136
|
+
expected: Watir::Element,
|
137
|
+
actual: ret.class
|
138
|
+
)
|
135
139
|
end
|
136
140
|
ret
|
137
141
|
end
|
@@ -141,7 +145,10 @@ module WatirPump
|
|
141
145
|
define_method(name) do |*args|
|
142
146
|
ret = instance_exec(*args, &p)
|
143
147
|
unless ret.is_a?(Watir::ElementCollection)
|
144
|
-
raise
|
148
|
+
raise Errors::ElementMismatch.new(
|
149
|
+
expected: Watir::ElementCollection,
|
150
|
+
actual: ret.class
|
151
|
+
)
|
145
152
|
end
|
146
153
|
ret
|
147
154
|
end
|
@@ -158,6 +165,12 @@ module WatirPump
|
|
158
165
|
watir_method_args: loc_args,
|
159
166
|
code: loc_method,
|
160
167
|
code_args: args)
|
168
|
+
unless node.is_a?(Watir::Element) || node.nil?
|
169
|
+
raise Errors::ElementMismatch.new(
|
170
|
+
expected: Watir::Element,
|
171
|
+
actual: node.class
|
172
|
+
)
|
173
|
+
end
|
161
174
|
klass.new(browser, self, node)
|
162
175
|
end
|
163
176
|
end
|
@@ -168,6 +181,12 @@ module WatirPump
|
|
168
181
|
watir_method_args: loc_args,
|
169
182
|
code: loc_method,
|
170
183
|
code_args: args)
|
184
|
+
unless nodes.is_a?(Watir::ElementCollection)
|
185
|
+
raise Errors::ElementMismatch.new(
|
186
|
+
expected: Watir::ElementCollection,
|
187
|
+
actual: nodes.class
|
188
|
+
)
|
189
|
+
end
|
171
190
|
ComponentCollection.new(nodes.map { |n| klass.new(browser, self, n) })
|
172
191
|
end
|
173
192
|
end
|
@@ -273,7 +292,10 @@ module WatirPump
|
|
273
292
|
def check_watir_method_mapping(watir_method, evaluated)
|
274
293
|
return evaluated unless watir_method.is_a?(Symbol)
|
275
294
|
return evaluated if evaluated.class == WATIR_METHOD_MAPPING[watir_method]
|
276
|
-
raise
|
295
|
+
raise Errors::ElementMismatch.new(
|
296
|
+
expected: WATIR_METHOD_MAPPING[watir_method],
|
297
|
+
actual: evaluated.class
|
298
|
+
)
|
277
299
|
end
|
278
300
|
|
279
301
|
def method_missing(name, *args, &blk)
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module WatirPump
|
4
|
+
module Errors
|
5
|
+
class ElementMismatch < StandardError
|
6
|
+
def initialize(expected:, actual:, msg: nil)
|
7
|
+
msg ||= "Element type mismatch. Expected: #{expected}, actual: #{actual}" # rubocop:disable Metrics/LineLength
|
8
|
+
super(msg)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: watir_pump
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bartek Wilczek
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-08-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -142,6 +142,7 @@ files:
|
|
142
142
|
- lib/watir_pump/components/radio_group.rb
|
143
143
|
- lib/watir_pump/constants.rb
|
144
144
|
- lib/watir_pump/decorated_element.rb
|
145
|
+
- lib/watir_pump/errors/element_mismatch.rb
|
145
146
|
- lib/watir_pump/page.rb
|
146
147
|
- lib/watir_pump/watir_method_mapping.rb
|
147
148
|
homepage: https://github.com/bwilczek/watir_pump
|
@@ -164,7 +165,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
164
165
|
version: '0'
|
165
166
|
requirements: []
|
166
167
|
rubyforge_project:
|
167
|
-
rubygems_version: 2.6.
|
168
|
+
rubygems_version: 2.6.14.1
|
168
169
|
signing_key:
|
169
170
|
specification_version: 4
|
170
171
|
summary: Page Object pattern for Watir. Hacker friendly and enterprise ready.
|