calabash-android 0.9.8 → 0.9.14
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/lib/calabash-android/dependencies.rb +2 -3
- data/lib/calabash-android/helpers.rb +1 -1
- data/lib/calabash-android/java_keystore.rb +4 -0
- data/lib/calabash-android/lib/AndroidManifest.xml +4 -4
- data/lib/calabash-android/lib/TestServer.apk +0 -0
- data/lib/calabash-android/operations.rb +2 -2
- data/lib/calabash-android/version.rb +209 -1
- metadata +17 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 695cfb94529f6b67693d65dd0f2aac8bbba90beddbd82ad6450e24cfc64c13d0
|
4
|
+
data.tar.gz: 19aabaaa7b3dd732cbed50896c4ff97c492f80da2e881bf7343271670fabd851
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: efac834ceaa7ac985335526cbbeac43790c3e3bd0d8ada97e7cc32410fdb69387a17d2df4ece52e6de4cd7d64d19417e5c7af576ea92f79afd56476ea5701d79
|
7
|
+
data.tar.gz: 81135440c30b237cb571f83846c2dace3a375032be0aaa2caf5bc16df49bdf9a97513219e166b0dce590acdf5740175a2730a62721aae5fe22ee937b19486f97
|
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'rexml/document'
|
2
|
-
require 'luffa'
|
3
2
|
require 'timeout'
|
4
3
|
|
5
4
|
if RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/
|
@@ -193,13 +192,13 @@ module Calabash
|
|
193
192
|
build_tools_directories =
|
194
193
|
build_tools_files.select do |dir|
|
195
194
|
begin
|
196
|
-
|
195
|
+
Calabash::Android::Version.new(File.basename(dir))
|
197
196
|
true
|
198
197
|
rescue ArgumentError
|
199
198
|
false
|
200
199
|
end
|
201
200
|
end.sort do |a, b|
|
202
|
-
|
201
|
+
Calabash::Android::Version.compare(Calabash::Android::Version.new(File.basename(a)), Calabash::Android::Version.new(File.basename(b)))
|
203
202
|
end.reverse.map{|dir| File.join('build-tools', File.basename(dir))}
|
204
203
|
|
205
204
|
if build_tools_directories.empty?
|
@@ -51,6 +51,10 @@ class JavaKeystore
|
|
51
51
|
|
52
52
|
# E.g. MD5withRSA or MD5withRSAandMGF1
|
53
53
|
encryption = signature_algorithm_name.split('with')[1].split('and')[0]
|
54
|
+
|
55
|
+
# keytool with newer java versions has "Signature algorithm name: SHA1withRSA (weak)"
|
56
|
+
encryption.gsub!(' (weak)', '')
|
57
|
+
|
54
58
|
signing_algorithm = "SHA1with#{encryption}"
|
55
59
|
digest_algorithm = 'SHA1'
|
56
60
|
|
@@ -1,10 +1,11 @@
|
|
1
1
|
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
|
2
3
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
3
4
|
package="#testPackage#"
|
4
|
-
android:versionCode="
|
5
|
-
android:versionName="0.
|
5
|
+
android:versionCode="12"
|
6
|
+
android:versionName="0.9.12">
|
6
7
|
|
7
|
-
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="
|
8
|
+
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="28" />
|
8
9
|
|
9
10
|
<application android:label="instrumentation_backend"
|
10
11
|
android:largeHeap="true"
|
@@ -58,5 +59,4 @@
|
|
58
59
|
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
|
59
60
|
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
|
60
61
|
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
|
61
|
-
|
62
62
|
</manifest>
|
Binary file
|
@@ -362,9 +362,9 @@ module Calabash module Android
|
|
362
362
|
|
363
363
|
def install_app(app_path)
|
364
364
|
if _sdk_version >= 23
|
365
|
-
cmd = "#{adb_command} install -g \"#{app_path}\""
|
365
|
+
cmd = "#{adb_command} install -g -t \"#{app_path}\""
|
366
366
|
else
|
367
|
-
cmd = "#{adb_command} install \"#{app_path}\""
|
367
|
+
cmd = "#{adb_command} install -t \"#{app_path}\""
|
368
368
|
end
|
369
369
|
|
370
370
|
log "Installing: #{app_path}"
|
@@ -1,5 +1,213 @@
|
|
1
1
|
module Calabash
|
2
2
|
module Android
|
3
|
-
VERSION = "0.9.
|
3
|
+
VERSION = "0.9.14"
|
4
|
+
|
5
|
+
# A model of a software release version that can be used to compare two versions.
|
6
|
+
#
|
7
|
+
# Calabash and RunLoop try very hard to comply with Semantic Versioning rules.
|
8
|
+
# However, the semantic versioning spec is incompatible with RubyGem's patterns
|
9
|
+
# for pre-release gems.
|
10
|
+
#
|
11
|
+
# > "But returning to the practical: No release version of SemVer is compatible
|
12
|
+
# > with Rubygems." - _David Kellum_
|
13
|
+
#
|
14
|
+
# Calabash and RunLoop version numbers will be in the form `<major>.<minor>.<patch>[.pre<N>]`.
|
15
|
+
#
|
16
|
+
# @see http://semver.org/
|
17
|
+
# @see http://gravitext.com/2012/07/22/versioning.html
|
18
|
+
#
|
19
|
+
# TODO Expand to handle versions with more than 1 "." and no "."
|
20
|
+
# ^ Needs to handle arbitrary versions from Info.plists. In particular it
|
21
|
+
# needs to handle a unix timestamp - found the DeviceAgent-Runner.app.
|
22
|
+
class Version
|
23
|
+
|
24
|
+
# @!attribute [rw] major
|
25
|
+
# @return [Integer] the major version
|
26
|
+
attr_accessor :major
|
27
|
+
|
28
|
+
# @!attribute [rw] minor
|
29
|
+
# @return [Integer] the minor version
|
30
|
+
attr_accessor :minor
|
31
|
+
|
32
|
+
# @!attribute [rw] patch
|
33
|
+
# @return [Integer] the patch version
|
34
|
+
attr_accessor :patch
|
35
|
+
|
36
|
+
# @!attribute [rw] pre
|
37
|
+
# @return [Boolean] true if this is a pre-release version
|
38
|
+
attr_accessor :pre
|
39
|
+
|
40
|
+
# @!attribute [rw] pre_version
|
41
|
+
# @return [Integer] if this is a pre-release version, returns the
|
42
|
+
# pre-release version; otherwise this is nil
|
43
|
+
attr_accessor :pre_version
|
44
|
+
|
45
|
+
# Creates a new Version instance with all the attributes set.
|
46
|
+
#
|
47
|
+
# @example
|
48
|
+
# version = Version.new(0.10.1)
|
49
|
+
# version.major => 0
|
50
|
+
# version.minor => 10
|
51
|
+
# version.patch => 1
|
52
|
+
# version.pre => false
|
53
|
+
# version.pre_version => nil
|
54
|
+
#
|
55
|
+
# @example
|
56
|
+
# version = Version.new(1.6.3.pre5)
|
57
|
+
# version.major => 1
|
58
|
+
# version.minor => 6
|
59
|
+
# version.patch => 3
|
60
|
+
# version.pre => true
|
61
|
+
# version.pre_version => 5
|
62
|
+
#
|
63
|
+
# @param [String] version the version string to parse.
|
64
|
+
# @raise [ArgumentError] if version is not in the form 5, 6.1, 7.1.2, 8.2.3.pre1
|
65
|
+
def initialize(version)
|
66
|
+
tokens = version.strip.split('.')
|
67
|
+
count = tokens.count
|
68
|
+
if tokens.empty?
|
69
|
+
raise ArgumentError, "expected '#{version}' to be like 5, 6.1, 7.1.2, 8.2.3.pre1"
|
70
|
+
end
|
71
|
+
|
72
|
+
if count < 4 and tokens.any? { |elm| elm =~ /\D/ }
|
73
|
+
raise ArgumentError, "expected '#{version}' to be like 5, 6.1, 7.1.2, 8.2.3.pre1"
|
74
|
+
end
|
75
|
+
|
76
|
+
if count == 4
|
77
|
+
@pre = tokens[3]
|
78
|
+
pre_tokens = @pre.scan(/\D+|\d+/)
|
79
|
+
@pre_version = pre_tokens[1].to_i if pre_tokens.count == 2
|
80
|
+
end
|
81
|
+
|
82
|
+
@major, @minor, @patch = version.split('.').map(&:to_i)
|
83
|
+
end
|
84
|
+
|
85
|
+
# Returns an string representation of this version.
|
86
|
+
# @return [String] a string in the form `<major>.<minor>.<patch>[.pre<N>]`
|
87
|
+
def to_s
|
88
|
+
str = [major, minor, patch].compact.join('.')
|
89
|
+
str = "#{str}.#{pre}" if pre
|
90
|
+
str
|
91
|
+
end
|
92
|
+
|
93
|
+
def inspect
|
94
|
+
"#<Version #{to_s}>"
|
95
|
+
end
|
96
|
+
|
97
|
+
# Compare this version to another for _object_ equality. This allows
|
98
|
+
# Version instances to be used as Hash keys.
|
99
|
+
# @param [Version] other the version to compare against.
|
100
|
+
def eql?(other)
|
101
|
+
hash == other.hash
|
102
|
+
end
|
103
|
+
|
104
|
+
# The hash method for this instance.
|
105
|
+
def hash
|
106
|
+
str = [major, minor, patch].map do |str|
|
107
|
+
str ? str : "0"
|
108
|
+
end.join(".")
|
109
|
+
|
110
|
+
if pre
|
111
|
+
str = "#{str}.#{pre}"
|
112
|
+
end
|
113
|
+
|
114
|
+
str.hash
|
115
|
+
end
|
116
|
+
|
117
|
+
# Compare this version to another for equality.
|
118
|
+
# @param [Version] other the version to compare against
|
119
|
+
# @return [Boolean] true if this Version is the same as `other`
|
120
|
+
def == (other)
|
121
|
+
Version.compare(self, other) == 0
|
122
|
+
end
|
123
|
+
|
124
|
+
# Compare this version to another for inequality.
|
125
|
+
# @param [Version] other the version to compare against
|
126
|
+
# @return [Boolean] true if this Version is not the same as `other`
|
127
|
+
def != (other)
|
128
|
+
Version.compare(self, other) != 0
|
129
|
+
end
|
130
|
+
|
131
|
+
# Is this version less-than another version?
|
132
|
+
# @param [Version] other the version to compare against
|
133
|
+
# @return [Boolean] true if this Version is less-than `other`
|
134
|
+
def < (other)
|
135
|
+
Version.compare(self, other) < 0
|
136
|
+
end
|
137
|
+
|
138
|
+
# Is this version greater-than another version?
|
139
|
+
# @param [Version] other the version to compare against
|
140
|
+
# @return [Boolean] true if this Version is greater-than `other`
|
141
|
+
def > (other)
|
142
|
+
Version.compare(self, other) > 0
|
143
|
+
end
|
144
|
+
|
145
|
+
# Is this version less-than or equal to another version?
|
146
|
+
# @param [Version] other the version to compare against
|
147
|
+
# @return [Boolean] true if this Version is less-than or equal `other`
|
148
|
+
def <= (other)
|
149
|
+
Version.compare(self, other) <= 0
|
150
|
+
end
|
151
|
+
|
152
|
+
# Is this version greater-than or equal to another version?
|
153
|
+
# @param [Version] other the version to compare against
|
154
|
+
# @return [Boolean] true if this Version is greater-than or equal `other`
|
155
|
+
def >= (other)
|
156
|
+
Version.compare(self, other) >= 0
|
157
|
+
end
|
158
|
+
|
159
|
+
# Compare version `a` to version `b`.
|
160
|
+
#
|
161
|
+
# @example
|
162
|
+
# compare Version.new(0.10.0), Version.new(0.9.0) => 1
|
163
|
+
# compare Version.new(0.9.0), Version.new(0.10.0) => -1
|
164
|
+
# compare Version.new(0.9.0), Version.new(0.9.0) => 0
|
165
|
+
#
|
166
|
+
# @return [Integer] an integer `(-1, 1)`
|
167
|
+
def <=> (other)
|
168
|
+
Version.compare(self, other)
|
169
|
+
end
|
170
|
+
|
171
|
+
# Compare version `a` to version `b`.
|
172
|
+
#
|
173
|
+
# @example
|
174
|
+
# compare Version.new(0.10.0), Version.new(0.9.0) => 1
|
175
|
+
# compare Version.new(0.9.0), Version.new(0.10.0) => -1
|
176
|
+
# compare Version.new(0.9.0), Version.new(0.9.0) => 0
|
177
|
+
#
|
178
|
+
# @return [Integer] an integer `(-1, 1)`
|
179
|
+
def self.compare(a, b)
|
180
|
+
|
181
|
+
if a.major != b.major
|
182
|
+
return a.major.to_i > b.major.to_i ? 1 : -1
|
183
|
+
end
|
184
|
+
|
185
|
+
a_minor = a.minor ? a.minor.to_i : 0
|
186
|
+
b_minor = b.minor ? b.minor.to_i : 0
|
187
|
+
if a_minor != b_minor
|
188
|
+
return a_minor > b_minor.to_i ? 1 : -1
|
189
|
+
end
|
190
|
+
|
191
|
+
a_patch = a.patch ? a.patch.to_i : 0
|
192
|
+
b_patch = b.patch ? b.patch.to_i : 0
|
193
|
+
if a_patch != b_patch
|
194
|
+
return a_patch.to_i > b_patch.to_i ? 1 : -1
|
195
|
+
end
|
196
|
+
|
197
|
+
return -1 if a.pre && (!a.pre_version) && b.pre_version
|
198
|
+
return 1 if a.pre_version && b.pre && (!b.pre_version)
|
199
|
+
|
200
|
+
return -1 if a.pre && (!b.pre)
|
201
|
+
return 1 if (!a.pre) && b.pre
|
202
|
+
|
203
|
+
return -1 if a.pre_version && (!b.pre_version)
|
204
|
+
return 1 if (!a.pre_version) && b.pre_version
|
205
|
+
|
206
|
+
if a.pre_version != b.pre_version
|
207
|
+
return a.pre_version.to_i > b.pre_version.to_i ? 1 : -1
|
208
|
+
end
|
209
|
+
0
|
210
|
+
end
|
211
|
+
end
|
4
212
|
end
|
5
213
|
end
|
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.9.
|
4
|
+
version: 0.9.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonas Maturana Larsen
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -56,16 +56,22 @@ dependencies:
|
|
56
56
|
name: rubyzip
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 1.2.2
|
62
|
+
- - "<"
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: '1.3'
|
62
65
|
type: :runtime
|
63
66
|
prerelease: false
|
64
67
|
version_requirements: !ruby/object:Gem::Requirement
|
65
68
|
requirements:
|
66
|
-
- - "
|
69
|
+
- - ">="
|
67
70
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
71
|
+
version: 1.2.2
|
72
|
+
- - "<"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '1.3'
|
69
75
|
- !ruby/object:Gem::Dependency
|
70
76
|
name: awesome_print
|
71
77
|
requirement: !ruby/object:Gem::Requirement
|
@@ -114,20 +120,6 @@ dependencies:
|
|
114
120
|
- - "~>"
|
115
121
|
- !ruby/object:Gem::Version
|
116
122
|
version: 0.0.4
|
117
|
-
- !ruby/object:Gem::Dependency
|
118
|
-
name: luffa
|
119
|
-
requirement: !ruby/object:Gem::Requirement
|
120
|
-
requirements:
|
121
|
-
- - ">="
|
122
|
-
- !ruby/object:Gem::Version
|
123
|
-
version: '0'
|
124
|
-
type: :runtime
|
125
|
-
prerelease: false
|
126
|
-
version_requirements: !ruby/object:Gem::Requirement
|
127
|
-
requirements:
|
128
|
-
- - ">="
|
129
|
-
- !ruby/object:Gem::Version
|
130
|
-
version: '0'
|
131
123
|
- !ruby/object:Gem::Dependency
|
132
124
|
name: rake
|
133
125
|
requirement: !ruby/object:Gem::Requirement
|
@@ -302,7 +294,7 @@ dependencies:
|
|
302
294
|
- - ">="
|
303
295
|
- !ruby/object:Gem::Version
|
304
296
|
version: '0'
|
305
|
-
description: 'calabash-android drives tests for native
|
297
|
+
description: 'calabash-android drives tests for native and hybrid Android apps. '
|
306
298
|
email:
|
307
299
|
- jonas@lesspainful.com
|
308
300
|
executables:
|
@@ -380,7 +372,7 @@ homepage: http://github.com/calabash
|
|
380
372
|
licenses:
|
381
373
|
- EPL-1.0
|
382
374
|
metadata: {}
|
383
|
-
post_install_message:
|
375
|
+
post_install_message:
|
384
376
|
rdoc_options: []
|
385
377
|
require_paths:
|
386
378
|
- lib
|
@@ -395,9 +387,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
395
387
|
- !ruby/object:Gem::Version
|
396
388
|
version: '0'
|
397
389
|
requirements: []
|
398
|
-
|
399
|
-
|
400
|
-
signing_key:
|
390
|
+
rubygems_version: 3.1.4
|
391
|
+
signing_key:
|
401
392
|
specification_version: 4
|
402
393
|
summary: Client for calabash-android for automated functional testing on Android
|
403
394
|
test_files: []
|