appom 0.7.4 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|