calabash 2.0.0.pre11 → 2.0.0.prelegacy

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 (86) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +17 -5
  3. data/bin/calabash +4 -3
  4. data/lib/calabash/android/adb.rb +37 -34
  5. data/lib/calabash/android/application.rb +1 -1
  6. data/lib/calabash/android/build/builder.rb +1 -1
  7. data/lib/calabash/android/build/java_keystore.rb +1 -1
  8. data/lib/calabash/android/build/resigner.rb +1 -1
  9. data/lib/calabash/android/device.rb +46 -204
  10. data/lib/calabash/android/environment.rb +1 -14
  11. data/lib/calabash/android/gestures.rb +22 -6
  12. data/lib/calabash/android/interactions.rb +17 -14
  13. data/lib/calabash/android/legacy.rb +141 -4
  14. data/lib/calabash/android/lib/.irbrc +1 -9
  15. data/lib/calabash/android/lib/AndroidManifest.xml +2 -23
  16. data/lib/calabash/android/lib/TestServer.apk +0 -0
  17. data/lib/calabash/android/life_cycle.rb +3 -3
  18. data/lib/calabash/android/orientation.rb +8 -8
  19. data/lib/calabash/android/physical_buttons.rb +16 -19
  20. data/lib/calabash/android/server.rb +1 -6
  21. data/lib/calabash/android/text.rb +12 -12
  22. data/lib/calabash/android.rb +26 -92
  23. data/lib/calabash/application.rb +0 -3
  24. data/lib/calabash/cli/generate.rb +18 -8
  25. data/lib/calabash/cli/helpers.rb +9 -4
  26. data/lib/calabash/cli/run.rb +1 -1
  27. data/lib/calabash/console_helpers.rb +11 -179
  28. data/lib/calabash/device.rb +19 -4
  29. data/lib/calabash/gestures.rb +198 -292
  30. data/lib/calabash/http/retriable_client.rb +3 -18
  31. data/lib/calabash/http.rb +0 -1
  32. data/lib/calabash/interactions.rb +40 -3
  33. data/lib/calabash/ios/conditions.rb +1 -1
  34. data/lib/calabash/ios/console_helpers.rb +2 -2
  35. data/lib/calabash/ios/date_picker.rb +8 -10
  36. data/lib/calabash/ios/device/device_implementation.rb +21 -9
  37. data/lib/calabash/ios/device/gestures_mixin.rb +55 -53
  38. data/lib/calabash/ios/device/keyboard_mixin.rb +0 -21
  39. data/lib/calabash/ios/device/rotation_mixin.rb +65 -3
  40. data/lib/calabash/ios/device/text_mixin.rb +21 -0
  41. data/lib/calabash/ios/device.rb +1 -0
  42. data/lib/calabash/ios/gestures.rb +90 -24
  43. data/lib/calabash/ios/interactions.rb +6 -1
  44. data/lib/calabash/ios/lib/.irbrc +2 -9
  45. data/lib/calabash/ios/orientation.rb +8 -8
  46. data/lib/calabash/ios/runtime.rb +14 -14
  47. data/lib/calabash/ios/scroll.rb +17 -25
  48. data/lib/calabash/ios/slider.rb +18 -11
  49. data/lib/calabash/ios/text.rb +74 -20
  50. data/lib/calabash/ios/uia.rb +1 -1
  51. data/lib/calabash/ios.rb +16 -77
  52. data/lib/calabash/legacy.rb +6 -9
  53. data/lib/calabash/lib/skeleton/{Gemfile.skeleton → Gemfile} +0 -0
  54. data/lib/calabash/lib/skeleton/config/{cucumber.yml.skeleton → cucumber.yml} +0 -0
  55. data/lib/calabash/lib/skeleton/features/{sample.feature.skeleton → sample.feature} +0 -0
  56. data/lib/calabash/lib/skeleton/features/step_definitions/{sample_steps.rb.skeleton → calabash_steps.rb} +8 -8
  57. data/lib/calabash/lib/skeleton/features/support/{dry_run.rb.skeleton → dry_run.rb} +5 -2
  58. data/lib/calabash/lib/skeleton/features/support/{env.rb.skeleton → env.rb} +8 -2
  59. data/lib/calabash/lib/skeleton/features/support/hooks.rb +83 -0
  60. data/lib/calabash/life_cycle.rb +8 -16
  61. data/lib/calabash/location.rb +15 -14
  62. data/lib/calabash/orientation.rb +8 -8
  63. data/lib/calabash/page.rb +4 -1
  64. data/lib/calabash/screenshot.rb +3 -3
  65. data/lib/calabash/text.rb +19 -31
  66. data/lib/calabash/utility.rb +8 -41
  67. data/lib/calabash/version.rb +1 -1
  68. data/lib/calabash/wait.rb +192 -177
  69. data/lib/calabash.rb +10 -53
  70. metadata +32 -43
  71. data/lib/calabash/android/device/helper_application.rb +0 -95
  72. data/lib/calabash/android/lib/HelperApplication.apk +0 -0
  73. data/lib/calabash/android/lib/HelperApplicationTestServer.apk +0 -0
  74. data/lib/calabash/android/web.rb +0 -12
  75. data/lib/calabash/http/forwarding_client.rb +0 -23
  76. data/lib/calabash/internal.rb +0 -48
  77. data/lib/calabash/ios/automator/automator.rb +0 -217
  78. data/lib/calabash/ios/automator/coordinates.rb +0 -37
  79. data/lib/calabash/ios/automator/device_agent.rb +0 -379
  80. data/lib/calabash/ios/automator.rb +0 -9
  81. data/lib/calabash/ios/legacy.rb +0 -6
  82. data/lib/calabash/ios/web.rb +0 -10
  83. data/lib/calabash/lib/skeleton/features/support/hooks.rb.skeleton +0 -34
  84. data/lib/calabash/retry.rb +0 -33
  85. data/lib/calabash/stubs.rb +0 -21
  86. data/lib/calabash/web.rb +0 -44
