calabash-android 0.0.2 → 0.0.3

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.
data/bin/.DS_Store ADDED
Binary file
data/bin/calabash-android CHANGED
@@ -31,7 +31,7 @@ elsif cmd == 'gen'
31
31
  calabash_scaffold
32
32
  exit 0
33
33
  elsif cmd == 'setup'
34
- calabash_setup(ARGV)
34
+ calabash_setup
35
35
  exit 0
36
36
  elsif cmd == 'submit'
37
37
  calabash_submit(ARGV)
@@ -1,4 +1,6 @@
1
1
  def calabash_build(args)
2
+ run_setup_if_settings_does_not_exist
3
+
2
4
  @settings = JSON.parse(IO.read(".calabash_settings"))
3
5
  test_server_template_dir = File.join(File.dirname(__FILE__), '..', 'test-server')
4
6
 
@@ -17,10 +17,8 @@ def calabash_scaffold
17
17
  FileUtils.mv "#{@features_dir}/irb_android.sh", "."
18
18
 
19
19
  msg("Info") do
20
- #TODO Jonas
21
20
  puts "features subdirectory created. \n"
22
- puts "Try executing \n\nDEVICE=iphone OS=ios5 cucumber"
23
- puts "\n (replace ios5 with ios4 if running iOS 4.x simulator.\nReplace iphone with ipad if running iPad simulator.).\n"
21
+ puts "Try executing \n\ncalabash-android run"
24
22
  end
25
23
 
26
24
  end
@@ -9,7 +9,6 @@ def msg(title, &block)
9
9
  puts "-"*10 + "-------" + "-"*10 + "\n"
10
10
  end
11
11
 
12
- #TODO Jonas
13
12
  def print_usage
14
13
  puts <<EOF
15
14
  Usage: calabash-android <command-name> [parameters]
@@ -18,10 +17,13 @@ def print_usage
18
17
  prints more detailed help information.
19
18
  gen
20
19
  generate a features folder structure.
21
- setup
22
- setup your project for calabash
23
- submit [path] [secret] [opt_features path]?
24
- submits an apk and features folder to www.lesspainful.com
20
+ setup will ask you some questions about you application, development
21
+ environment and key store to user for signing.
22
+
23
+ build builds the test server that will be used when testing the app.
24
+ You need to run this command everytime you make changes to app.
25
+
26
+ run runs Cucumber in the current folder with the enviroment needed.
25
27
  EOF
26
28
  end
27
29
 
@@ -66,6 +68,34 @@ def calabash_submit(args)
66
68
  else
67
69
  puts result
68
70
  end
71
+ end
72
+
73
+
74
+ def run_build_if_test_server_does_not_exist
75
+ unless File.exists?(File.join(@support_dir, "Test.apk"))
76
+ puts "Could not find the test server"
77
+ puts "Should I run calabash-android build for you?"
78
+ puts "Please answer yes (y) or no (n)"
79
+ if ['yes', 'y'].include? STDIN.gets.chomp
80
+ calabash_build([])
81
+ else
82
+ puts "Please run: calabash-android build"
83
+ exit 1
84
+ end
85
+ end
86
+ end
69
87
 
88
+ def run_setup_if_settings_does_not_exist
89
+ unless File.exists?(".calabash_settings")
90
+ puts "Could not find .calabash_settings."
91
+ puts "Should I run calabash-android setup for you?"
92
+ puts "Please answer yes (y) or no (n)"
93
+ if ['yes', 'y'].include? STDIN.gets.chomp
94
+ calabash_setup
95
+ else
96
+ puts "Please run: calabash-android setup"
97
+ exit 1
98
+ end
99
+ end
70
100
  end
71
101
 
@@ -1,9 +1,7 @@
1
1
  def calabash_run(args)
2
- unless File.exists?(".calabash_settings")
3
- puts "Could not find .calabash_settings"
4
- puts "Please run: calabash-android setup"
5
- exit 1
6
- end
2
+ run_build_if_test_server_does_not_exist
3
+
4
+
7
5
  settings = JSON.parse(IO.read(".calabash_settings"))
