appom 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a2f17ca36a2cd4e5621ecf4f2d2d842f229494df5cb2ca7629fb02faba05115f
4
- data.tar.gz: 646ba303457e66fd2517b45100efac3e15bd97d1fd3ced1d7bc9cccccdacc4aa
3
+ metadata.gz: 0949477113260f4e785a805fa8e65fba84220ba6a0ee596f28fa41b429e672cc
4
+ data.tar.gz: 3b0a17a7cdfca9377d16fb5db85a756e8fa9bab30de7fca678a60f349b421f0a
5
5
  SHA512:
6
- metadata.gz: aad052c0abe308b033616d60e94598c500d2eebba065677a49ac59fe170227305fea83f7a918c3be2f7265fec82fed4920c5257de92057cf36d759ddc1564540
7
- data.tar.gz: 50b469a37d97e15f9a001b7e9cda5c7e5ea7a37598b7667259bbac93d6c9cdee999c6e5584fccf7afd4e57514bba6194f6e19ce9fdf2c699ee01b489cc8c4fc4
6
+ metadata.gz: 762d159a3d726469f66dcfe6334a4ccfc8174fe63602c6f238759c6295a8edbc305780804bb9811dba54407e77f9153c220c4d711303043667d4599480c4030a
7
+ data.tar.gz: baaaa66a0fb77ad1917451b5f54216bc7c1331c52f622f19c212f612fff1494480980a7eee07256eea152554edb6aec0c610bc4da73abf04014e131902619191
@@ -42,11 +42,14 @@ 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
- build(name, *find_args) do |*runtime_args, &block|
45
+ build_element(name, *find_args) do |*runtime_args, &block|
46
46
  define_method(name) do
47
47
  raise_if_block(self, name, !block.nil?, :element)
48
48
  find(*merge_args(find_args, runtime_args))
49
49
  end
50
+ define_method("#{name}_params") do
51
+ merge_args(find_args, runtime_args)
52
+ end
50
53
  end
51
54
  end
52
55
 
@@ -63,11 +66,14 @@ module Appom
63
66
  # Elements doesn't support block so that will raise if pass a block when declare
64
67
  #
65
68
  def elements(name, *find_args)
66
- build(name, *find_args) do |*runtime_args, &block|
69
+ build_elements(name, *find_args) do |*runtime_args, &block|
67
70
  define_method(name) do
68
71
  raise_if_block(self, name, !block.nil?, :elements)
69
72
  all(*merge_args(find_args, runtime_args))
70
73
  end
74
+ define_method("#{name}_params") do
75
+ merge_args(find_args, runtime_args)
76
+ end
71
77
  end
72
78
  end
73
79
 
@@ -83,15 +89,33 @@ module Appom
83
89
 
84
90
  private
85
91
 
86
- # Add item to @mapped_items or define method to notify that we can't find item without args
87
- def build(name, *find_args)
92
+ # Add item to @mapped_items or define method for element
93
+ def build_element(name, *find_args)
94
+ if find_args.empty?
95
+ create_error_method(name)
96
+ else
97
+ add_to_mapped_items(name)
98
+ yield
99
+ end
100
+
101
+ create_existence_checker(name, *find_args)
102
+ create_nonexistence_checker(name, *find_args)
103
+ create_enable_checker(name, *find_args)
104
+ create_disable_checker(name, *find_args)
105
+ end
106
+
107
+ # Add item to @mapped_items or define method for elements
108
+ def build_elements(name, *find_args)
88
109
  if find_args.empty?
89
110
  create_error_method(name)
90
111
  else
91
112
  add_to_mapped_items(name)
92
113
  yield
93
114
  end
94
- add_helper_methods(name, *find_args)
115
+
116
+ create_existence_checker(name, *find_args)
117
+ create_nonexistence_checker(name, *find_args)
118
+ create_get_all_elements(name, *find_args)
95
119
  end
96
120
 
97
121
  # Define method to notify that we can't find item without args
@@ -157,6 +181,32 @@ module Appom
157
181
  end
158
182
  end
159
183
  end
184
+
185
+ ##
186
+ # Try wait until element will be enable
187
+ #
188
+ def create_enable_checker(element_name, *find_args)
189
+ method_name = "#{element_name}_enable?"
190
+ create_helper_method(method_name, *find_args) do
191
+ define_method(method_name) do |*runtime_args|
192
+ args = merge_args(find_args, runtime_args)
193
+ wait_util_element_enabled(*args)
194
+ end
195
+ end
196
+ end
197
+
198
+ ##
199
+ # Wait until an element will be
200
+ #
201
+ def create_disable_checker(element_name, *find_args)
202
+ method_name = "#{element_name}_disable?"
203
+ create_helper_method(method_name, *find_args) do
204
+ define_method(method_name) do |*runtime_args|
205
+ args = merge_args(find_args, runtime_args)
206
+ wait_util_element_disabled(*args)
207
+ end
208
+ end
209
+ end
160
210
  end
161
211
  end
162
212
  end
data/lib/appom/page.rb CHANGED
@@ -52,5 +52,21 @@ module Appom
52
52
  return result
53
53
  end
54
54
  end
55
+
56
+ ##
57
+ # Wait until an element will be enable
58
+ #
59
+ def wait_util_element_enabled(*find_args)
60
+ wait = Wait.new(timeout: Appom.max_wait_time)
61
+ wait.until { Appom.driver.find_element(*find_args).enabled? }
62
+ end
63
+
64
+ ##
65
+ # Wait until an element will be disable
66
+ #
67
+ def wait_util_element_disabled(*find_args)
68
+ wait = Wait.new(timeout: Appom.max_wait_time)
69
+ wait.until { !Appom.driver.find_element(*find_args).enabled? }
70
+ end
55
71
  end
56
72
  end
data/lib/appom/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Appom
2
- VERSION = '0.5.0'.freeze
2
+ VERSION = '0.6.0'.freeze
3
3
  end
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.5.0
4
+ version: 0.6.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-10-26 00:00:00.000000000 Z
11
+ date: 2018-10-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: appium_lib