calabash-android 0.5.16.pre1 → 0.6.0.pre4

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
+
@@ -1,5 +1,5 @@
1
1
  module Calabash
2
2
  module Android
3
- VERSION = "0.5.16.pre1"
3
+ VERSION = "0.6.0.pre4"
4
4
  end
5
5
  end
@@ -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
- }.freeze
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
@@ -1,4 +1,9 @@
1
1
  require 'calabash-android/defaults'
2
+ require 'calabash-android/environment'
3
+ require 'calabash-android/dot_dir'
4
+ require 'calabash-android/logging'
5
+ require 'calabash-android/store/preferences'
6
+ require 'calabash-android/usage_tracker'
2
7
  require 'calabash-android/operations'
3
8
  require 'calabash-android/version'
4
- require 'calabash-android/abase'
9
+ require 'calabash-android/abase'
metadata CHANGED
@@ -1,181 +1,293 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: calabash-android
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.16.pre1
4
+ version: 0.6.0.pre4
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: 2015-12-05 00:00:00.000000000 Z
11
+ date: 2015-12-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cucumber
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: json
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
33
  version: '1.8'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ~>
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.8'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: retriable
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: 1.3.3.1
48
- - - "<"
48
+ - - <
49
49
  - !ruby/object:Gem::Version
50
50
  version: '1.5'
51
51
  type: :runtime
52
52
  prerelease: false
53
53
  version_requirements: !ruby/object:Gem::Requirement
54
54
  requirements:
55
- - - ">="
55
+ - - '>='
56
56
  - !ruby/object:Gem::Version
57
57
  version: 1.3.3.1
58
- - - "<"
58
+ - - <
59
59
  - !ruby/object:Gem::Version
60
60
  version: '1.5'
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: slowhandcuke
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
- - - "~>"
65
+ - - ~>
66
66
  - !ruby/object:Gem::Version
67
67
  version: 0.0.3
68
68
  type: :runtime
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
- - - "~>"
72
+ - - ~>
73
73
  - !ruby/object:Gem::Version
74
74
  version: 0.0.3
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: rubyzip
77
77
  requirement: !ruby/object:Gem::Requirement
78
78
  requirements:
79
- - - "~>"
79
+ - - ~>
80
80
  - !ruby/object:Gem::Version
81
81
  version: '1.1'
82
82
  type: :runtime
83
83
  prerelease: false
84
84
  version_requirements: !ruby/object:Gem::Requirement
85
85
  requirements:
86
- - - "~>"
86
+ - - ~>
87
87
  - !ruby/object:Gem::Version
88
88
  version: '1.1'
89
89
  - !ruby/object:Gem::Dependency
90
90
  name: awesome_print
91
91
  requirement: !ruby/object:Gem::Requirement
92
92
  requirements:
93
- - - "~>"
93
+ - - ~>
94
94
  - !ruby/object:Gem::Version
95
95
  version: '1.2'
96
96
  type: :runtime
97
97
  prerelease: false
98
98
  version_requirements: !ruby/object:Gem::Requirement
99
99
  requirements:
100
- - - "~>"
100
+ - - ~>
101
101
  - !ruby/object:Gem::Version
102
102
  version: '1.2'
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: httpclient
105
105
  requirement: !ruby/object:Gem::Requirement
106
106
  requirements:
107
- - - ">="
107
+ - - '>='
108
108
  - !ruby/object:Gem::Version
109
109
  version: 2.3.2
110
- - - "<"
110
+ - - <
111
111
  - !ruby/object:Gem::Version
112
112
  version: '3.0'
113
113
  type: :runtime
114
114
  prerelease: false
115
115
  version_requirements: !ruby/object:Gem::Requirement
116
116
  requirements:
117
- - - ">="
117
+ - - '>='
118
118
  - !ruby/object:Gem::Version
119
119
  version: 2.3.2
120
- - - "<"
120
+ - - <
121
121
  - !ruby/object:Gem::Version
