meglish 1.0.0 → 1.0.2

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
  SHA1:
3
- metadata.gz: a33e98ec5019f3c7430792697ceda3afd26cbdc1
4
- data.tar.gz: edf7559f926cc0e479ca8625fbd209b3cafdd4f5
3
+ metadata.gz: b3e4962ed4645bc91877f34b17287d739c6c755b
4
+ data.tar.gz: 1046efe069e8127e5a4021146008d6af94df1681
5
5
  SHA512:
6
- metadata.gz: 6cd92291f4f0d8e84f5a04b9d43b5aff3ebba53edc57bd20a3c8d7dd4c4b08a6251e6a3e3a847711d71beff8698919210eb1261d10d211f33838f65abc5cbf09
7
- data.tar.gz: 76f718217235fa55086c95773dd39244f80c3cd380e6f2d3442c09694987cd820fdc463b28a80ae1ef7de7ac8dd52755d525a2ca37b5c57ceca055074598bcf8
6
+ metadata.gz: 2cb4bd87803ec8bdc4b91e2929ce2ed49153919e91fbb330e2ea6653e2270cebd1d22c86e1585768a7b92fdcf6fe3e85ed55ddcc3aaa54505525fd492d3fab77
7
+ data.tar.gz: bad064fb7ba732d7fc78ec942dcc0d3f1a72de9591a3f23dc1d5141dbb240a8eb9af8de3e016e96b6eba22d8c81098b4e1d3df5fbfc7739ad8c240962b9e190b
@@ -1,21 +1,23 @@
1
- module MeglishCommands
1
+ module Meglish
2
+ MELGISH_CONDITIONS = {
3
+ clear_text: true,
4
+ scroll_to_element: true,
5
+ include_all: true,
6
+ timeout: 30,
7
+ confirm_alert: true
8
+ }
2
9
 
3
10
  def clear_text_element(_query, _options = {})
4
- find_element_on_screen(_query, _options)
5
- touch(_query.strip)
11
+ touch_element(_query.strip, _options)
6
12
  clear_text
7
13
  end
8
14
 
9
15
  def element_enabled?(_query, _options = {})
10
- element = find_elements(_query, _options)
11
- find_element_on_screen(_query, _options)
12
- find_elements(_query, _options).first['enabled'] unless element.nil?
16
+ get_element['enabled']
13
17
  end
14
18
 
15
19
  def element_visible?(_query, _options = {})
16
- element = find_elements(_query, _options)
17
- find_element_on_screen(_query, _options) unless element.nil?
18
- find_elements(_query, _options).first['visible'] unless element.nil?
20
+ get_element['visible']
19
21
  end
20
22
 
21
23
  def find_coordinate_element(_query, _options = {})
@@ -25,11 +27,10 @@ module MeglishCommands
25
27
 
26
28
  def find_element_on_screen(_query, _options = {})
27
29
  _query = include_all(_query, _options)
28
- logging(_query, 'NORMAL')
29
- timeout = _options[:timeout].nil? ? 20 : _options[:timeout].to_i
30
- wait_for_element_exists(_query, timeout: timeout)
30
+ MeglishLog.new.log(_query)
31
+ wait_for_element_exists(_query, get_option(:timeout, _options))
31
32
  sleep 0.5
32
- scroll_to_element(_query, _options) if _options[:scroll_to_element].nil? || _options[:scroll_to_element]
33
+ scroll_to_element(_query, _options)
33
34
  end
34
35
 
35
36
  def find_elements(_query, _options = {})
@@ -62,9 +63,9 @@ module MeglishCommands
62
63
  return []
63
64
  end
64
65
 
65
- def keyboard_enter_text_element(text, _options = {})
66
+ def keyboard_enter_text_element(_text, _options = {})
66
67
  wait_for_keyboard
67
- keyboard_enter_text text
68
+ keyboard_enter_text _text
68
69
  hide_soft_keyboard
69
70
  end
70
71
 
@@ -89,7 +90,19 @@ module MeglishCommands
89
90
  touch_element(_touch_element_query, _options)
90
91
  end
91
92
 
93
+ def set_date_element(_query_input, _date, _options = {})
94
+ new_date = _date.match(/(^[\d]{4})\/([\d]{1,2})\/([\d]{1,2})/)
95
+ year = new_date[1].to_i
96
+ month = (new_date[2].to_i) - 1
97
+ day = new_date[3].to_i
98
+
99
+ touch_element(_query_input, _options)
100
+ query("DatePicker" ,{method_name: :updateDate, arguments: [year, month, day]})
101
+ touch("MDButton id:'md_buttonDefaultPositive'") unless get_option(:confirm_alert, _options)
102
+ end
103
+
92
104
  def scroll_to_element(_query, _to_top_first = false, _options = {})
105
+ return unless get_option(:scroll_to_element, _options)
93
106
  hide_soft_keyboard
94
107
  unless (query(_query).first['rect']['height']).zero? && (query(_query).first['rect']['width']).zero?