@@ -38,7 +38,7 @@ module Calabash
38
38
  # If the name given is an absolute path, then Calabash will save the
39
39
  # screenshot to the absolute directory given.
40
40
  #
41
- # If the name given starts with ./ (e.g. `cal.screenshot('./foo.png')`) then
41
+ # If the name given starts with ./ (e.g. `screenshot('./foo.png')`) then
42
42
  # the filename will be saved relative to the current working directory.
43
43
  #
44
44
  # If the file specified by `name` has no extension then the filename will
@@ -49,11 +49,11 @@ module Calabash
49
49
  # @param [String] name Name of the screenshot.
50
50
  # @return [String] Path to the screenshot
51
51
  def screenshot(name=nil)
52
- Calabash::Internal.with_default_device {|device| device.screenshot(name)}
52
+ Device.default.screenshot(name)
53
53
  end
54
54
 
55
55
  # Takes a screenshot and embeds it in the test report. This method is only
56
- # available/useful when running in the context of Cucumber.
56
+ # available/useful when running in the context of cucumber.
57
57
  # @see Screenshot#screenshot
58
58
  def screenshot_embed(name=nil)
59
59
  path = screenshot(name)
data/lib/calabash/text.rb CHANGED
@@ -4,19 +4,13 @@ module Calabash
4
4
  module Text
5
5
  # Enter `text` into the currently focused view.
6
6
  #
7
- # @see Calabash::Text#enter_text_in
8
- #
9
7
  # @param [String] text The text to type.
10
8
  # @raise [RuntimeError] if the text cannot be typed.
11
9
  def enter_text(text)
12
10
  _enter_text(text.to_s)
13
11
  end
14
12
 
15
- # Enter `text` into the first view matched by `query`.
16
- #
17
- # @example
18
- # cal.enter_text_in({id: 'edit'}, "Hello World")
19
- #
13
+ # Enter `text` into `query`.
20
14
  # @see Calabash::Text#enter_text
21
15
  #
22
16
  # @param [String] text The text to type.
@@ -27,18 +21,11 @@ module Calabash
27
21
  end
28
22
 
29
23
  # Clears the text of the currently focused view.
30
- #
31
- # @see Calabash::Text#clear_text_in
32
- #
33
24
  def clear_text
34
25
  _clear_text
35
26
  end
36
27
 
37
- # Clears the text in the first view matched by `query`
38
- #
39
- # @example
40
- # cal.clear_text_in({id: 'edit'})
41
- #
28
+ # Clears the text `view`
42
29
  # @see Calabash::Text#clear_text
43
30
  #
44
31
  # @param [String, Hash, Calabash::Query] query A query describing the view
@@ -69,10 +56,10 @@ module Calabash
69
56
  # See http://developer.android.com/reference/android/view/inputmethod/EditorInfo.html
70
57
  #
71
58
  # @example
72
- # cal.tap_keyboard_action_key(:search)
73
- # cal.tap_keyboard_action_key(:send)
74
- # cal.tap_keyboard_action_key(:next)
75
- # cal.tap_keyboard_action_key(:previous)
59
+ # tap_keyboard_action_key(:search)
60
+ # tap_keyboard_action_key(:send)
61
+ # tap_keyboard_action_key(:next)
62
+ # tap_keyboard_action_key(:previous)
76
63
  #
77
64
  # Notice that, for Android, Calabash does not ensure that this particular action key is
78
65
  # actually available on the current keyboard.
@@ -92,13 +79,13 @@ module Calabash
92
79
  # Escapes single quotes in `string`.
93
80
  #
94
81
  # @example
95
- # cal.escape_single_quotes("Let's get this done.")
82
+ # escape_single_quotes("Let's get this done.")
96
83
  # => "Let\\'s get this done."
97
84
  #
98
85
  # @example
99
- # cal.query("* text:'#{escape_single_quotes("Let's go")}'")
86
+ # query("* text:'#{escape_single_quotes("Let's go")}'")
100
87
  # # Equivalent to
101
- # cal.query("* text:'Let\\'s go'")
88
+ # query("* text:'Let\\'s go'")
102
89
  #
103
90
  # @param [String] string The string to escape.
104
91
  # @return [String] A string with its single quotes properly escaped.
@@ -122,7 +109,7 @@ module Calabash
122
109
  # @param [Number] timeout How long to wait for the keyboard.
123
110
  # @raise [Calabash::Wait::TimeoutError] Raises error if no keyboard
124
111
  # appears.
125
- def wait_for_keyboard(timeout: nil)
112
+ def wait_for_keyboard(timeout=nil)
126
113
  keyboard_timeout = keyboard_wait_timeout(timeout)
127
114
  message = "Timed out after #{keyboard_timeout} seconds waiting for the keyboard to appear"
128
115
  wait_for(message, timeout: keyboard_timeout) do
@@ -137,7 +124,7 @@ module Calabash
137
124
  # @param [Number] timeout How log to wait for the keyboard to disappear.
138
125
  # @raise [Calabash::Wait::TimeoutError] Raises error if any keyboard is
139
126
  # visible after the `timeout`.
140
- def wait_for_no_keyboard(timeout: nil)
127
+ def wait_for_no_keyboard(timeout=nil)
141
128
  keyboard_timeout = keyboard_wait_timeout(timeout)
142
129
  message = "Timed out after #{keyboard_timeout} seconds waiting for the keyboard to disappear"
143
130
  wait_for(message, timeout: keyboard_timeout) do
@@ -145,32 +132,33 @@ module Calabash
145
132
  end
146
133
  end
147
134
 
148
- define_method(:_enter_text) do |text|
135
+ # @!visibility private
136
+ def _enter_text(text)
149
137
  abstract_method!
150
138
  end
151
139
 
152
140
  # @!visibility private
153
- define_method(:_enter_text_in) do |view, text|
141
+ def _enter_text_in(view, text)
154
142
  abstract_method!
155
143
  end
156
144
 
157
145
  # @!visibility private
158
- define_method(:_clear_text) do
146
+ def _clear_text
159
147
  abstract_method!
160
148
  end
161
149
 
162
150
  # @!visibility private
163
- define_method(:_clear_text_in) do |view|
151
+ def _clear_text_in(view)
164
152
  abstract_method!