122
122
  version: '3.0'
123
123
  - !ruby/object:Gem::Dependency
124
124
  name: escape
125
125
  requirement: !ruby/object:Gem::Requirement
126
126
  requirements:
127
- - - "~>"
127
+ - - ~>
128
128
  - !ruby/object:Gem::Version
129
129
  version: 0.0.4
130
130
  type: :runtime
131
131
  prerelease: false
132
132
  version_requirements: !ruby/object:Gem::Requirement
133
133
  requirements:
134
- - - "~>"
134
+ - - ~>
135
135
  - !ruby/object:Gem::Version
136
136
  version: 0.0.4
137
137
  - !ruby/object:Gem::Dependency
138
138
  name: rake
139
139
  requirement: !ruby/object:Gem::Requirement
140
140
  requirements:
141
- - - "~>"
141
+ - - ~>
142
142
  - !ruby/object:Gem::Version
143
143
  version: '10.3'
144
144
  type: :development
145
145
  prerelease: false
146
146
  version_requirements: !ruby/object:Gem::Requirement
147
147
  requirements:
148
- - - "~>"
148
+ - - ~>
149
149
  - !ruby/object:Gem::Version
150
150
  version: '10.3'
151
151
  - !ruby/object:Gem::Dependency
152
152
  name: yard
153
153
  requirement: !ruby/object:Gem::Requirement
154
154
  requirements:
155
- - - "~>"
155
+ - - ~>
156
156
  - !ruby/object:Gem::Version
157
157
  version: '0.8'
158
158
  type: :development
159
159
  prerelease: false
160
160
  version_requirements: !ruby/object:Gem::Requirement
161
161
  requirements:
162
- - - "~>"
162
+ - - ~>
163
163
  - !ruby/object:Gem::Version
164
164
  version: '0.8'
165
165
  - !ruby/object:Gem::Dependency
166
166
  name: redcarpet
167
167
  requirement: !ruby/object:Gem::Requirement
168
168
  requirements:
169
- - - "~>"
169
+ - - ~>
170
170
  - !ruby/object:Gem::Version
171
171
  version: '3.1'
172
172
  type: :development
173
173
  prerelease: false
174
174
  version_requirements: !ruby/object:Gem::Requirement
175
175
  requirements:
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,53 +296,32 @@ 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
- - LICENSE
193
- - README_YARDOC.md
194
- - Rakefile
195
- - bin/calabash-android
299
+ - irbrc
196
300
  - bin/calabash-android-build.rb
197
301
  - bin/calabash-android-console.rb
198
302
  - bin/calabash-android-generate.rb
199
303
  - bin/calabash-android-helpers.rb
200
304
  - bin/calabash-android-run.rb
201
305
  - bin/calabash-android-setup.rb
202
- - calabash-android.gemspec
203
- - epl-v10.html
204
- - features-skeleton/my_first.feature
205
- - features-skeleton/step_definitions/calabash_steps.rb
206
- - features-skeleton/support/app_installation_hooks.rb
207
- - features-skeleton/support/app_life_cycle_hooks.rb
208
- - features-skeleton/support/env.rb
209
- - features-skeleton/support/hooks.rb
210
- - irbrc
211
- - lib/calabash-android.rb
306
+ - bin/calabash-android
212
307
  - lib/calabash-android/abase.rb
213
308
  - lib/calabash-android/calabash_steps.rb
214
- - lib/calabash-android/canned_steps.md
215
309
  - lib/calabash-android/color_helper.rb
216
310
  - lib/calabash-android/cucumber.rb
217
311
  - lib/calabash-android/defaults.rb
218
- - lib/calabash-android/deprecated_actions.map
312
+ - lib/calabash-android/dot_dir.rb
219
313
  - lib/calabash-android/drag_helpers.rb
220
314
  - lib/calabash-android/env.rb
315
+ - lib/calabash-android/environment.rb
221
316
  - lib/calabash-android/environment_helpers.rb