95
108
  w, h = get_device_size
@@ -99,7 +112,7 @@ module MeglishCommands
99
112
  swipe_until_find_element(_query, w, x, h, y)
100
113
  end
101
114
  rescue
102
- logging('Scroll to element was ignored')
115
+ MeglishLog.new.log('Scroll to element was ignored')
103
116
  query(_query)
104
117
  end
105
118
 
@@ -134,8 +147,7 @@ module MeglishCommands
134
147
  end
135
148
 
136
149
  def touch_element(_query, _options = {})
137
- find_element_on_screen(_query, _options)
138
- touch(_query.strip)
150
+ touch_element(_query.strip, _options)
139
151
  end
140
152
 
141
153
  def touch_element_by_text_position(_query, _text, _options = {})
@@ -148,11 +160,9 @@ module MeglishCommands
148
160
  end
149
161
 
150
162
  def touch_and_keyboard_text_element(_query, _text, _options = {})
151
- find_element_on_screen(_query, _options)
152
- touch(_query.strip)
153
- clear_text if _options[:clear_text].nil? || _options[:clear_text] == true
154
- keyboard_enter_text(_text)
155
- hide_soft_keyboard
163
+ touch_element(_query.strip, _options)
164
+ clear_text if get_element(:clear_text, _options)
165
+ keyboard_enter_text_element(_text, _options)
156
166
  end
157
167
 
158
168
  def wait_for_or_ignore(_query, _timeout = 3, _options = {})
@@ -169,12 +179,12 @@ module MeglishCommands
169
179
  found
170
180
  end
171
181
 
172
- def wait_for_text_element(_query, _timeout = 10, options = {})
182
+ def wait_for_text_element(_query, _timeout = 10, _options = {})
173
183
  count = 0
174
184
  filled = ''
175
185
  while (filled.nil? || filled.empty?)
176
186
  return if count >= _timeout
177
- filled = text_element(_query, options)
187
+ filled = text_element(_query, _options)
178
188
  sleep 1
179
189
  count += 1
180
190
  end
@@ -196,11 +206,7 @@ module MeglishCommands
196
206
  private
197
207
 
198
208
  def include_all(_query, _options = {})
199
- include_all = true
200
- unless _options.empty?
201
- include_all = _options[:include_all].nil? ? true : _options[:include_all]
202
- end
203
- _query = 'all ' + _query if _query.include?('all ') == false && include_all == true
209
+ _query = 'all ' + _query if _query.include?('all ') == false && get_option(:include_all, _options)
204
210
  _query
205
211
  end
206
212
 
@@ -227,4 +233,16 @@ module MeglishCommands
227
233
  swipe_left(_query) until query(_query).first['visible'] || (count_times += 1) >= 5
228
234
  end
229
235
  end
236
+
237
+ def get_option(_option, _options)
238
+ default_value = ENV[_option]
239
+ default_value = MELGISH_CONDITIONS[_option] if default_value.nil? || default_value.empty?
240
+ return default_value unless has_option?(_option, _options)
241
+ _options[option]
242
+ end
243
+
244
+ def has_option?(_option, _options)
245
+ return (_options[_option].nil? ? false : true) unless _options.nil? || _options.empty?
246
+ return false
247
+ end
230
248
  end
@@ -0,0 +1,5 @@
1
+ class MeglishHelper
2
+ def build_index(_index)
3
+ _index.to_s.empty? ? '' : " index:#{_index} "
4
+ end
5
+ end
@@ -0,0 +1,9 @@
1
+ class MeglishLog
2
+ def log(_text)
3
+ default_value = ENV[:meglish_log]
4
+ default_value = default_value.nil? ? true : false
5
+ if default_value
6
+ puts " >> " + _text
7
+ end
8
+ end
9
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: meglish
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eduardo Gomes Heinen
@@ -9,17 +9,39 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
  date: 2016-11-12 00:00:00.000000000 Z
12
- dependencies: []
13
- description: ''
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: calabash-android
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.8.2
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 0.8.2
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: 0.8.2
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 0.8.2
33
+ description: Meglish find automatically your elements inside your Android Apps
14
34
  email: eduardogheinen@gmail.com
15
35
  executables: []
16
36
  extensions: []
17
37
  extra_rdoc_files: []
18
38
  files:
19
- - lib/meglish.rb
39
+ - lib/meglish_core.rb
40
+ - lib/meglish_helper.rb
41
+ - lib/meglish_log.rb
20
42
  homepage: http://rubygems.org/gems/meglish
21
43
  licenses:
22
- - MIT
44
+ - AGPL-3.0
23
45
  metadata: {}
24
46
  post_install_message:
25
47
  rdoc_options: []
@@ -40,5 +62,5 @@ rubyforge_project:
40
62
  rubygems_version: 2.5.1
41
63
  signing_key:
42
64
  specification_version: 4
43
- summary: Meglish a super framework to Calabash Android
65
+ summary: Meglish is a super framework to Calabash-Android
44
66
  test_files: []