xamarin-test-cloud-appium 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,27 @@
1
+ require 'retriable'
2
+ require 'retriable/version' # needed in 1.x. In 2.x auto required.
3
+
4
+ module XamarinTestCloud
5
+ # A class to bridge the gap between retriable 1.x and 2.0.
6
+ class RetriableOptions
7
+
8
+ def self.retriable_version
9
+ parts = Retriable::VERSION.split('.')
10
+ {
11
+ :major => parts[0] ? parts[0].to_i : nil,
12
+ :minor => parts[1] ? parts[1].to_i : nil,
13
+ :patch => parts[2] ? parts[2].to_i : nil
14
+ }
15
+ end
16
+
17
+ def self.tries_and_interval(tries, interval)
18
+ version = self.retriable_version[:major]
19
+ if version >= 2
20
+ {:intervals => Array.new(tries, interval)}
21
+ else
22
+ {:tries => tries, :interval => interval}
23
+ end
24
+ end
25
+ end
26
+ end
27
+
@@ -0,0 +1,3 @@
1
+ module XamarinTestCloud
2
+ VERSION = '1.1.1'
3
+ end
@@ -0,0 +1 @@
1
+ require 'calabash-cucumber/calabash_steps'
@@ -0,0 +1,4 @@
1
+ Given /^I am on the Welcome Screen$/ do
2
+ element_exists("view")
3
+ sleep(STEP_PAUSE)
4
+ end
@@ -0,0 +1 @@
1
+ require 'calabash-cucumber/cucumber'
File without changes
@@ -0,0 +1,77 @@
1
+ ########################################
2
+ # #
3
+ # Important Note #
4
+ # #
5
+ # When running calabash-ios tests at #
6
+ # www.xamarin-test-cloud.com #
7
+ # this file will be overwritten by #
8
+ # a file which automates #
9
+ # app launch on devices. #
10
+ # #
11
+ # Don't rely on this file being #
12
+ # present when running at #
13
+ # www.xamarin-test-cloud.com. #
14
+ # #
15
+ # Only put stuff here to automate #
16
+ # iOS Simulator. #
17
+ # #
18
+ # You can put your app bundle path #
19
+ # for automating simulator app start: #
20
+ # Uncomment APP_BUNDLE_PATH =.. #
21
+ # #
22
+ ########################################
23
+
24
+ require 'calabash-cucumber/launch/simulator_helper'
25
+ require 'sim_launcher'
26
+
27
+ # Uncomment and replace ?? appropriately
28
+ # This should point to your Simulator build
29
+ # which includes calabash framework
30
+ # this is usually the Calabash build configuration
31
+ # of your production target.
32
+ #APP_BUNDLE_PATH = "~/Library/Developer/Xcode/DerivedData/??/Build/Products/Calabash-iphonesimulator/??.app"
33
+ #
34
+
35
+ def reset_app_jail(sdk, app_path)
36
+ app = File.basename(app_path)
37
+ bundle = `find "#{ENV['HOME']}/Library/Application Support/iPhone Simulator/#{sdk}/Applications/" -type d -depth 2 -name #{app} | head -n 1`
38
+ return if bundle.empty? # Assuming we're already clean
39
+
40
+ sandbox = File.dirname(bundle)
41
+ ['Library', 'Documents', 'tmp'].each do |dir|
42
+ FileUtils.rm_rf(File.join(sandbox, dir))
43
+ end
44
+ end
45
+
46
+ def relaunch
47
+ if ENV['NO_LAUNCH']!="1"
48
+ sdk = ENV['SDK_VERSION'] || SimLauncher::SdkDetector.new().latest_sdk_version
49
+ path = Calabash::Cucumber::SimulatorHelper.app_bundle_or_raise(app_path)
50
+ if ENV['RESET_BETWEEN_SCENARIOS']=="1"
51
+ reset_app_jail(sdk, path)
52
+ end
53
+
54
+ Calabash::Cucumber::SimulatorHelper.relaunch(path,sdk,ENV['DEVICE'] || 'iphone')
55
+ end
56
+ end
57
+
58
+ def app_path
59
+ ENV['APP_BUNDLE_PATH'] || (defined?(APP_BUNDLE_PATH) && APP_BUNDLE_PATH)
60
+ end
61
+
62
+ def calabash_notify
63
+ if self.respond_to?(:on_launch)
64
+ self.on_launch
65
+ end
66
+ end
67
+
68
+ Before do |scenario|
69
+ relaunch
70
+ calabash_notify
71
+ end
72
+
73
+ at_exit do
74
+ if ENV['NO_LAUNCH']!="1" and ENV['NO_STOP']!="1"
75
+ Calabash::Cucumber::SimulatorHelper.stop
76
+ end
77
+ end
@@ -0,0 +1,72 @@
1
+ require 'test/unit'
2
+ require 'thor'
3
+ require 'fileutils'
4
+ require 'xamarin-test-cloud/cli'
5
+ require 'bundler'
6
+
7
+ class TestParser < Test::Unit::TestCase
8
+ def test_should_raise_if_no_app_or_api_key_is_given
9
+ config_options = {
10
+ 'devices' => "aa59649c",
11
+ }
12
+ script = XamarinTestCloud::CLI.new([], config_options)
13
+ assert_raise Thor::InvocationError do
14
+ script.invoke(:submit)
15
+ end
16
+
17
+ script = XamarinTestCloud::CLI.new(["test/ipa/2012 Olympics_cal.ipa"], config_options)
18
+ assert_raise Thor::InvocationError do
19
+ script.invoke(:submit)
20
+ end
21
+
22
+ end
23
+
24
+ def test_should_raise_if_app_is_not_file_ipa_or_apk
25
+ config_options = {
26
+ 'devices' => "aa59649c",
27
+ }
28
+
29
+ script = XamarinTestCloud::CLI.new(["test/ipa/NONE_EXIST_2012 Olympics_cal.ipa","JIFZCTPZJJXJLEKMMYRY"], config_options)
30
+
31
+ assert_raise XamarinTestCloud::ValidationError do
32
+ script.invoke(:submit)
33
+ end
34
+
35
+ script = XamarinTestCloud::CLI.new(["test/ipa/features.zip","JIFZCTPZJJXJLEKMMYRY"], config_options)
36
+
37
+ assert_raise XamarinTestCloud::ValidationError do
38
+ script.invoke(:submit)
39
+ end
40
+ end
41
+
42
+ def test_should_parse_all_configuration_options
43
+ Bundler.with_clean_env do
44
+ FileUtils.rm_f(File.join("test","vendor"))
45
+ FileUtils.rm_f(File.join("test","Gemfile"))
46
+ FileUtils.rm_f(File.join("test","Gemfile.lock"))
47
+
48
+ config_options = {
49
+ :host => "http://localhost:8080",
50
+ :workspace => "test/ipa",
51
+ :features => "test/ipa/features.zip",
52
+ :config => "test/config/cucumber.yml",
53
+ :profile => "a",
54
+ 'devices' => "aa59649c",
55
+ "skip-check" => false,
56
+ "reset-between-scenarios" => false,
57
+ "dry-run" => true
58
+ }
59
+ script = XamarinTestCloud::CLI.new(["test/ipa/2012 Olympics_cal.ipa","JIFZCTPZJJXJLEKMMYRY"],config_options)
60
+
61
+
62
+ script.invoke(:submit)
63
+
64
+ FileUtils.rm_f(File.join("test","vendor","cache"))
65
+ FileUtils.rm_f(File.join("test","Gemfile"))
66
+ FileUtils.rm_f(File.join("test","Gemfile.lock"))
67
+ end
68
+
69
+ end
70
+ end
71
+
72
+ end
metadata ADDED
@@ -0,0 +1,315 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: xamarin-test-cloud-appium
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Karl Krukow
8
+ - Jonas Maturana Larsen
9
+ - Søren Skovsbøll
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2016-06-17 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: thor
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - ">="
20
+ - !ruby/object:Gem::Version
21
+ version: 0.18.1
22
+ - - "<"
23
+ - !ruby/object:Gem::Version
24
+ version: '1.0'
25
+ type: :runtime
26
+ prerelease: false
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ requirements:
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ version: 0.18.1
32
+ - - "<"
33
+ - !ruby/object:Gem::Version
34
+ version: '1.0'
35
+ - !ruby/object:Gem::Dependency
36
+ name: bundler
37
+ requirement: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: 1.3.0
42
+ - - "<"
43
+ - !ruby/object:Gem::Version
44
+ version: '2.0'
45
+ type: :runtime
46
+ prerelease: false
47
+ version_requirements: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - ">="
50
+ - !ruby/object:Gem::Version
51
+ version: 1.3.0
52
+ - - "<"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: json
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.8'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.8'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubyzip
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1.1'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.1'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rest-client
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.6'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.6'
97
+ - !ruby/object:Gem::Dependency
98
+ name: mime-types
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "<"
102
+ - !ruby/object:Gem::Version
103
+ version: '2.0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "<"
109
+ - !ruby/object:Gem::Version
110
+ version: '2.0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: retriable
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: 1.3.3.1
118
+ - - "<"
119
+ - !ruby/object:Gem::Version
120
+ version: '2.1'
121
+ type: :runtime
122
+ prerelease: false
123
+ version_requirements: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - ">="
126
+ - !ruby/object:Gem::Version
127
+ version: 1.3.3.1
128
+ - - "<"
129
+ - !ruby/object:Gem::Version
130
+ version: '2.1'
131
+ - !ruby/object:Gem::Dependency
132
+ name: rake
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: '10.3'
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '10.3'
145
+ - !ruby/object:Gem::Dependency
146
+ name: test-unit
147
+ requirement: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - "~>"
150
+ - !ruby/object:Gem::Version
151
+ version: 3.0.9
152
+ type: :development
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - "~>"
157
+ - !ruby/object:Gem::Version
158
+ version: 3.0.9
159
+ - !ruby/object:Gem::Dependency
160
+ name: rspec
161
+ requirement: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - "~>"
164
+ - !ruby/object:Gem::Version
165
+ version: '3.0'
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - "~>"
171
+ - !ruby/object:Gem::Version
172
+ version: '3.0'
173
+ - !ruby/object:Gem::Dependency
174
+ name: guard-rspec
175
+ requirement: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - "~>"
178
+ - !ruby/object:Gem::Version
179
+ version: '4.3'
180
+ type: :development
181
+ prerelease: false
182
+ version_requirements: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - "~>"
185
+ - !ruby/object:Gem::Version
186
+ version: '4.3'
187
+ - !ruby/object:Gem::Dependency
188
+ name: guard-bundler
189
+ requirement: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - "~>"
192
+ - !ruby/object:Gem::Version
193
+ version: '2.0'
194
+ type: :development
195
+ prerelease: false
196
+ version_requirements: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - "~>"
199
+ - !ruby/object:Gem::Version
200
+ version: '2.0'
201
+ - !ruby/object:Gem::Dependency
202
+ name: growl
203
+ requirement: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - "~>"
206
+ - !ruby/object:Gem::Version
207
+ version: '1.0'
208
+ type: :development
209
+ prerelease: false
210
+ version_requirements: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - "~>"
213
+ - !ruby/object:Gem::Version
214
+ version: '1.0'
215
+ - !ruby/object:Gem::Dependency
216
+ name: stub_env
217
+ requirement: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - ">="
220
+ - !ruby/object:Gem::Version
221
+ version: 1.0.1
222
+ - - "<"
223
+ - !ruby/object:Gem::Version
224
+ version: '2.0'
225
+ type: :development
226
+ prerelease: false
227
+ version_requirements: !ruby/object:Gem::Requirement
228
+ requirements:
229
+ - - ">="
230
+ - !ruby/object:Gem::Version
231
+ version: 1.0.1
232
+ - - "<"
233
+ - !ruby/object:Gem::Version
234
+ version: '2.0'
235
+ - !ruby/object:Gem::Dependency
236
+ name: pry
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: pry-nav
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
+ description: Xamarin Test Cloud lets you automatically test your app on hundreds of
264
+ mobile devices
265
+ email:
266
+ - karl@xamarin.com
267
+ - jonas@xamarin.com
268
+ - soskovsb@microsoft.com
269
+ executables:
270
+ - test-cloud-appium
271
+ extensions: []
272
+ extra_rdoc_files: []
273
+ files:
274
+ - README.md
275
+ - bin/test-cloud-appium
276
+ - lib/xamarin-test-cloud-appium/cli.rb
277
+ - lib/xamarin-test-cloud-appium/retriable_options.rb
278
+ - lib/xamarin-test-cloud-appium/version.rb
279
+ - test/ipa/features/step_definitions/calabash_steps.rb
280
+ - test/ipa/features/step_definitions/my_first_steps.rb
281
+ - test/ipa/features/support/env.rb
282
+ - test/ipa/features/support/hooks.rb
283
+ - test/ipa/features/support/launch.rb
284
+ - test/test_parser.rb
285
+ homepage: http://xamarin.com/test-cloud
286
+ licenses: []
287
+ metadata: {}
288
+ post_install_message:
289
+ rdoc_options: []
290
+ require_paths:
291
+ - lib
292
+ required_ruby_version: !ruby/object:Gem::Requirement
293
+ requirements:
294
+ - - ">="
295
+ - !ruby/object:Gem::Version
296
+ version: '0'
297
+ required_rubygems_version: !ruby/object:Gem::Requirement
298
+ requirements:
299
+ - - ">="
300
+ - !ruby/object:Gem::Version
301
+ version: '0'
302
+ requirements: []
303
+ rubyforge_project:
304
+ rubygems_version: 2.4.8
305
+ signing_key:
306
+ specification_version: 4
307
+ summary: Command-line interface to Xamarin Test Cloud Appium
308
+ test_files:
309
+ - test/ipa/features/step_definitions/calabash_steps.rb
310
+ - test/ipa/features/step_definitions/my_first_steps.rb
311
+ - test/ipa/features/support/env.rb
312
+ - test/ipa/features/support/hooks.rb
313
+ - test/ipa/features/support/launch.rb
314
+ - test/test_parser.rb
315
+ has_rdoc: