calabash-android 0.9.8 → 0.9.14
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|