calabash 2.0.0.pre2 → 2.0.0.pre3

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.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -26
  3. data/lib/calabash/android/adb.rb +9 -0
  4. data/lib/calabash/android/build/builder.rb +2 -0
  5. data/lib/calabash/android/build/java_keystore.rb +10 -0
  6. data/lib/calabash/android/build/resigner.rb +4 -0
  7. data/lib/calabash/android/build/test_server.rb +2 -0
  8. data/lib/calabash/android/defaults.rb +1 -0
  9. data/lib/calabash/android/device.rb +18 -0
  10. data/lib/calabash/android/interactions.rb +2 -0
  11. data/lib/calabash/android/lib/TestServer.apk +0 -0
  12. data/lib/calabash/android/life_cycle.rb +1 -0
  13. data/lib/calabash/android/physical_buttons.rb +8 -0
  14. data/lib/calabash/android/screenshot.rb +1 -0
  15. data/lib/calabash/android/server.rb +1 -0
  16. data/lib/calabash/android/text.rb +1 -0
  17. data/lib/calabash/cli/build.rb +1 -0
  18. data/lib/calabash/cli/console.rb +2 -0
  19. data/lib/calabash/cli/generate.rb +3 -0
  20. data/lib/calabash/cli/helpers.rb +6 -0
  21. data/lib/calabash/cli/resign.rb +1 -0
  22. data/lib/calabash/cli/run.rb +2 -0
  23. data/lib/calabash/cli/setup_keystore.rb +2 -0
  24. data/lib/calabash/color.rb +7 -0
  25. data/lib/calabash/defaults.rb +1 -0
  26. data/lib/calabash/device.rb +2 -0
  27. data/lib/calabash/environment.rb +1 -0
  28. data/lib/calabash/http/retriable_client.rb +2 -0
  29. data/lib/calabash/interactions.rb +1 -0
  30. data/lib/calabash/ios/conditions.rb +3 -0
  31. data/lib/calabash/ios/date_picker.rb +412 -0
  32. data/lib/calabash/ios/defaults.rb +1 -0
  33. data/lib/calabash/ios/device/device_implementation.rb +5 -1
  34. data/lib/calabash/ios/device/ipad_1x_2x_mixin.rb +253 -0
  35. data/lib/calabash/ios/device/keyboard_mixin.rb +2 -0
  36. data/lib/calabash/ios/device/rotation_mixin.rb +1 -0
  37. data/lib/calabash/ios/device/routes/condition_route_mixin.rb +1 -0
  38. data/lib/calabash/ios/device/routes/map_route_mixin.rb +1 -0
  39. data/lib/calabash/ios/device/routes/response_parser.rb +1 -0
  40. data/lib/calabash/ios/device/routes/uia_route_mixin.rb +44 -6
  41. data/lib/calabash/ios/device/text_mixin.rb +2 -0
  42. data/lib/calabash/ios/device/uia_keyboard_mixin.rb +9 -0
  43. data/lib/calabash/ios/device/uia_mixin.rb +1 -0
  44. data/lib/calabash/ios/device.rb +1 -0
  45. data/lib/calabash/ios/interactions.rb +30 -1
  46. data/lib/calabash/ios/runtime.rb +8 -0
  47. data/lib/calabash/ios.rb +2 -0
  48. data/lib/calabash/life_cycle.rb +19 -2
  49. data/lib/calabash/location.rb +2 -0
  50. data/lib/calabash/page.rb +13 -0
  51. data/lib/calabash/patch.rb +1 -0
  52. data/lib/calabash/utility.rb +4 -4
  53. data/lib/calabash/version.rb +1 -1
  54. data/lib/calabash/wait.rb +4 -0
  55. data/lib/calabash.rb +6 -4
  56. metadata +113 -112
  57. data/lib/calabash/android/scroll.rb +0 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 819df5d6b1278e724b9cbf4696f96a1ffe75557c
4
- data.tar.gz: 1ed7899450830880d379bf2f1ee5cd2e8f98bbbe
3
+ metadata.gz: 99f4bb2a90e0b3d0e826f6afe73b213a36e984e0
4
+ data.tar.gz: 2056799cd44ee3504b986351da16bb834f72e382
5
5
  SHA512:
6
- metadata.gz: 2b0bf17b2a8965ffe07883a4c371a4f9d14dbad9b824b3547bd3d490bb02b117b66da057cb868bc30d2b5dced1e97066991aef1ee3a9edfa31b390e25c6600ff
7
- data.tar.gz: 25db11e28ba856c6cf3e7646173e483793172c80fd0bcbbd71dd65c7e3d70f7cd610ce04e6bb3e60ed0674f8d2dad304f2ff3b01d3ebfc7d14265fb74b62a518
6
+ metadata.gz: 1ba0e8c86de9a8682affd9712cbfc4d7b50bf472bc285c8375e210ae5f99146910f6229ff140cc316ab6dea697ecfbc0bc75e415f750b8706940981080bfa2a1
7
+ data.tar.gz: 2a71fcf01eb79e7cb15d294a70b7cd9ba42111c09ef82966e4b9d7522221e7b726df29483683b6ef6640412b75f2e2edc80c0e4084567d57a02b1a1c68102140
data/README.md CHANGED
@@ -27,8 +27,6 @@ $ rake -T
27
27
  rake android:build # Build the Android test server
28
28
  rake build # Build calabash-1.9.9.pre2.gem into the pkg directory
29
29
  rake ctags # Generate ctags in ./git/tags
30
- rake cucumber:android # Run Android cucumber tests
31
- rake cucumber:ios # Run iOS cucumber tests
32
30
  rake install # Build and install calabash-1.9.9.pre2.gem into system gems
33
31
  rake release # Create tag v1.9.9.pre2 and build and push calabash-1.9.9.pre2.gem to Rubygems
34
32
  rake spec # Run RSpec code examples
@@ -63,28 +61,5 @@ $ be cucumber
63
61
 
64
62
  ### Cucumber iOS
65
63
 
66
- ```
67
- $ cd cucumber/ios
68
- $ bundle update
69
- $ rake ensure_app # Optional. See note below.
70
- $ be cucumber
71
- ```
72
-
73
- The rake task `ensure_app` checks the `cucumber/ios` directory for
74
- CalSmoke-cal.app. If it exists, it will do nothing. If it does not exist,
75
- it will pull the latest sources from the CalSmoke repo, build the
76
- CalSmoke-cal.app from the master branch, and install it in the
77
- `cucumber/ios` directory.
78
-
79
- If you want to use a different CalSmoke-cal.app, drop it into `cucumber/ios`
80
- or call cucumber with `CAL\_APP` set.
81
-
82
- ```
83
- $ CAL_APP=/path/to/your/CalSmoke-cal.app be cucumber
84
- ```
85
-
86
- The rake task `ensure_ipa` does the same thing, but for the CalSmoke-cal.ipa.
87
-
88
- Testing against physical devices requires that you have ideviceinstaller
89
- installed in /usr/local/bin/ideviceinstaller.
64
+ See `cucumber/ios/README.md`.
90
65
 
@@ -17,8 +17,10 @@ module Calabash
17
17
  end
18
18
  end
19
19
 
20
+ # @!visibility private
20
21
  PROCESS_WAIT_TIME = 10
21
22
 
23
+ # @!visibility private
22
24
  def self.open_pipe_with_timeout(timeout, *cmd, &block)
23
25
  begin
24
26
  i, o, e, t, pid = nil
@@ -52,6 +54,7 @@ module Calabash
52
54
  end
53
55
  end
54
56
 
57
+ # @!visibility private
55
58
  def self.open_adb_pipe(*cmd, **options, &block)
56
59
  timeout = options.fetch(:timeout, PROCESS_WAIT_TIME)
57
60
 
@@ -60,8 +63,10 @@ module Calabash
60
63
  end
61
64
  end
62
65
 
66
+ # @!visibility private
63
67
  DAEMON_STARTED_MESSAGE = "* daemon not running. starting it now on port 5037 *\n* daemon started successfully *\n"
64
68
 
69
+ # @!visibility private
65
70
  def self.command(*cmd, **args)
66
71
  Logger.debug("ADB Command: #{cmd.join(', ')}")
67
72
  Logger.debug("ADB input: #{args[:input]}")
@@ -121,10 +126,12 @@ module Calabash
121
126
 
122
127
  attr_reader :serial
123
128
 
129
+ # @!visibility private
124
130
  def initialize(serial)
125
131
  @serial = serial
126
132
  end
127
133
 
134
+ # @!visibility private
128
135
  def command(*argv, **args)
129
136
  cmd = argv.dup
130
137
 
@@ -135,8 +142,10 @@ module Calabash
135
142
  ADB.command(*cmd, args)
136
143
  end
137
144
 
145
+ # @!visibility private
138
146
  END_STRING = '__CAL_END__'
139
147
 
148
+ # @!visibility private
140
149
  def shell(shell_cmd, options={})
141
150
  if shell_cmd.nil? || shell_cmd.empty?
142
151
  raise ArgumentError, "Invalid shell command '#{shell_cmd}'"
@@ -16,6 +16,7 @@ module Calabash
16
16
  end
17
17
  end
18
18
 
19
+ # @!visibility private
19
20
  def build
20
21
  apk_fingerprint = fingerprint_from_apk
21
22
  @logger.log "#{@application_path} was signed with a certificate with fingerprint #{apk_fingerprint}", :debug
@@ -83,6 +84,7 @@ module Calabash
83
84
  @logger.log "Done signing the test server. Moved it to #{test_server_file_name}"
84
85
  end
85
86
 
87
+ # @!visibility private
86
88
  def fingerprint_from_apk
87
89
  application_path = File.expand_path(@application_path)
88
90
 
@@ -5,6 +5,7 @@ module Calabash
5
5
  module Build
6
6
  # @!visibility private
7
7
  class JavaKeystore
8
+ # @!visibility private
8
9
  CALABASH_KEYSTORE_SETTINGS_FILENAME = 'calabash_keystore_settings.json'
9
10
 
10
11
  attr_reader :errors, :location, :keystore_alias, :store_password
@@ -68,6 +69,7 @@ module Calabash
68
69
  @logger.log "Signature algorithm name: #{signature_algorithm_name}", :debug
69
70
  end
70
71
 
72
+ # @!visibility private
71
73
  def sign_apk(apk_path, dest_path)
72
74
  raise "Cannot sign with a miss configured keystore" if errors
73
75
  raise "No such file: #{apk_path}" unless File.exists?(apk_path)
@@ -86,6 +88,7 @@ module Calabash
86
88
  end
87
89
  end
88
90
 
91
+ # @!visibility private
89
92
  def system_with_stdout_on_success(cmd, *args)
90
93
  a = Escape.shell_command(args)
91
94
  cmd = "#{cmd} #{a.gsub("'", '"')}"
@@ -98,10 +101,12 @@ module Calabash
98
101
  end
99
102
  end
100
103
 
104
+ # @!visibility private
101
105
  def fail_wrong_info
102
106
  raise "Could not read keystore with the given credentials. Please ensure "
103
107
  end
104
108
 
109
+ # @!visibility private
105
110
  def self.read_keystore_with_default_password_and_alias(path)
106
111
  path = File.expand_path path
107
112
 
@@ -128,6 +133,7 @@ module Calabash
128
133
  end
129
134
  end
130
135
 
136
+ # @!visibility private
131
137
  def self.get_keystores
132
138
  if keystore = keystore_from_settings
133
139
  [ keystore ]
@@ -141,6 +147,7 @@ module Calabash
141
147
  end
142
148
  end
143
149
 
150
+ # @!visibility private
144
151
  def self.keystore_from_settings
145
152
  if File.exist?(CALABASH_KEYSTORE_SETTINGS_FILENAME)
146
153
  Logger.info "Reading keystore information specified in #{CALABASH_KEYSTORE_SETTINGS_FILENAME}"
@@ -157,16 +164,19 @@ module Calabash
157
164
  end
158
165
  end
159
166
 
167
+ # @!visibility private
160
168
  def self.fail_if_key_missing(map, key)
161
169
  raise "Found #{CALABASH_KEYSTORE_SETTINGS_FILENAME} but no #{key} defined." unless map[key]
162
170
  end
163
171
 
172
+ # @!visibility private
164
173
  def self.extract_md5_fingerprint(fingerprints)
165
174
  m = fingerprints.scan(/MD5.*((?:[a-fA-F\d]{2}:){15}[a-fA-F\d]{2})/).flatten
166
175
  raise "No MD5 fingerprint found:\n #{fingerprints}" if m.empty?
167
176
  m.first
168
177
  end
169
178
 
179
+ # @!visibility private
170
180
  def self.extract_signature_algorithm_name(fingerprints)
171
181
  m = fingerprints.scan(/Signature algorithm name: (.*)/).flatten
172
182
  raise "No signature algorithm names found:\n #{fingerprints}" if m.empty?
@@ -14,6 +14,7 @@ module Calabash
14
14
  end
15
15
  end
16
16
 
17
+ # @!visibility private
17
18
  def resign!
18
19
  Dir.mktmpdir do |tmp_dir|
19
20
  @logger.log 'Resigning apk', :debug
@@ -26,6 +27,7 @@ module Calabash
26
27
  end
27
28
  end
28
29
 
30
+ # @!visibility private
29
31
  def unsign(unsigned_path)
30
32
  meta_files = `"#{Environment.aapt_path}" list "#{unsigned_path}"`.lines.collect(&:strip).grep(/^META-INF\//)
31
33
 
@@ -53,12 +55,14 @@ module Calabash
53
55
  end
54
56
  end
55
57
 
58
+ # @!visibility private
56
59
  def zipalign(unaligned_path, app_path)
57
60
  cmd = %Q("#{Environment.zipalign_path}" -f 4 "#{unaligned_path}" "#{app_path}")
58
61
  @logger.log "Zipaligning using: #{cmd}", :debug
59
62
  system(cmd)
60
63
  end
61
64
 
65
+ # @!visibility private
62
66
  def sign(app_path, dest_path)
63
67
  java_keystore = JavaKeystore.get_keystores.first
64
68
 
@@ -7,10 +7,12 @@ module Calabash
7
7
  @application_path = application_path
8
8
  end
9
9
 
10
+ # @!visibility private
10
11
  def path
11
12
  File.expand_path("test_servers/#{checksum(@application_path)}_#{VERSION}.apk")
12
13
  end
13
14
 
15
+ # @!visibility private
14
16
  def exists?
15
17
  File.exists?(path)
16
18
  end
@@ -1,5 +1,6 @@
1
1
  module Calabash
2
2
  module Android
3
+ # Runtime defaults for Android.
3
4
  module Defaults
4
5
  # Sets up the default device and the default application based on the
5
6
  # environment.
@@ -22,6 +22,7 @@ module Calabash
22
22
  port_forward(new_server.endpoint.port, new_server.test_server_port)
23
23
  end
24
24
 
25
+ # @!visibility private
25
26
  def self.default_serial
26
27
  serials = list_serials
27
28
 
@@ -46,6 +47,7 @@ module Calabash
46
47
  end
47
48
  end
48
49
 
50
+ # @!visibility private
49
51
  def self.list_serials
50
52
  output = ADB.command('devices')
51
53
  lines = output.lines
@@ -62,12 +64,14 @@ module Calabash
62
64
  end
63
65
  end
64
66
 
67
+ # @!visibility private
65
68
  def installed_packages
66
69
  adb.shell('pm list packages').lines.map do |line|
67
70
  line.sub('package:', '').chomp
68
71
  end
69
72
  end
70
73
 
74
+ # @!visibility private
71
75
  def installed_apps
72
76
  adb.shell('pm list packages -f').lines.map do |line|
73
77
  # line will be package:<path>=<package>
@@ -80,6 +84,7 @@ module Calabash
80
84
  end
81
85
  end
82
86
 
87
+ # @!visibility private
83
88
  def test_server_responding?
84
89
  begin
85
90
  http_client.get(HTTP::Request.new('ping'), retries: 1).body == 'pong'
@@ -88,6 +93,7 @@ module Calabash
88
93
  end
89
94
  end
90
95
 
96
+ # @!visibility private
91
97
  def test_server_ready?
92
98
  begin
93
99
  http_client.get(HTTP::Request.new('ready')).body == 'true'
@@ -96,6 +102,7 @@ module Calabash
96
102
  end
97
103
  end
98
104
 
105
+ # @!visibility private
99
106
  def port_forward(host_port, test_server_port = nil)
100
107
  if test_server_port.nil?
101
108
  test_server_port = server.test_server_port
@@ -105,6 +112,7 @@ module Calabash
105
112
  adb.command(*adb_forward_cmd)
106
113
  end
107
114
 
115
+ # @!visibility private
108
116
  def make_map_parameters(query, map_method_name, *method_args)
109
117
  converted_args = []
110
118
 
@@ -172,6 +180,7 @@ module Calabash
172
180
  Calabash::QueryResult.create(result['results'], query)
173
181
  end
174
182
 
183
+ # @!visibility private
175
184
  def perform_action(action, *arguments)
176
185
  @logger.log "Action: #{action} - Arguments: #{arguments.join(', ')}"
177
186
 
@@ -197,10 +206,12 @@ module Calabash
197
206
  result
198
207
  end
199
208
 
209
+ # @!visibility private
200
210
  def enter_text(text)
201
211
  perform_action('keyboard_enter_text', text)
202
212
  end
203
213
 
214
+ # @!visibility private
204
215
  def md5_checksum(file_path)
205
216
  result = adb.shell("#{md5_binary} '#{file_path}'")
206
217
  captures = result.match(/(\w+)/).captures
@@ -234,15 +245,18 @@ module Calabash
234
245
  result['result']
235
246
  end
236
247
 
248
+ # @!visibility private
237
249
  def go_home
238
250
  adb.shell("input keyevent 3")
239
251
  end
240
252
 
253
+ # @!visibility private
241
254
  def set_location(location)
242
255
  perform_action('set_gps_coordinates',
243
256
  location[:latitude], location[:longitude])
244
257
  end
245
258
 
259
+ # @!visibility private
246
260
  def resume_app(path_or_application)
247
261
  application = parse_path_or_app_parameters(path_or_application)
248
262
 
@@ -263,6 +277,7 @@ module Calabash
263
277
  true
264
278
  end
265
279
 
280
+ # @!visibility private
266
281
  def resume_activity(package, activity)
267
282
  if package_running?(package)
268
283
  if info[:sdk_version] >= 11
@@ -279,12 +294,14 @@ module Calabash
279
294
  end
280
295
  end
281
296
 
297
+ # @!visibility private
282
298
  def app_running?(path_or_application)
283
299
  application = parse_path_or_app_parameters(path_or_application)
284
300
 
285
301
  package_running?(application.identifier)
286
302
  end
287
303
 
304
+ # @!visibility private
288
305
  def current_focus
289
306
  # Example: mFocusedApp=AppWindowToken{42c52610 token=Token{42b5d048 ActivityRecord{42a7bcc8 u0 com.example/.MainActivity t3}}}
290
307
  result = adb.shell('dumpsys window windows')
@@ -314,6 +331,7 @@ module Calabash
314
331
  raise "Unexpected output from `dumpsys window windows`"
315
332
  end
316
333
 
334
+ # @!visibility private
317
335
  def evaluate_javascript_in(query, javascript)
318
336
  parameters =
319
337
  {
@@ -3,6 +3,8 @@ require 'time'
3
3
 
4
4
  module Calabash
5
5
  module Android
6
+
7
+ # Interactions with your app that are specific to Android.
6
8
  module Interactions
7
9
  # Go back. If the keyboard is shown, it will be dismissed.
8
10
  def go_back
@@ -1,5 +1,6 @@
1
1
  module Calabash
2
2
  module Android
3
+ # Android specific life cyle methods.
3
4
  module LifeCycle
4
5
  # Resume an application. If the application is already focused, nothing
5
6
  # will happen.
@@ -7,35 +7,43 @@ module Calabash
7
7
  # @!visibility private
8
8
  module PhysicalButtons
9
9
 
10
+ # @!visibility private
10
11
  def press_button(key)
11
12
  Device.default.perform_action('press_key', key)
12
13
  true
13
14
  end
14
15
 
16
+ # @!visibility private
15
17
  def press_back_button
16
18
  press_button('KEYCODE_BACK')
17
19
  end
18
20
 
21
+ # @!visibility private
19
22
  def press_menu_button
20
23
  press_button('KEYCODE_MENU')
21
24
  end
22
25
 
26
+ # @!visibility private
23
27
  def press_down_button
24
28
  press_button('KEYCODE_DPAD_DOWN')
25
29
  end
26
30
 
31
+ # @!visibility private
27
32
  def press_up_button
28
33
  press_button('KEYCODE_DPAD_UP')
29
34
  end
30
35
 
36
+ # @!visibility private
31
37
  def press_left_button
32
38
  press_button('KEYCODE_DPAD_LEFT')
33
39
  end
34
40
 
41
+ # @!visibility private
35
42
  def press_right_button
36
43
  press_button('KEYCODE_DPAD_RIGHT')
37
44
  end
38
45
 
46
+ # @!visibility private
39
47
  def press_enter_button
40
48
  press_button('KEYCODE_ENTER')
41
49
  end
@@ -2,6 +2,7 @@ module Calabash
2
2
  module Android
3
3
  # @!visibility private
4
4
  module Screenshot
5
+ # @!visibility private
5
6
  SCREENSHOT_JAR_PATH = File.join(File.dirname(__FILE__), 'lib', 'screenshot_taker.jar')
6
7
  end
7
8
  end
@@ -2,6 +2,7 @@ module Calabash
2
2
  module Android
3
3
  # A representation of the Calabash Android test server.
4
4
  class Server < ::Calabash::Server
5
+ # The default Android test server.
5
6
  def self.default
6
7
  Server.new(URI.parse('http://127.0.0.1:33765'))
7
8
  end
@@ -1,5 +1,6 @@
1
1
  module Calabash
2
2
  module Android
3
+ # Android specific text-related actions.
3
4
  module Text
4
5
  # Dismisses the current keyboard. This is equivalent to the user
5
6
  # pressing the back button if the keyboard is showing. If the keyboard is
@@ -2,6 +2,7 @@ module Calabash
2
2
  module CLI
3
3
  # @!visibility private
4
4
  module Build
5
+ # @!visibility private
5
6
  def parse_build_arguments!
6
7
  fail('Should only build test-server for Android') unless @platform.nil? || @platform == :android
7
8
 
@@ -3,6 +3,7 @@ module Calabash
3
3
  module CLI
4
4
  # @!visibility private
5
5
  module Console
6
+ # @!visibility private
6
7
  def parse_console_arguments!
7
8
  application = @arguments.shift
8
9
 
@@ -45,6 +46,7 @@ module Calabash
45
46
  end
46
47
  end
47
48
 
49
+ # @!visibility private
48
50
  def enter_console(application_path)
49
51
  irbrc_path = Environment::IRBRC
50
52
 
@@ -5,6 +5,7 @@ module Calabash
5
5
  module CLI
6
6
  # @!visibility private
7
7
  module Generate
8
+ # @!visibility private
8
9
  def parse_generate_arguments!
9
10
  if File.exist?('features')
10
11
  puts "A features directory already exists. Please remove this to continue."
@@ -70,10 +71,12 @@ module Calabash
70
71
  end
71
72
  end
72
73
 
74
+ # @!visibility private
73
75
  def file(file)
74
76
  File.join(Calabash::Environment::SKELETON_DIR_PATH, file)
75
77
  end
76
78
 
79
+ # @!visibility private
77
80
  def msg(title, &block)
78
81
  puts "\n" + "-"*10 + title + "-"*10
79
82
  block.call
@@ -3,6 +3,7 @@ module Calabash
3
3
  module CLI
4
4
  # @!visibility private
5
5
  module Helpers
6
+ # @!visibility private
6
7
  HELP = {
7
8
  help: 'help',
8
9
  generate: 'generate',
@@ -14,6 +15,7 @@ module Calabash
14
15
  build: 'build <apk>'
15
16
  }
16
17
 
18
+ # @!visibility private
17
19
  def key_for_command(command)
18
20
  HELP.each do |key, value|
19
21
  if value.split(' ').first == command
@@ -24,6 +26,7 @@ module Calabash
24
26
  nil
25
27
  end
26
28
 
29
+ # @!visibility private
27
30
  def print_usage_for(key, output=STDOUT)
28
31
  if key.nil? || HELP[key].nil?
29
32
  output.write <<EOF
@@ -37,6 +40,7 @@ EOF
37
40
  end
38
41
  end
39
42
 
43
+ # @!visibility private
40
44
  def print_usage(output=STDOUT)
41
45
  output.write <<EOF
42
46
  Usage: calabash [options] <command-name> [command specific options]
@@ -101,11 +105,13 @@ EOF
101
105
  EOF
102
106
  end
103
107
 
108
+ # @!visibility private
104
109
  def help
105
110
  file_name = File.join(File.dirname(__FILE__), '..', 'doc', 'calabash_help.txt')
106
111
  system("less \"#{file_name}\"")
107
112
  end
108
113
 
114
+ # @!visibility private
109
115
  def fail(reason, command=nil)
110
116
  STDERR.write("#{reason}\n")
111
117
 
@@ -3,6 +3,7 @@ module Calabash
3
3
  module CLI
4
4
  # @!visibility private
5
5
  module Resign
6
+ # @!visibility private
6
7
  def parse_resign_arguments!
7
8
  fail('Can only resign Android applications') unless @platform.nil? || @platform == :android
8
9
 
@@ -3,6 +3,7 @@ module Calabash
3
3
  module CLI
4
4
  # @!visibility private
5
5
  module Run
6
+ # @!visibility private
6
7
  def parse_run_arguments!
7
8
  first_argument = @arguments.first # Do not remove the entry from the arguments yet - it might be a cucumber arg
8
9
 
@@ -54,6 +55,7 @@ module Calabash
54
55
  end
55
56
  end
56
57
 
58
+ # @!visibility private
57
59
  def run(application_path, cucumber_arguments)
58
60
  cucumber_environment = {}
59
61
  cucumber_environment['CAL_DEBUG'] = Environment::DEBUG ? '1' : '0'
@@ -6,6 +6,7 @@ module Calabash
6
6
  module CLI
7
7
  # @!visibility private
8
8
  module SetupKeystore
9
+ # @!visibility private
9
10
  def parse_setup_keystore_arguments!
10
11
  set_platform!(:android)
11
12
 
@@ -25,6 +26,7 @@ module Calabash
25
26
  puts "Saved your settings to '#{Android::Build::JavaKeystore::CALABASH_KEYSTORE_SETTINGS_FILENAME}'. You can edit the settings manually or run this setup script again"
26
27
  end
27
28
 
29
+ # @!visibility private
28
30
  def prompt(message, secure = false)
29
31
  puts message
30
32
 
@@ -1,30 +1,37 @@
1
1
  module Calabash
2
2
  # @!visibility private
3
3
  module Color
4
+ # @!visibility private
4
5
  def self.colorize(string, color)
5
6
  "\e[#{color}m#{string}\e[0m"
6
7
  end
7
8
 
9
+ # @!visibility private
8
10
  def self.red(string)
9
11
  colorize(string, 31)
10
12
  end
11
13
 
14
+ # @!visibility private
12
15
  def self.green(string)
13
16
  colorize(string, 32)
14
17
  end
15
18
 
19
+ # @!visibility private
16
20
  def self.yellow(string)
17
21
  colorize(string, 33)
18
22
  end
19
23
 
24
+ # @!visibility private
20
25
  def self.blue(string)
21
26
  colorize(string, 34)
22
27
  end
23
28
 
29
+ # @!visibility private
24
30
  def self.magenta(string)
25
31
  colorize(string, 35)
26
32
  end
27
33
 
34
+ # @!visibility private
28
35
  def self.cyan(string)
29
36
  colorize(string, 36)
30
37
  end
@@ -1,4 +1,5 @@
1
1
  module Calabash
2
+ # Runtime defaults.
2
3
  module Defaults
3
4
  # Get the default device. The device represents a physical device,
4
5
  # an emulator, or a simulator. Calabash will communicate with this
@@ -1,4 +1,6 @@
1
1
  module Calabash
2
+ # A model of the device under test. Can be a physical Android or iOS device,
3
+ # an Android emulator, or an iOS simulator.
2
4
  class Device
3
5
  include Utility
4
6
 
@@ -11,6 +11,7 @@ module Calabash
11
11
  ENV[name]
12
12
  end
13
13
 
14
+ # @!visibility private
14
15
  # Utility method to set the value of an environment variable.
15
16
  #
16
17
  # @param [String] name of the environment variable
@@ -57,10 +57,12 @@ module Calabash
57
57
  @on_error = {}
58
58
  end
59
59
 
60
+ # @!visibility private
60
61
  def on_error(type, &block)
61
62
  @on_error[type] = block
62
63
  end
63
64
 
65
+ # @!visibility private
64
66
  def change_server(new_server)
65
67
  @server = new_server
66
68
  end
@@ -1,4 +1,5 @@
1
1
  module Calabash
2
+ # Query, flash, backdoor, etc.
2
3
  module Interactions
3
4
  # Queries the view hierarchy to find all views matching `query`.
4
5
  # Optionally query takes a variable number of “invocation” arguments