calabash-android 0.5.16.pre1 → 0.6.0.prelatestcrosswalk
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/bin/calabash-android-build.rb +2 -1
- data/irbrc +17 -0
- data/lib/calabash-android.rb +6 -1
- data/lib/calabash-android/dot_dir.rb +17 -0
- data/lib/calabash-android/environment.rb +120 -0
- data/{test-server → lib/calabash-android/lib}/AndroidManifest.xml +0 -0
- data/lib/calabash-android/lib/TestServer.apk +0 -0
- data/lib/calabash-android/logging.rb +120 -0
- data/lib/calabash-android/operations.rb +14 -2
- data/lib/calabash-android/store/preferences.rb +211 -0
- data/lib/calabash-android/text_helpers.rb +41 -14
- data/lib/calabash-android/usage_tracker.rb +192 -0
- data/lib/calabash-android/version.rb +1 -1
- data/lib/calabash-android/wait_helpers.rb +1 -1
- metadata +122 -15
- data/.calabash_settings +0 -1
- data/.yardopts +0 -3
- data/CHANGES.txt +0 -354
- data/ENVIRONMENT_VARIABLES.md +0 -106
- data/Gemfile +0 -4
- data/README_YARDOC.md +0 -163
- data/Rakefile +0 -49
- data/calabash-android.gemspec +0 -30
- data/lib/calabash-android/canned_steps.md +0 -229
- data/test-server/build.xml +0 -152
- data/test-server/calabash-js/src/calabash.js +0 -172
@@ -12,6 +12,7 @@ module Calabash
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def keyboard_enter_text(text, options = {})
|
15
|
+
wait_for_keyboard
|
15
16
|
perform_action('keyboard_enter_text', text)
|
16
17
|
end
|
17
18
|
|
@@ -19,36 +20,62 @@ module Calabash
|
|
19
20
|
keyboard_enter_text(character[0,1], options)
|
20
21
|
end
|
21
22
|
|
23
|
+
# Appends `text` into the first view matching `uiquery`.
|
22
24
|
def enter_text(uiquery, text, options = {})
|
23
25
|
tap_when_element_exists(uiquery, options)
|
24
26
|
sleep 0.5
|
27
|
+
set_selection(-1, -1)
|
25
28
|
keyboard_enter_text(text, options)
|
26
29
|
end
|
27
30
|
|
28
31
|
def clear_text_in(query_string, options={})
|
29
|
-
|
30
|
-
|
31
|
-
sleep 0.5
|
32
|
-
end
|
33
|
-
|
32
|
+
touch(query_string, options)
|
33
|
+
sleep 0.5
|
34
34
|
clear_text(options)
|
35
35
|
end
|
36
36
|
|
37
|
+
# Clears the text of the currently focused view.
|
37
38
|
def clear_text(options={})
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
39
|
+
set_selection(-1, -1)
|
40
|
+
perform_action("delete_surrounding_text", -1, 0)
|
41
|
+
end
|
42
|
+
|
43
|
+
def escape_quotes(str)
|
44
|
+
str.gsub("'", "\\\\'")
|
45
|
+
end
|
42
46
|
|
43
|
-
|
47
|
+
# Sets the selection of the currently focused view.
|
48
|
+
#
|
49
|
+
# @param [Integer] selection_start The start of the selection, can be
|
50
|
+
# negative to begin counting from the end of the string.
|
51
|
+
# @param [Integer] selection_end The end of the selection, can be
|
52
|
+
# negative to begin counting from the end of the string.
|
53
|
+
def set_selection(selection_start, selection_end)
|
54
|
+
perform_action("set_selection", selection_start, selection_end)
|
55
|
+
end
|
56
|
+
|
57
|
+
def keyboard_visible?
|
58
|
+
input_method = `#{default_device.adb_command} shell dumpsys input_method`.force_encoding('UTF-8')
|
59
|
+
shown = input_method.each_line.grep(/mInputShown\s*=\s*(.*)/){$1}.first.chomp
|
60
|
+
|
61
|
+
if shown == "true"
|
62
|
+
true
|
63
|
+
elsif shown == "false"
|
64
|
+
false
|
44
65
|
else
|
45
|
-
|
66
|
+
raise "Could not detect keyboard visibility. '#{shown}'"
|
46
67
|
end
|
47
68
|
end
|
48
69
|
|
49
|
-
def
|
50
|
-
|
70
|
+
def wait_for_keyboard(opt={})
|
71
|
+
params = opt.clone
|
72
|
+
params[:timeout_message] ||= "Timed out waiting for the keyboard to appear"
|
73
|
+
params[:timeout] ||= 5
|
74
|
+
|
75
|
+
wait_for(params) do
|
76
|
+
keyboard_visible?
|
77
|
+
end
|
51
78
|
end
|
52
79
|
end
|
53
80
|
end
|
54
|
-
end
|
81
|
+
end
|
@@ -0,0 +1,192 @@
|
|
1
|
+
module Calabash
|
2
|
+
module Android
|
3
|
+
class UsageTracker
|
4
|
+
|
5
|
+
require "httpclient"
|
6
|
+
|
7
|
+
# @!visibility private
|
8
|
+
@@track_usage = true
|
9
|
+
|
10
|
+
# @!visibility private
|
11
|
+
def self.enable_usage_tracking
|
12
|
+
@@track_usage = true
|
13
|
+
end
|
14
|
+
|
15
|
+
# @!visibility private
|
16
|
+
def self.disable_usage_tracking
|
17
|
+
@@track_usage = false
|
18
|
+
end
|
19
|
+
|
20
|
+
# @!visibility private
|
21
|
+
def post_usage
|
22
|
+
if Calabash::Android::UsageTracker.track_usage? &&
|
23
|
+
info_we_are_allowed_to_track != "none"
|
24
|
+
begin
|
25
|
+
HTTPClient.post(ROUTE, info)
|
26
|
+
rescue => e
|
27
|
+
message = %Q{ERROR: Could not post usage tracking information:#{$-0}#{e}}
|
28
|
+
Calabash::Android::Logging.log_to_file(message)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
# @!visibility private
|
34
|
+
def post_usage_async
|
35
|
+
t = Thread.new do
|
36
|
+
post_usage
|
37
|
+
end
|
38
|
+
|
39
|
+
m = Thread.current
|
40
|
+
|
41
|
+
Thread.new do
|
42
|
+
loop do
|
43
|
+
unless t.alive?
|
44
|
+
break
|
45
|
+
end
|
46
|
+
|
47
|
+
unless m.alive?
|
48
|
+
t.kill
|
49
|
+
break
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
nil
|
54
|
+
end
|
55
|
+
|
56
|
+
private
|
57
|
+
|
58
|
+
# @!visibility private
|
59
|
+
def preferences
|
60
|
+
Calabash::Android::Preferences.new
|
61
|
+
end
|
62
|
+
|
63
|
+
# @!visibility private
|
64
|
+
def user_id
|
65
|
+
preferences.user_id
|
66
|
+
end
|
67
|
+
|
68
|
+
# @!visibility private
|
69
|
+
def info_we_are_allowed_to_track
|
70
|
+
preferences.usage_tracking
|
71
|
+
end
|
72
|
+
|
73
|
+
# @!visibility private
|
74
|
+
def self.track_usage?
|
75
|
+
@@track_usage && !self.xtc?
|
76
|
+
end
|
77
|
+
|
78
|
+
# @!visibility private
|
79
|
+
def self.xtc?
|
80
|
+
ENV["XAMARIN_TEST_CLOUD"] == "1"
|
81
|
+
end
|
82
|
+
|
83
|
+
# @!visibility private
|
84
|
+
DATA_VERSION = "1.1"
|
85
|
+
|
86
|
+
# @!visibility private
|
87
|
+
WINDOWS = "Windows"
|
88
|
+
|
89
|
+
# @!visibility private
|
90
|
+
OSX = "Darwin"
|
91
|
+
|
92
|
+
# @!visibility private
|
93
|
+
CALABASH_IOS = "iOS"
|
94
|
+
|
95
|
+
# @!visibility private
|
96
|
+
CALABASH_ANDROID = "Android"
|
97
|
+
|
98
|
+
# @!visibility private
|
99
|
+
ROUTE = "http://calabash-ci.macminicolo.net:56789/logEvent"
|
100
|
+
|
101
|
+
# @!visibility private
|
102
|
+
def host_os
|
103
|
+
@host_os ||= lambda do
|
104
|
+
if RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/
|
105
|
+
WINDOWS
|
106
|
+
else
|
107
|
+
`uname -s`.chomp
|
108
|
+
end
|
109
|
+
end.call
|
110
|
+
end
|
111
|
+
|
112
|
+
# @!visibility private
|
113
|
+
def host_os_version
|
114
|
+
@host_os_version ||= lambda do
|
115
|
+
if host_os == WINDOWS
|
116
|
+
`ver`.chomp
|
117
|
+
elsif host_os == OSX
|
118
|
+
`sw_vers -productVersion`.chomp
|
119
|
+
else
|
120
|
+
`uname -r`.chomp
|
121
|
+
end
|
122
|
+
end.call
|
123
|
+
end
|
124
|
+
|
125
|
+
# @!visibility private
|
126
|
+
def irb?
|
127
|
+
$0 == "irb"
|
128
|
+
end
|
129
|
+
|
130
|
+
# @!visibility private
|
131
|
+
def ruby_version
|
132
|
+
@ruby_version ||= `#{RbConfig.ruby} -v`.chomp
|
133
|
+
end
|
134
|
+
|
135
|
+
# @!visibility private
|
136
|
+
def used_bundle_exec?
|
137
|
+
Object.const_defined?(:Bundler)
|
138
|
+
end
|
139
|
+
|
140
|
+
# @!visibility private
|
141
|
+
def used_cucumber?
|
142
|
+
Object.const_defined?(:Cucumber)
|
143
|
+
end
|
144
|
+
|
145
|
+
# @!visibility private
|
146
|
+
#
|
147
|
+
# Collect a hash of usage info.
|
148
|
+
def info
|
149
|
+
|
150
|
+
allowed = info_we_are_allowed_to_track
|
151
|
+
|
152
|
+
if allowed == "none"
|
153
|
+
raise RuntimeError,
|
154
|
+
"This method should not be called if the user does not want to be tracked."
|
155
|
+
end
|
156
|
+
|
157
|
+
# Events only
|
158
|
+
hash = {
|
159
|
+
:event_name => "session",
|
160
|
+
:data_version => DATA_VERSION,
|
161
|
+
:user_id => user_id
|
162
|
+
}
|
163
|
+
|
164
|
+
if allowed == "system_info"
|
165
|
+
hash.merge!(
|
166
|
+
{
|
167
|
+
:platform => CALABASH_ANDROID,
|
168
|
+
:host_os => host_os,
|
169
|
+
:host_os_version => host_os_version,
|
170
|
+
:irb => irb?,
|
171
|
+
:ruby_version => ruby_version,
|
172
|
+
:used_bundle_exec => used_bundle_exec?,
|
173
|
+
:used_cucumber => used_cucumber?,
|
174
|
+
|
175
|
+
:version => Calabash::Android::VERSION,
|
176
|
+
|
177
|
+
:ci => Calabash::Android::Environment.ci?,
|
178
|
+
:jenkins => Calabash::Android::Environment.jenkins?,
|
179
|
+
:travis => Calabash::Android::Environment.travis?,
|
180
|
+
:circle_ci => Calabash::Android::Environment.circle_ci?,
|
181
|
+
:gitlab => Calabash::Android::Environment.gitlab?,
|
182
|
+
:teamcity => Calabash::Android::Environment.teamcity?
|
183
|
+
}
|
184
|
+
)
|
185
|
+
end
|
186
|
+
|
187
|
+
hash
|
188
|
+
end
|
189
|
+
end
|
190
|
+
end
|
191
|
+
end
|
192
|
+
|
@@ -14,7 +14,7 @@ module Calabash
|
|
14
14
|
:post_timeout => 0,
|
15
15
|
:timeout_message => 'Timed out waiting...',
|
16
16
|
:screenshot_on_error => true
|
17
|
-
}
|
17
|
+
}
|
18
18
|
|
19
19
|
def wait_for(options_or_timeout=DEFAULT_OPTS, &block)
|
20
20
|
#note Hash is preferred, number acceptable for backwards compat
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: calabash-android
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0.prelatestcrosswalk
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonas Maturana Larsen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-02-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cucumber
|
@@ -176,6 +176,118 @@ dependencies:
|
|
176
176
|
- - "~>"
|
177
177
|
- !ruby/object:Gem::Version
|
178
178
|
version: '3.1'
|
179
|
+
- !ruby/object:Gem::Dependency
|
180
|
+
name: rspec_junit_formatter
|
181
|
+
requirement: !ruby/object:Gem::Requirement
|
182
|
+
requirements:
|
183
|
+
- - ">="
|
184
|
+
- !ruby/object:Gem::Version
|
185
|
+
version: '0'
|
186
|
+
type: :development
|
187
|
+
prerelease: false
|
188
|
+
version_requirements: !ruby/object:Gem::Requirement
|
189
|
+
requirements:
|
190
|
+
- - ">="
|
191
|
+
- !ruby/object:Gem::Version
|
192
|
+
version: '0'
|
193
|
+
- !ruby/object:Gem::Dependency
|
194
|
+
name: rspec
|
195
|
+
requirement: !ruby/object:Gem::Requirement
|
196
|
+
requirements:
|
197
|
+
- - "~>"
|
198
|
+
- !ruby/object:Gem::Version
|
199
|
+
version: '3.0'
|
200
|
+
type: :development
|
201
|
+
prerelease: false
|
202
|
+
version_requirements: !ruby/object:Gem::Requirement
|
203
|
+
requirements:
|
204
|
+
- - "~>"
|
205
|
+
- !ruby/object:Gem::Version
|
206
|
+
version: '3.0'
|
207
|
+
- !ruby/object:Gem::Dependency
|
208
|
+
name: pry
|
209
|
+
requirement: !ruby/object:Gem::Requirement
|
210
|
+
requirements:
|
211
|
+
- - ">="
|
212
|
+
- !ruby/object:Gem::Version
|
213
|
+
version: '0'
|
214
|
+
type: :development
|
215
|
+
prerelease: false
|
216
|
+
version_requirements: !ruby/object:Gem::Requirement
|
217
|
+
requirements:
|
218
|
+
- - ">="
|
219
|
+
- !ruby/object:Gem::Version
|
220
|
+
version: '0'
|
221
|
+
- !ruby/object:Gem::Dependency
|
222
|
+
name: pry-nav
|
223
|
+
requirement: !ruby/object:Gem::Requirement
|
224
|
+
requirements:
|
225
|
+
- - ">="
|
226
|
+
- !ruby/object:Gem::Version
|
227
|
+
version: '0'
|
228
|
+
type: :development
|
229
|
+
prerelease: false
|
230
|
+
version_requirements: !ruby/object:Gem::Requirement
|
231
|
+
requirements:
|
232
|
+
- - ">="
|
233
|
+
- !ruby/object:Gem::Version
|
234
|
+
version: '0'
|
235
|
+
- !ruby/object:Gem::Dependency
|
236
|
+
name: guard-rspec
|
237
|
+
requirement: !ruby/object:Gem::Requirement
|
238
|
+
requirements:
|
239
|
+
- - ">="
|
240
|
+
- !ruby/object:Gem::Version
|
241
|
+
version: '0'
|
242
|
+
type: :development
|
243
|
+
prerelease: false
|
244
|
+
version_requirements: !ruby/object:Gem::Requirement
|
245
|
+
requirements:
|
246
|
+
- - ">="
|
247
|
+
- !ruby/object:Gem::Version
|
248
|
+
version: '0'
|
249
|
+
- !ruby/object:Gem::Dependency
|
250
|
+
name: guard-bundler
|
251
|
+
requirement: !ruby/object:Gem::Requirement
|
252
|
+
requirements:
|
253
|
+
- - ">="
|
254
|
+
- !ruby/object:Gem::Version
|
255
|
+
version: '0'
|
256
|
+
type: :development
|
257
|
+
prerelease: false
|
258
|
+
version_requirements: !ruby/object:Gem::Requirement
|
259
|
+
requirements:
|
260
|
+
- - ">="
|
261
|
+
- !ruby/object:Gem::Version
|
262
|
+
version: '0'
|
263
|
+
- !ruby/object:Gem::Dependency
|
264
|
+
name: growl
|
265
|
+
requirement: !ruby/object:Gem::Requirement
|
266
|
+
requirements:
|
267
|
+
- - ">="
|
268
|
+
- !ruby/object:Gem::Version
|
269
|
+
version: '0'
|
270
|
+
type: :development
|
271
|
+
prerelease: false
|
272
|
+
version_requirements: !ruby/object:Gem::Requirement
|
273
|
+
requirements:
|
274
|
+
- - ">="
|
275
|
+
- !ruby/object:Gem::Version
|
276
|
+
version: '0'
|
277
|
+
- !ruby/object:Gem::Dependency
|
278
|
+
name: stub_env
|
279
|
+
requirement: !ruby/object:Gem::Requirement
|
280
|
+
requirements:
|
281
|
+
- - ">="
|
282
|
+
- !ruby/object:Gem::Version
|
283
|
+
version: '0'
|
284
|
+
type: :development
|
285
|
+
prerelease: false
|
286
|
+
version_requirements: !ruby/object:Gem::Requirement
|
287
|
+
requirements:
|
288
|
+
- - ">="
|
289
|
+
- !ruby/object:Gem::Version
|
290
|
+
version: '0'
|
179
291
|
description: 'calabash-android drives tests for native and hybrid Android apps. '
|
180
292
|
email:
|
181
293
|
- jonas@lesspainful.com
|
@@ -184,14 +296,7 @@ executables:
|
|
184
296
|
extensions: []
|
185
297
|
extra_rdoc_files: []
|
186
298
|
files:
|
187
|
-
- ".calabash_settings"
|
188
|
-
- ".yardopts"
|
189
|
-
- CHANGES.txt
|
190
|
-
- ENVIRONMENT_VARIABLES.md
|
191
|
-
- Gemfile
|
192
299
|
- LICENSE
|
193
|
-
- README_YARDOC.md
|
194
|
-
- Rakefile
|
195
300
|
- bin/calabash-android
|
196
301
|
- bin/calabash-android-build.rb
|
197
302
|
- bin/calabash-android-console.rb
|
@@ -199,7 +304,6 @@ files:
|
|
199
304
|
- bin/calabash-android-helpers.rb
|
200
305
|
- bin/calabash-android-run.rb
|
201
306
|
- bin/calabash-android-setup.rb
|
202
|
-
- calabash-android.gemspec
|
203
307
|
- epl-v10.html
|
204
308
|
- features-skeleton/my_first.feature
|
205
309
|
- features-skeleton/step_definitions/calabash_steps.rb
|
@@ -211,21 +315,24 @@ files:
|
|
211
315
|
- lib/calabash-android.rb
|
212
316
|
- lib/calabash-android/abase.rb
|
213
317
|
- lib/calabash-android/calabash_steps.rb
|
214
|
-
- lib/calabash-android/canned_steps.md
|
215
318
|
- lib/calabash-android/color_helper.rb
|
216
319
|
- lib/calabash-android/cucumber.rb
|
217
320
|
- lib/calabash-android/defaults.rb
|
218
321
|
- lib/calabash-android/deprecated_actions.map
|
322
|
+
- lib/calabash-android/dot_dir.rb
|
219
323
|
- lib/calabash-android/drag_helpers.rb
|
220
324
|
- lib/calabash-android/env.rb
|
325
|
+
- lib/calabash-android/environment.rb
|
221
326
|
- lib/calabash-android/environment_helpers.rb
|
222
327
|
- lib/calabash-android/gestures.rb
|
223
328
|
- lib/calabash-android/helpers.rb
|
224
329
|
- lib/calabash-android/java_keystore.rb
|
225
330
|
- lib/calabash-android/lib/AXMLPrinter2.jar
|
331
|
+
- lib/calabash-android/lib/AndroidManifest.xml
|
226
332
|
- lib/calabash-android/lib/TestServer.apk
|
227
333
|
- lib/calabash-android/lib/manifest_extractor.jar
|
228
334
|
- lib/calabash-android/lib/screenshotTaker.jar
|
335
|
+
- lib/calabash-android/logging.rb
|
229
336
|
- lib/calabash-android/management/adb.rb
|
230
337
|
- lib/calabash-android/management/app_installation.rb
|
231
338
|
- lib/calabash-android/monkey_helpers.rb
|
@@ -246,15 +353,15 @@ files:
|
|
246
353
|
- lib/calabash-android/steps/search_steps.rb
|
247
354
|
- lib/calabash-android/steps/spinner_steps.rb
|
248
355
|
- lib/calabash-android/steps/time_picker_steps.rb
|
356
|
+
- lib/calabash-android/store/preferences.rb
|
249
357
|
- lib/calabash-android/text_helpers.rb
|
250
358
|
- lib/calabash-android/touch_helpers.rb
|
359
|
+
- lib/calabash-android/usage_tracker.rb
|
251
360
|
- lib/calabash-android/version.rb
|
252
361
|
- lib/calabash-android/wait_helpers.rb
|
253
|
-
- test-server/AndroidManifest.xml
|
254
|
-
- test-server/build.xml
|
255
|
-
- test-server/calabash-js/src/calabash.js
|
256
362
|
homepage: http://github.com/calabash
|
257
|
-
licenses:
|
363
|
+
licenses:
|
364
|
+
- EPL-1.0
|
258
365
|
metadata: {}
|
259
366
|
post_install_message:
|
260
367
|
rdoc_options: []
|