8
6
 
9
7
  env ={"PACKAGE_NAME" => settings["package_name"],
@@ -1,30 +1,6 @@
1
1
  require "calabash-android/version"
2
2
 
3
- #TODO Jonas
4
- #require 'rexml/rexml'
5
- #require "rexml/document"
6
- #
7
- #
8
- #def detect_accessibility_support
9
- # dirs = Dir.glob(File.join(File.expand_path("~/Library"),"Application Support","iPhone Simulator","*.*","Library","Preferences"))
10
- # dirs.each do |sim_pref_dir|
11
- # fp = File.expand_path("#{sim_pref_dir}/com.apple.Accessibility.plist")
12
- # out = `defaults read "#{fp}" ApplicationAccessibilityEnabled`
13
- #
14
- # if not(File.exists?(fp)) || out.split("\n")[0] == "0"
15
- # msg("Warn") do
16
- # puts "Accessibility is not enabled for simulator: #{sim_pref_dir}"
17
- # puts "Enabled accessibility as described here:"
18
- # puts "https://github.com/calabash/calabash-android/wiki/01-Getting-started-guide"
19
- # puts "Alternatively run command:"
20
- # puts "calabash-android sim acc"
21
- # end
22
- # end
23
- #
24
- # end
25
- #end
26
- #
27
- def calabash_setup(args)
3
+ def calabash_setup
28
4
  unless File.exists?(ENV["ANDROID_HOME"] || "")
29
5
  puts "Please set ANDROID_HOME to point to the Android SDK"
30
6
  exit 1
@@ -62,51 +38,6 @@ def calabash_setup(args)
62
38
  f.puts @settings.to_json
63
39
  end
64
40
  puts "Saved your settings to .calabash_settings. You can edit the settings manually or run this setup script again"
65
-
66
- #TODO Jonas
67
- # puts "Checking if Xcode is running..."
68
- # res = `ps x -o pid,command | grep -v grep | grep Xcode.app/Contents/MacOS/Xcode`
69
- # if res==""
70
- # puts "Xcode not running."
71
- # project_name, project_path, xpath = find_project_files(args)
72
- # setup_project(project_name, project_path, xpath)
73
- #
74
- # detect_accessibility_support
75
- #
76
- # msg("Setup done") do
77
- #
78
- # puts "Please validate by running the -cal target"
79
- # puts "from Xcode."
80
- # puts "When starting the iOS Simulator using the"
81
- # puts "new -cal target, you should see:\n\n"
82
- # puts ' "Started LPHTTP server on port 37265"'
83
- # puts "\nin the application log in Xcode."
84
- # puts "\n\n"
85
- # puts "After validating, you can generate a features folder:"
86
- # puts "Go to your project (the dir containing the .xcodeproj file)."
87
- # puts "Then run calabash-android gen"
88
- # puts "(if you don't already have a features folder)."
89
- # end
90
- #
91
- # else
92
- # puts "Xcode is running. We'll be changing the project file so we'd better stop it."
93
- # puts "Shall I stop Xcode? Please answer yes (y) or no (n)"
94
- # answer = STDIN.gets.chomp
95
- # if (answer == 'yes' or answer == 'y')
96
- # res.split("\n").each do |line|
97
- # pid = line.split(" ")[0]
98
- # if system("kill #{pid}")
99
- # puts "Stopped XCode. Retrying... "
100
- # calabash_setup(args)
101
- # else
102
- # puts "Killing Xcode seemed to fail :( Aborting..."
103
- # end
104
- # end
105
- # else
106
- # puts "Please stop Xcode and try again."
107
- # exit(0)
108
- # end
109
- # end
110
41
  end
111
42
 
112
43
  def ask_for_setting(key, msg)
@@ -116,277 +47,4 @@ end
116
47
 
117
48
  def platform_versions
118
49
  Dir["#{ENV["ANDROID_HOME"]}/platforms/android-*"].collect{|platform| platform.split("-").last.to_i}.sort
119
- end
120
-
121
-
122
- #
123
- #def find_project_files(args)
124
- # dir_to_search, project_files = ensure_correct_path(args)
125
- #
126
- # xc_project_file = project_files[0]
127
- # project_name = xc_project_file.split(".xcodeproj")[0]
128
- # puts "Found Project: #{project_name}"
129
- # pbx_dir = "#{dir_to_search}/#{xc_project_file}"
130
- # pbx_files = Dir.foreach(pbx_dir).find_all { |x| /\.pbxproj$/.match(x) }
131
- # if pbx_files.empty?
132
- # puts "Found no *.pbxproj files in dir #{xc_project_file}."
133
- # puts "Please setup calabash manually."
134
- # exit 1
135
- # elsif pbx_files.count > 1
136
- # puts "Found several *.pbxproj files in dir #{xc_project_file}."
137
- # puts "Found: #{pbx_files.join("\n")}"
138
- # puts "We don't yet support this. Please setup calabash manually."
139
- # exit 1
140
- # end
141
- #
142
- # return project_name, dir_to_search, File.expand_path("#{dir_to_search}/#{xc_project_file}")
143
- #end
144
- #
145
- #def calabash_download(args)
146
- # download_calabash(File.expand_path("."))
147
- #end
148
- #
149
- #def has_proxy?
150
- # ENV['http_proxy'] ? true : false
151
- #end
152
- #
153
- #def proxy
154
- # url_parts = URI.split(ENV['http_proxy'])
155
- # [url_parts[2], url_parts[3]]
156
- #end
157
- #
158
- #def download_calabash(project_path)
159
- # file = 'calabash.framework'
160
- # ##Download calabash.framework
161
- # if not File.directory?(File.join(project_path, file))
162
- # msg("Info") do
163
- # zip_file = "calabash.framework-#{ENV['FRAMEWORK_VERSION']||Calabash::Android::FRAMEWORK_VERSION}.zip"
164
- # puts "Did not find calabash.framework. I'll download it...'"
165
- # puts "http://cloud.github.com/downloads/calabash/calabash-android/#{zip_file}"
166
- # require 'uri'
167
- #
168
- # uri = URI.parse "http://cloud.github.com/downloads/calabash/calabash-android/#{zip_file}"
169
- # success = false
170
- # if has_proxy?
171
- # proxy_url = proxy
172
- # connection = Net::HTTP::Proxy(proxy_url[0], proxy_url[1])
173
- # else
174
- # connection = Net::HTTP
175
- # end
176
- # connection.start(uri.host, uri.port) do |http|
177
- # request = Net::HTTP::Get.new uri.request_uri
178
- #
179
- # http.request request do |response|
180
- # if response.code == '200'
181
- # open zip_file, 'wb' do |io|
182
- # response.read_body do |chunk|
183
- # print "."
184
- # io.write chunk
185
- # end
186
- # end
187
- # success = true
188
- # else
189
- # puts "Got bad response code #{response.code}."
190
- # puts "Aborting..."
191
- # end
192
- # end
193
- # end
194
- # if success
195
- # puts "\nDownload done: #{file}. Unzipping..."
196
- # if not system("unzip -C -K -o -q -d #{project_path} #{zip_file}")
197
- # msg("Error") do
198
- # puts "Unable to unzip file: #{zip_file}"
199
- # puts "You must install manually."
200
- # end
201
- # exit 1
202
- # end
203
- # FileUtils.rm(zip_file)
204
- # else
205
- # exit 0
206
- # end
207
- # end
208
- # else
209
- # msg("Info") do
210
- # puts "Found calabash.framework in #{File.expand_path(project_path)}."
211
- # puts "Shall I delete it and download the latest matching version?"
212
- # puts "Please answer yes (y) or no (n)"
213
- # answer = STDIN.gets.chomp
214
- # if (answer == 'yes' or answer == 'y')
215
- # FileUtils.rm_r File.join(project_path, file)
216
- # return download_calabash(project_path)
217
- # else
218
- # puts "Not downloading..."
219
- # end
220
- # end
221
- # end
222
- # file
223
- #end
224
- #
225
- #def setup_project(project_name, project_path, path)
226
- # ##Ensure exists and parse
227
- # proj_file = "#{path}/project.pbxproj"
228
- # if not File.exists?(proj_file)
229
- # msg("Error") do
230
- # puts "Directory #{path} doesn't contain #{proj_file}"
231
- # end
232
- # exit 1
233
- # end
234
- #
235
- # pwd = FileUtils.pwd
236
- # FileUtils.cd project_path
237
- # ##Backup
238
- # if File.exists? "#{proj_file}.bak"
239
- # msg("Error") do
240
- # puts "Backup file already exists. #{proj_file}.bak"
241
- # puts "For safety, I won't overwrite this file."
242
- # puts "You must manually move this file, if you want to"
243
- # puts "Run calabash-android setup again."
244
- # end
245
- # exit 1
246
- # end
247
- #
248
- # file = download_calabash(project_path)
249
- #
250
- # msg("Info") do
251
- # puts "Setting up project file for calabash-android."
252
- # end
253
- #
254
- #
255
- # FileUtils.cd pwd
256
- #
257
- # ##Backup
258
- # msg("Info") do
259
- # puts "Making backup of project file: #{proj_file}"
260
- # FileUtils.cp(proj_file, "#{proj_file}.bak")
261
- # puts "Saved as #{proj_file}.bak"
262
- # end
263
- #
264
- # path_to_setup = File.join(File.dirname(__FILE__), 'CalabashSetup')
265
- # setup_cmd = %Q[#{path_to_setup} "#{path}" "#{project_name}"]
266
- # system(setup_cmd)
267
- #
268
- #end
269
- #
270
- #
271
- #
272
- #require 'calabash-android/launch/simulator_helper'
273
- #def validate_setup(args)
274
- # if args.length > 0
275
- # if args[0].end_with?(".ipa")
276
- # validate_ipa(args[0])
277
- # elsif args[0].end_with?(".app")
278
- # validate_app(args[0])
279
- # else
280
- # msg("Error") do
281
- # puts "File should end with .app or .ipa"
282
- # end
283
- # exit 1
284
- # end
285
- # else
286
- # dd_dir = Calabash::Android::SimulatorHelper.derived_data_dir_for_project
287
- # if not dd_dir
288
- # puts "Unable to find iOS project."
289
- # puts "You should run this command from an iOS project directory."
290
- # exit 1
291
- # end
292
- # app_bundles = Dir.glob(File.join(dd_dir, "Build", "Products", "*", "*.app"))
293
- # sim_dirs = Dir.glob(File.join(dd_dir, "Build", "Products", "Debug-iphonesimulator", "*.app"))
294
- # sim_dirs = sim_dirs.concat(Dir.glob(File.join(dd_dir, "Build", "Products", "Calabash-iphonesimulator", "*.app")))
295
- # if sim_dirs.empty?
296
- # msg = ["Have you built your app for simulator?"]
297
- # msg << "You should build the -cal target and your normal target"
298
- # msg << "(with configuration Debug)."
299
- # msg << "Searched dir: #{dd_dir}/Build/Products"
300
- # msg("Error") do
301
- # puts msg.join("\n")
302
- # end
303
- # exit 1
304
- # elsif sim_dirs.count != 2
305
- # msg = ["Have you built your app for simulator?"]
306
- # msg << "You should build the -cal target and your normal target"
307
- # msg << "(with configuration Debug)."
308
- # msg << "Searched dir: #{dd_dir}/Build/Products"
309
- # msg("Error") do
310
- # puts msg.join("\n")
311
- # end
312
- # exit 1
313
- # end
314
- # out_debug = `otool "#{sim_dirs[0]}"/* -o 2> /dev/null | grep CalabashServer`
315
- # out_cal = `otool "#{sim_dirs[1]}"/* -o 2> /dev/null | grep CalabashServer 2> /dev/null`
316
- # ok = (not /CalabashServer/.match(out_debug)) and /CalabashServer/.match(out_cal)
317
- # if ok
318
- # msg("OK") do
319
- # puts "Your configuration seems ok."
320
- # puts "app in directory:"
321
- # puts sim_dirs[0]
322
- # puts "does not have calabash.framework linked in."
323
- # puts "directory:"
324
- # puts sim_dirs[1]
325
- # puts "does."
326
- # end
327
- # else
328
- # msg("Fail") do
329
- # puts "Your configuration looks bad."
330
- # if (not /CalabashServer/.match(out_debug))
331
- # puts "WARNING: You Debug build seems to be linking with Calabash."
332
- # puts "You should restore your xcodeproject file from backup."
333
- # else
334
- # puts "app in directory"
335
- # puts sim_dirs[1]
336
- # puts "does not have calabash.framework linked in."
337
- # end
338
- # end
339
- # end
340
- # end
341
- #
342
- #
343
- #end
344
- #
345
- #def validate_ipa(ipa)
346
- # require 'tmpdir'
347
- # fail = false
348
- # Dir.mktmpdir do |dir|
349
- # if not system("unzip -C -K -o -q -d #{dir} #{ipa}")
350
- # msg("Error") do
351
- # puts "Unable to unzip ipa: #{ipa}"
352
- # end
353
- # Dir
354
- # fail = true
355
- # end
356
- #
357
- # app_dir = Dir.foreach("#{dir}/Payload").find {|d| /\.app$/.match(d)}
358
- # app = app_dir.split(".")[0]
359
- # res = `otool "#{File.expand_path(dir)}/Payload/#{app_dir}/#{app}" -o 2> /dev/null | grep CalabashServer`
360
- # msg("Info") do
361
- # if /CalabashServer/.match(res)
362
- # puts "Ipa: #{ipa} *contains* calabash.framework"
363
- # else
364
- # puts "Ipa: #{ipa} *does not contain* calabash.framework"
365
- # end
366
- # end
367
- #
368
- # end
369
- # if fail
370
- # exit(1)
371
- # end
372
- #
373
- #end
374
- #
375
- #def validate_app(app)
376
- # if not File.directory?app
377
- # msg("Error") do
378
- # puts "Path: #{app} is not a directory."
379
- # end
380
- # exit 1
381
- # end
382
- # out = `otool "#{File.expand_path(app)}"/* -o 2> /dev/null | grep CalabashServer`
383
- #
384
- # msg("Info") do
385
- # if /CalabashServer/.match(out)
386
- # puts "App: #{app} *contains* calabash.framework"
387
- # else
388
- # puts "App: #{app} *does not contain* calabash.framework"
389
- # end
390
- # end
391
- #
392
- #end
50
+ end
@@ -1,4 +1,3 @@
1
- #TODO Jonas
2
1
  Usage: calabash-android <command-name> [parameters]
3
2
  <command-name> can be one of
4
3
  help
@@ -18,4 +17,4 @@ Usage: calabash-android <command-name> [parameters]
18
17
  build builds the test server that will be used when testing the app.
19
18
  You need to run this command everytime you make changes to app.
20
19
 
21
- run runs cucumber in the current folder with the enviroment needed.
20
+ run runs Cucumber in the current folder with the enviroment needed.
@@ -1,6 +1,6 @@
1
1
  module Calabash
2
2
  module Android
3
- VERSION = "0.0.2"
4
- FRAMEWORK_VERSION = "0.0.2"
3
+ VERSION = "0.0.3"
4
+ FRAMEWORK_VERSION = "0.0.3"
5
5
  end
6
6
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: calabash-android
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.2
5
+ version: 0.0.3
6
6
  platform: ruby
7
7
  authors:
8
8
  - Jonas Maturana Larsen
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2012-04-27 00:00:00 -03:00
13
+ date: 2012-04-30 00:00:00 -03:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -61,6 +61,7 @@ files:
61
61
  - Gemfile
62
62
  - LICENSE
63
63
  - Rakefile
64
+ - bin/.DS_Store
64
65
  - bin/calabash-android
65
66
  - bin/calabash-android-build.rb
66
67
  - bin/calabash-android-generate.rb