165
153
  end
166
154
 
167
155
  # @!visibility private
168
- define_method(:_tap_keyboard_action_key) do |action_key|
156
+ def _tap_keyboard_action_key(action_key)
169
157
  abstract_method!
170
158
  end
171
159
 
172
160
  # @!visibility private
173
- define_method(:_keyboard_visible?) do
161
+ def _keyboard_visible?
174
162
  abstract_method!
175
163
  end
176
164
 
@@ -180,7 +168,7 @@ module Calabash
180
168
  end
181
169
 
182
170
  # @!visibility private
183
- define_method(:keyboard_wait_timeout) do |timeout|
171
+ def keyboard_wait_timeout(timeout)
184
172
  if timeout.nil?
185
173
  Calabash::Gestures::DEFAULT_GESTURE_WAIT_TIMEOUT
186
174
  else
@@ -7,15 +7,16 @@ module Calabash
7
7
 
8
8
  # Utility methods for testing.
9
9
  module Utility
10
+
10
11
  # @!visibility private
11
- def abstract_method!(method_name=nil)
12
- method_name ||= if Kernel.method_defined?(:caller_locations)
12
+ def abstract_method!
13
+ method_name = if Kernel.method_defined?(:caller_locations)
13
14
  caller_locations.first.label
14
15
  else
15
16
  caller.first[/\`(.*)\'/, 1]
16
17
  end
17
18
 
18
- raise AbstractMethodError.new("Abstract method '#{method_name.to_s}'")
19
+ raise AbstractMethodError.new("Abstract method '#{method_name}'")
19
20
  end
20
21
 
21
22
  # @!visibility private
@@ -26,8 +27,8 @@ module Calabash
26
27
  #
27
28
  # @example
28
29
  # # These are equivalent.
29
- # cal.pan("*", percent(20, 50), percent(20, 100))
30
- # cal.pan("*", {x: 20, y: 50}, {x: 20, y: 100})
30
+ # pan("*", percent(20, 50), percent(20, 100))
31
+ # pan("*", {x: 20, y: 50}, {x: 20, y: 100})
31
32
  #
32
33
  # @param [Number] x The value of the x percent.
33
34
  # @param [Number] y The value of the y percent.
@@ -43,8 +44,8 @@ module Calabash
43
44
  #
44
45
  # @example
45
46
  # # These are equivalent.
46
- # cal.tap("button", offset: coordinate(20, 50))
47
- # cal.tap("button", offset: {x: 20, y: 50})
47
+ # tap_coordinate(coordinate(20, 50)
48
+ # tap_coordinate({x: 20, y: 50})
48
49
  #
49
50
  # @param [Number] x The value of the x.
50
51
  # @param [Number] y The value of the y.
@@ -54,39 +55,5 @@ module Calabash
54
55
  end
55
56
 
56
57
  alias_method :coord, :coordinate
57
-
58
- # @!visibility private
59
- # Sets the default values for a hash. The hash is not mutated by duplicated
60
- #
61
- # @example
62
- # default_hash_values({a: 'b'}, {a: 'q', b: 'c'}) # => {a: 'b', b: 'c'}
63
- #
64
- # @notice
65
- # This method does not overwrite nil
66
- def self.default_hash_values(hash, defaults)
67
- res = hash.dup
68
-
69
- defaults.each do |key, value|
70
- unless res.key?(key)
71
- res[key] = value
72
- end
73
- end
74
-
75
- res
76
- end
77
-
78
- # @!visibility private
79
- def self.used_bundler?
80
- defined?(Bundler) && !ENV['BUNDLE_BIN_PATH'].nil?
81
- end
82
-
83
- # @!visibility private
84
- def self.bundle_exec_prepend
85
- if used_bundler?
86
- 'bundle exec '
87
- else
88
- ''
89
- end
90
- end
91
58
  end
92
59
  end
@@ -1,5 +1,5 @@
1
1
  module Calabash
2
2
 
3
3
  # @!visibility private
4
- VERSION = "2.0.0.pre11"
4
+ VERSION = "2.0.0.prelegacy"
5
5
  end