appom 0.5.0 → 0.6.0

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