222
317
  - lib/calabash-android/gestures.rb
223
318
  - lib/calabash-android/helpers.rb
224
319
  - lib/calabash-android/java_keystore.rb
225
- - lib/calabash-android/lib/AXMLPrinter2.jar
226
- - lib/calabash-android/lib/TestServer.apk
227
- - lib/calabash-android/lib/manifest_extractor.jar
228
- - lib/calabash-android/lib/screenshotTaker.jar
320
+ - lib/calabash-android/logging.rb
229
321
  - lib/calabash-android/management/adb.rb
230
322
  - lib/calabash-android/management/app_installation.rb
231
323
  - lib/calabash-android/monkey_helpers.rb
232
324
  - lib/calabash-android/operations.rb
233
- - lib/calabash-android/removed_actions.txt
234
325
  - lib/calabash-android/steps/assert_steps.rb
235
326
  - lib/calabash-android/steps/check_box_steps.rb
236
327
  - lib/calabash-android/steps/context_menu_steps.rb
@@ -246,15 +337,31 @@ files:
246
337
  - lib/calabash-android/steps/search_steps.rb
247
338
  - lib/calabash-android/steps/spinner_steps.rb
248
339
  - lib/calabash-android/steps/time_picker_steps.rb
340
+ - lib/calabash-android/store/preferences.rb
249
341
  - lib/calabash-android/text_helpers.rb
250
342
  - lib/calabash-android/touch_helpers.rb
343
+ - lib/calabash-android/usage_tracker.rb
251
344
  - lib/calabash-android/version.rb
252
345
  - lib/calabash-android/wait_helpers.rb
253
- - test-server/AndroidManifest.xml
254
- - test-server/build.xml
255
- - test-server/calabash-js/src/calabash.js
346
+ - lib/calabash-android.rb
347
+ - lib/calabash-android/deprecated_actions.map
348
+ - lib/calabash-android/removed_actions.txt
349
+ - lib/calabash-android/lib/AXMLPrinter2.jar
350
+ - lib/calabash-android/lib/manifest_extractor.jar
351
+ - lib/calabash-android/lib/screenshotTaker.jar
352
+ - features-skeleton/my_first.feature
353
+ - features-skeleton/step_definitions/calabash_steps.rb
354
+ - features-skeleton/support/app_installation_hooks.rb
355
+ - features-skeleton/support/app_life_cycle_hooks.rb
356
+ - features-skeleton/support/env.rb
357
+ - features-skeleton/support/hooks.rb
358
+ - epl-v10.html
359
+ - LICENSE
360
+ - lib/calabash-android/lib/TestServer.apk
361
+ - lib/calabash-android/lib/AndroidManifest.xml
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: []
@@ -262,17 +369,17 @@ require_paths:
262
369
  - lib
263
370
  required_ruby_version: !ruby/object:Gem::Requirement
264
371
  requirements:
265
- - - ">="
372
+ - - '>='
266
373
  - !ruby/object:Gem::Version
267
374
  version: '0'
268
375
  required_rubygems_version: !ruby/object:Gem::Requirement
269
376
  requirements:
270
- - - ">"
377
+ - - '>'
271
378
  - !ruby/object:Gem::Version
272
379
  version: 1.3.1
273
380
  requirements: []
274
381
  rubyforge_project:
275
- rubygems_version: 2.4.5.1
382
+ rubygems_version: 2.0.2
276
383
  signing_key:
277
384
  specification_version: 4
278
385
  summary: Client for calabash-android for automated functional testing on Android
data/.calabash_settings DELETED
@@ -1 +0,0 @@
1
- {"package_name":"","activity_name":"","app_path":"","api_level":"","keystore_location":"","keystore_password":"","keystore_alias":"","keystore_alias_password":""}
data/.yardopts DELETED
@@ -1,3 +0,0 @@
1
- --markup=markdown
2
- --no-private
3
- lib/**/*.rb - LICENSE ENVIRONMENT_VARIABLES.md lib/**/*.md