appom 0.7.4 → 0.8.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/lib/appom.rb +4 -0
- data/lib/appom/element_container.rb +74 -14
- data/lib/appom/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b32d28e930a6f341aa50bfba1c2d5fce509b24f8490a791ffd285970e8fe07a0
|
4
|
+
data.tar.gz: 9373487e660babc46661f1f58431731582f53dc534ffb09bf9663b2f9f8f3f2d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 572dc5aca35bb42e9259eb87fe93ad63fa71daa7fa1c44785fab9ea39290462bc8707d79e3616a8a35b502e5064237029e21f1547f24fe4fbb4df7993a0ec80f
|
7
|
+
data.tar.gz: 2ad6d47691c224987da5b013424df6015768c0399893d2bc5f6373393c6bd55d05425da6319f5ca2e17ba37a5d7928823b1215b5564fe2faaef996e74dbd60cf
|
data/lib/appom.rb
CHANGED
@@ -16,6 +16,10 @@ module Appom
|
|
16
16
|
class NoSuchElementError < StandardError; end
|
17
17
|
# An elements is empty using the given search parameters.
|
18
18
|
class ElementsEmptyError < StandardError; end
|
19
|
+
# Text from an element not equal expected text
|
20
|
+
class ElementsTextVerifyError < StandardError; end
|
21
|
+
# An element is define with no text value
|
22
|
+
class ElementsDefineNoTextError < StandardError; end
|
19
23
|
|
20
24
|
autoload :ElementContainer, 'appom/element_container'
|
21
25
|
autoload :Page, 'appom/page'
|
@@ -42,14 +42,15 @@ module Appom
|
|
42
42
|
# Element doesn't support block so that will raise if pass a block when declare
|
43
43
|
#
|
44
44
|
def element(name, *find_args)
|
45
|
-
|
45
|
+
text, args = deduce_element_text(find_args)
|
46
|
+
build_element(name, *args) do
|
46
47
|
define_method(name) do |*runtime_args, &block|
|
47
48
|
raise_if_block(self, name, !block.nil?, :element)
|
48
|
-
_find(*merge_args(
|
49
|
-
end
|
50
|
-
define_method("#{name}_params") do
|
51
|
-
merge_args(find_args)
|
49
|
+
_find(*merge_args(args, runtime_args))
|
52
50
|
end
|
51
|
+
|
52
|
+
create_get_element_params(name, args)
|
53
|
+
create_verify_element_text(name, text, args)
|
53
54
|
end
|
54
55
|
end
|
55
56
|
|
@@ -71,9 +72,8 @@ module Appom
|
|
71
72
|
raise_if_block(self, name, !block.nil?, :elements)
|
72
73
|
_all(*merge_args(find_args, runtime_args))
|
73
74
|
end
|
74
|
-
|
75
|
-
|
76
|
-
end
|
75
|
+
|
76
|
+
create_get_element_params(name, find_args)
|
77
77
|
end
|
78
78
|
end
|
79
79
|
|
@@ -84,10 +84,11 @@ module Appom
|
|
84
84
|
section_element = _find(*merge_args(find_args, runtime_args))
|
85
85
|
section_class.new(self, section_element)
|
86
86
|
end
|
87
|
-
|
88
|
-
|
89
|
-
end
|
87
|
+
|
88
|
+
create_get_element_params(name, find_args)
|
90
89
|
end
|
90
|
+
|
91
|
+
|
91
92
|
end
|
92
93
|
|
93
94
|
def sections(name, *args, &block)
|
@@ -99,9 +100,8 @@ module Appom
|
|
99
100
|
section_class.new(self, element)
|
100
101
|
end
|
101
102
|
end
|
102
|
-
|
103
|
-
|
104
|
-
end
|
103
|
+
|
104
|
+
create_get_element_params(name, find_args)
|
105
105
|
end
|
106
106
|
end
|
107
107
|
|
@@ -259,6 +259,66 @@ module Appom
|
|
259
259
|
end
|
260
260
|
end
|
261
261
|
|
262
|
+
##
|
263
|
+
# Verify text for an element
|
264
|
+
#
|
265
|
+
def create_verify_element_text(element_name, text, *find_args)
|
266
|
+
method_name = "#{element_name}_verify_text"
|
267
|
+
|
268
|
+
create_helper_method(method_name, *find_args) do
|
269
|
+
define_method(method_name) do |*runtime_args|
|
270
|
+
# Raise if element have no text value
|
271
|
+
if text.nil?
|
272
|
+
raise(ElementsDefineNoTextError, "#{name} element is define with no text value")
|
273
|
+
end
|
274
|
+
|
275
|
+
args = merge_args(find_args, runtime_args)
|
276
|
+
element = _find(*args)
|
277
|
+
element_text = element.text
|
278
|
+
if !element_text.eql?(text)
|
279
|
+
raise(ElementsTextVerifyError, "expected: value == #{text} got: #{element_text}")
|
280
|
+
end
|
281
|
+
end
|
282
|
+
end
|
283
|
+
end
|
284
|
+
|
285
|
+
##
|
286
|
+
# Get parameter is passed when declared element
|
287
|
+
#
|
288
|
+
def create_get_element_params(element_name, *find_args)
|
289
|
+
method_name = "#{element_name}_params"
|
290
|
+
create_helper_method(method_name, *find_args) do
|
291
|
+
define_method(method_name) do
|
292
|
+
merge_args(find_args)
|
293
|
+
end
|
294
|
+
end
|
295
|
+
end
|
296
|
+
|
297
|
+
##
|
298
|
+
# Deduce text value
|
299
|
+
# @return expected text for element and the remaining parameters
|
300
|
+
#
|
301
|
+
def deduce_element_text(args)
|
302
|
+
# Flatten argument array first if we are in case array inside array
|
303
|
+
args = args.flatten
|
304
|
+
|
305
|
+
if args.empty?
|
306
|
+
raise(ArgumentError, 'You should provide search arguments in element creation')
|
307
|
+
end
|
308
|
+
|
309
|
+
# Get last key and check if it contain 'text' key
|
310
|
+
last_key = args.last
|
311
|
+
text = nil
|
312
|
+
if last_key.is_a?(Hash)
|
313
|
+
if last_key.key?(:text)
|
314
|
+
text = last_key[:text]
|
315
|
+
args.pop
|
316
|
+
end
|
317
|
+
end
|
318
|
+
|
319
|
+
[text, args]
|
320
|
+
end
|
321
|
+
|
262
322
|
##
|
263
323
|
# Extract section options
|
264
324
|
# @return section class name and the remaining parameters
|
data/lib/appom/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: appom
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Harry.Tran
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-11-
|
11
|
+
date: 2018-11-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: appium_lib
|