calabash-cucumber 0.10.0.pre1 → 0.10.0.pre2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/features/step_definitions/calabash_steps.rb +1 -1
- data/lib/calabash-cucumber/actions/instruments_actions.rb +15 -4
- data/lib/calabash-cucumber/actions/playback_actions.rb +12 -3
- data/lib/calabash-cucumber/connection.rb +3 -0
- data/lib/calabash-cucumber/connection_helpers.rb +4 -0
- data/lib/calabash-cucumber/core.rb +637 -83
- data/lib/calabash-cucumber/date_picker.rb +148 -29
- data/lib/calabash-cucumber/device.rb +160 -3
- data/lib/calabash-cucumber/environment_helpers.rb +91 -46
- data/lib/calabash-cucumber/failure_helpers.rb +40 -0
- data/lib/calabash-cucumber/http_helpers.rb +9 -2
- data/lib/calabash-cucumber/ibase.rb +136 -17
- data/lib/calabash-cucumber/ios7_operations.rb +13 -9
- data/lib/calabash-cucumber/ipad_1x_2x.rb +103 -48
- data/lib/calabash-cucumber/keyboard_helpers.rb +253 -144
- data/lib/calabash-cucumber/keychain_helpers.rb +46 -32
- data/lib/calabash-cucumber/launch/simulator_helper.rb +13 -12
- data/lib/calabash-cucumber/launch/simulator_launcher.rb +111 -78
- data/lib/calabash-cucumber/launcher.rb +265 -25
- data/lib/calabash-cucumber/map.rb +24 -22
- data/lib/calabash-cucumber/operations.rb +4 -160
- data/lib/calabash-cucumber/playback_helpers.rb +26 -0
- data/lib/calabash-cucumber/query_helpers.rb +12 -0
- data/lib/calabash-cucumber/rotation_helpers.rb +64 -8
- data/lib/calabash-cucumber/status_bar_helpers.rb +40 -3
- data/lib/calabash-cucumber/tests_helpers.rb +43 -14
- data/lib/calabash-cucumber/uia.rb +93 -9
- data/lib/calabash-cucumber/utils/logging.rb +30 -16
- data/lib/calabash-cucumber/utils/plist_buddy.rb +18 -19
- data/lib/calabash-cucumber/utils/simulator_accessibility.rb +41 -30
- data/lib/calabash-cucumber/utils/xctools.rb +31 -21
- data/lib/calabash-cucumber/version.rb +98 -2
- data/lib/calabash-cucumber/wait_helpers.rb +257 -77
- data/staticlib/calabash.framework.zip +0 -0
- metadata +64 -231
- data/.gitignore +0 -17
- data/CHANGES.txt +0 -1
- data/Gemfile +0 -4
- data/Rakefile +0 -72
- data/calabash-cucumber.gemspec +0 -36
- data/epl-v10.html +0 -261
- data/lib/calabash-cucumber/resources/cell_swipe_ios4_ipad.base64 +0 -51
- data/lib/calabash-cucumber/resources/cell_swipe_ios4_iphone.base64 +0 -51
- data/lib/calabash-cucumber/resources/cell_swipe_ios5_ipad.base64 +0 -74
- data/lib/calabash-cucumber/resources/cell_swipe_ios5_iphone.base64 +0 -74
- data/lib/calabash-cucumber/resources/double_tap_ios5_ipad.base64 +0 -15
- data/lib/calabash-cucumber/resources/double_tap_ios5_iphone.base64 +0 -15
- data/lib/calabash-cucumber/resources/double_tap_ios6_ipad.base64 +0 -22
- data/lib/calabash-cucumber/resources/double_tap_ios6_iphone.base64 +0 -22
- data/lib/calabash-cucumber/resources/pan_ios5_ipad.base64 +0 -199
- data/lib/calabash-cucumber/resources/pan_ios5_iphone.base64 +0 -199
- data/lib/calabash-cucumber/resources/pan_ios6_ipad.base64 +0 -206
- data/lib/calabash-cucumber/resources/pan_ios6_iphone.base64 +0 -206
- data/lib/calabash-cucumber/resources/pinch_in_ios4_ipad.base64 +0 -104
- data/lib/calabash-cucumber/resources/pinch_in_ios4_iphone.base64 +0 -104
- data/lib/calabash-cucumber/resources/pinch_in_ios5_ipad.base64 +0 -144
- data/lib/calabash-cucumber/resources/pinch_in_ios5_iphone.base64 +0 -144
- data/lib/calabash-cucumber/resources/pinch_in_ios6_ipad.base64 +0 -70
- data/lib/calabash-cucumber/resources/pinch_in_ios6_iphone.base64 +0 -70
- data/lib/calabash-cucumber/resources/pinch_out_ios5_ipad.base64 +0 -207
- data/lib/calabash-cucumber/resources/pinch_out_ios5_iphone.base64 +0 -207
- data/lib/calabash-cucumber/resources/pinch_out_ios6_ipad.base64 +0 -96
- data/lib/calabash-cucumber/resources/pinch_out_ios6_iphone.base64 +0 -96
- data/lib/calabash-cucumber/resources/rotate_left_home_down_ios4_ipad.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_left_home_down_ios4_iphone.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_left_home_down_ios5_ipad.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_left_home_down_ios5_iphone.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_left_home_left_ios4_ipad.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_left_home_left_ios4_iphone.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_left_home_left_ios5_ipad.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_left_home_left_ios5_iphone.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_left_home_right_ios4_ipad.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_left_home_right_ios4_iphone.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_left_home_right_ios5_ipad.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_left_home_right_ios5_iphone.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_left_home_up_ios4_ipad.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_left_home_up_ios4_iphone.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_left_home_up_ios5_ipad.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_left_home_up_ios5_iphone.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_right_home_down_ios4_ipad.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_right_home_down_ios4_iphone.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_right_home_down_ios5_ipad.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_right_home_down_ios5_iphone.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_right_home_left_ios4_ipad.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_right_home_left_ios4_iphone.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_right_home_left_ios5_ipad.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_right_home_left_ios5_iphone.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_right_home_right_ios4_ipad.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_right_home_right_ios4_iphone.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_right_home_right_ios5_ipad.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_right_home_right_ios5_iphone.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_right_home_up_ios4_ipad.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_right_home_up_ios4_iphone.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_right_home_up_ios5_ipad.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_right_home_up_ios5_iphone.base64 +0 -2
- data/lib/calabash-cucumber/resources/swipe_down_ios5_ipad.base64 +0 -18
- data/lib/calabash-cucumber/resources/swipe_down_ios5_iphone.base64 +0 -31
- data/lib/calabash-cucumber/resources/swipe_down_ios6_ipad.base64 +0 -25
- data/lib/calabash-cucumber/resources/swipe_down_ios6_iphone.base64 +0 -25
- data/lib/calabash-cucumber/resources/swipe_left_hard_ios4_ipad.base64 +0 -15
- data/lib/calabash-cucumber/resources/swipe_left_hard_ios4_iphone.base64 +0 -15
- data/lib/calabash-cucumber/resources/swipe_left_ios4_ipad.base64 +0 -18
- data/lib/calabash-cucumber/resources/swipe_left_ios4_iphone.base64 +0 -18
- data/lib/calabash-cucumber/resources/swipe_left_ios5_ipad.base64 +0 -17
- data/lib/calabash-cucumber/resources/swipe_left_ios5_iphone.base64 +0 -34
- data/lib/calabash-cucumber/resources/swipe_left_ios6_ipad.base64 +0 -28
- data/lib/calabash-cucumber/resources/swipe_left_ios6_iphone.base64 +0 -28
- data/lib/calabash-cucumber/resources/swipe_right_hard_ios4_ipad.base64 +0 -17
- data/lib/calabash-cucumber/resources/swipe_right_hard_ios4_iphone.base64 +0 -17
- data/lib/calabash-cucumber/resources/swipe_right_ios4_ipad.base64 +0 -13
- data/lib/calabash-cucumber/resources/swipe_right_ios4_iphone.base64 +0 -13
- data/lib/calabash-cucumber/resources/swipe_right_ios5_ipad.base64 +0 -17
- data/lib/calabash-cucumber/resources/swipe_right_ios5_iphone.base64 +0 -17
- data/lib/calabash-cucumber/resources/swipe_right_ios6_ipad.base64 +0 -25
- data/lib/calabash-cucumber/resources/swipe_right_ios6_iphone.base64 +0 -25
- data/lib/calabash-cucumber/resources/swipe_up_ios5_ipad.base64 +0 -34
- data/lib/calabash-cucumber/resources/swipe_up_ios5_iphone.base64 +0 -28
- data/lib/calabash-cucumber/resources/swipe_up_ios6_ipad.base64 +0 -25
- data/lib/calabash-cucumber/resources/swipe_up_ios6_iphone.base64 +0 -25
- data/lib/calabash-cucumber/resources/touch_done_ios4_ipad.base64 +0 -7
- data/lib/calabash-cucumber/resources/touch_done_ios4_iphone.base64 +0 -9
- data/lib/calabash-cucumber/resources/touch_done_ios5_ipad.base64 +0 -7
- data/lib/calabash-cucumber/resources/touch_done_ios5_iphone.base64 +0 -9
- data/lib/calabash-cucumber/resources/touch_hold_ios5_ipad.base64 +0 -9
- data/lib/calabash-cucumber/resources/touch_hold_ios5_iphone.base64 +0 -9
- data/lib/calabash-cucumber/resources/touch_hold_ios6_ipad.base64 +0 -9
- data/lib/calabash-cucumber/resources/touch_hold_ios6_iphone.base64 +0 -9
- data/lib/calabash-cucumber/resources/touch_ios4_ipad.base64 +0 -9
- data/lib/calabash-cucumber/resources/touch_ios4_iphone.base64 +0 -9
- data/lib/calabash-cucumber/resources/touch_ios5_ipad.base64 +0 -9
- data/lib/calabash-cucumber/resources/touch_ios5_iphone.base64 +0 -9
- data/lib/calabash-cucumber/resources/touch_ios7_ipad.base64 +0 -9
- data/lib/calabash-cucumber/resources/touch_ios7_iphone.base64 +0 -9
- data/lib/calabash-cucumber/resources/wheel_down_ios4_ipad.base64 +0 -159
- data/lib/calabash-cucumber/resources/wheel_down_ios4_iphone.base64 +0 -159
- data/lib/calabash-cucumber/resources/wheel_down_ios5_ipad.base64 +0 -156
- data/lib/calabash-cucumber/resources/wheel_down_ios5_iphone.base64 +0 -156
- data/lib/calabash-cucumber/resources/wheel_up_ios4_ipad.base64 +0 -166
- data/lib/calabash-cucumber/resources/wheel_up_ios4_iphone.base64 +0 -166
- data/lib/calabash-cucumber/resources/wheel_up_ios5_ipad.base64 +0 -156
- data/lib/calabash-cucumber/resources/wheel_up_ios5_iphone.base64 +0 -156
- data/scripts/EmptyAppHack.app/Default-568h@2x.png +0 -0
- data/scripts/EmptyAppHack.app/Default.png +0 -0
- data/scripts/EmptyAppHack.app/Default@2x.png +0 -0
- data/scripts/EmptyAppHack.app/EmptyAppHack +0 -0
- data/scripts/EmptyAppHack.app/Info.plist +0 -0
- data/scripts/EmptyAppHack.app/PkgInfo +0 -1
- data/scripts/EmptyAppHack.app/en.lproj/InfoPlist.strings +0 -0
- data/scripts/com.example.plist +0 -0
- data/scripts/data/.GlobalPreferences.plist +0 -0
- data/scripts/reset_simulator.scpt +0 -0
- data/spec/bin/calabash_ios_sim_spec.rb +0 -24
- data/spec/launcher_spec.rb +0 -166
- data/spec/logging_spec.rb +0 -38
- data/spec/plist_buddy_spec.rb +0 -99
- data/spec/resources/enable-accessibility/6.1/.gitkeep +0 -0
- data/spec/resources/enable-accessibility/7.0.3-64/.gitkeep +0 -0
- data/spec/resources/enable-accessibility/7.0.3/.gitkeep +0 -0
- data/spec/resources/enable-accessibility/7.1-64/.gitkeep +0 -0
- data/spec/resources/enable-accessibility/7.1/.gitkeep +0 -0
- data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/Default-568h@2x.png +0 -0
- data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/Info.plist +0 -0
- data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/LPSimpleExample-cal +0 -0
- data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/PkgInfo +0 -1
- data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/InfoPlist.strings +0 -0
- data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPFirstViewController.nib +0 -0
- data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPFirstViewController~ipad.nib +0 -0
- data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPFourthViewController.nib +0 -0
- data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPFourthViewController~ipad.nib +0 -0
- data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPSecondViewController.nib +0 -0
- data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPSecondViewController~ipad.nib +0 -0
- data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPThirdViewController.nib +0 -0
- data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPThirdViewController~ipad.nib +0 -0
- data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/first.png +0 -0
- data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/first@2x.png +0 -0
- data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/second.png +0 -0
- data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/second@2x.png +0 -0
- data/spec/resources/plist_buddy/com.example.plist +0 -0
- data/spec/resources/plist_buddy/com.testing.plist +0 -18
- data/spec/simulator_accessibility_spec.rb +0 -206
- data/spec/spec_helper.rb +0 -31
- data/spec/version_spec.rb +0 -13
- data/spec/xctools_spec.rb +0 -58
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -1 +0,0 @@
|
|
1
|
-
APPL????
|
Binary file
|
data/scripts/com.example.plist
DELETED
Binary file
|
Binary file
|
Binary file
|
@@ -1,24 +0,0 @@
|
|
1
|
-
require File.expand_path(File.join(__FILE__, '..', '..', 'spec_helper'))
|
2
|
-
require File.expand_path(File.join(__FILE__, '..', '..', '..', 'bin', 'calabash-ios-sim'))
|
3
|
-
require 'calabash-cucumber/utils/simulator_accessibility'
|
4
|
-
require 'calabash-cucumber/wait_helpers'
|
5
|
-
|
6
|
-
include Calabash::Cucumber::WaitHelpers
|
7
|
-
|
8
|
-
describe 'calabash ios sim cli' do
|
9
|
-
|
10
|
-
it 'should deprecate the sim_quit method' do
|
11
|
-
out = capture_stderr do
|
12
|
-
quit_sim
|
13
|
-
end
|
14
|
-
tokens = out.string.split("\n")
|
15
|
-
puts tokens
|
16
|
-
expect(tokens[1]).to be == "WARN: deprecated '0.9.169' - 'use Calabash::Cucumber::SimulatorAccessibility.quit_simulator'"
|
17
|
-
end
|
18
|
-
|
19
|
-
it 'should be able to reset the content and settings of the simulator' do
|
20
|
-
calabash_sim_reset
|
21
|
-
expect(existing_simulator_support_sdk_dirs.count).to be == 1
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|
data/spec/launcher_spec.rb
DELETED
@@ -1,166 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'calabash-cucumber/launcher'
|
3
|
-
require 'run_loop'
|
4
|
-
|
5
|
-
describe 'Calabash Launcher' do
|
6
|
-
|
7
|
-
UDID = '66h3hfgc466836ehcg72738eh8f322842855d2fd'
|
8
|
-
IPHONE_4IN_R_64 = 'iPhone Retina (4-inch 64-bit) - Simulator - iOS 7.1'
|
9
|
-
before(:each) do
|
10
|
-
@launcher = Calabash::Cucumber::Launcher.new
|
11
|
-
end
|
12
|
-
|
13
|
-
before(:each) do
|
14
|
-
ENV['DEVICE_TARGET'] = nil
|
15
|
-
ENV['DETECT_CONNECTED_DEVICE'] = nil
|
16
|
-
end
|
17
|
-
|
18
|
-
def set_device_target(val)
|
19
|
-
ENV['DEVICE_TARGET'] = val
|
20
|
-
end
|
21
|
-
|
22
|
-
describe 'simulator_target? should respond correctly to DEVICE_TARGET' do
|
23
|
-
|
24
|
-
it 'should return true if DEVICE_TARGET is nil' do
|
25
|
-
expect(@launcher.simulator_target?).to be == false
|
26
|
-
end
|
27
|
-
|
28
|
-
it 'should return true if DEVICE_TARGET is simulator' do
|
29
|
-
set_device_target('simulator')
|
30
|
-
expect(@launcher.simulator_target?).to be == true
|
31
|
-
end
|
32
|
-
|
33
|
-
it 'should return false if DEVICE_TARGET is device' do
|
34
|
-
set_device_target('device')
|
35
|
-
expect(@launcher.simulator_target?).to be == false
|
36
|
-
end
|
37
|
-
|
38
|
-
it 'should return false if DEVICE_TARGET is udid' do
|
39
|
-
# noinspection SpellCheckingInspection
|
40
|
-
set_device_target(UDID)
|
41
|
-
expect(@launcher.simulator_target?).to be == false
|
42
|
-
end
|
43
|
-
|
44
|
-
it 'should return true for Xcode 5.1 style simulator names' do
|
45
|
-
set_device_target('iPhone Retina (4-inch) - Simulator - iOS 7.1')
|
46
|
-
expect(@launcher.simulator_target?).to be == true
|
47
|
-
|
48
|
-
set_device_target('iPhone - Simulator - iOS 6.1')
|
49
|
-
expect(@launcher.simulator_target?).to be == true
|
50
|
-
|
51
|
-
set_device_target('iPad Retina (64-bit) - Simulator - iOS 7.0')
|
52
|
-
expect(@launcher.simulator_target?).to be == true
|
53
|
-
end
|
54
|
-
|
55
|
-
it 'should return true when passed a hash with :device_target => a simulator' do
|
56
|
-
hash = {:device_target => 'simulator'}
|
57
|
-
expect(@launcher.simulator_target?(hash)).to be == true
|
58
|
-
|
59
|
-
hash = {:device_target => 'iPhone Retina (4-inch) - Simulator - iOS 7.1'}
|
60
|
-
expect(@launcher.simulator_target?(hash)).to be == true
|
61
|
-
end
|
62
|
-
|
63
|
-
it 'should return false when passed a hash with :device_target != a simulator' do
|
64
|
-
hash = {:device_target => 'device'}
|
65
|
-
expect(@launcher.simulator_target?(hash)).to be == false
|
66
|
-
|
67
|
-
hash = {:device_target => UDID}
|
68
|
-
expect(@launcher.simulator_target?(hash)).to be == false
|
69
|
-
|
70
|
-
hash = {:device_target => 'foobar'}
|
71
|
-
expect(@launcher.simulator_target?(hash)).to be == false
|
72
|
-
end
|
73
|
-
|
74
|
-
it 'should return false when passed a hash with no :device_target key' do
|
75
|
-
hash = {:foobar => 'foobar'}
|
76
|
-
expect(@launcher.simulator_target?(hash)).to be == false
|
77
|
-
end
|
78
|
-
|
79
|
-
end
|
80
|
-
|
81
|
-
describe 'default launch args should respect DEVICE_TARGET' do
|
82
|
-
|
83
|
-
it "it should return 'simulator' if DEVICE_TARGET nil" do
|
84
|
-
args = @launcher.default_launch_args
|
85
|
-
expect(args[:device_target]).to be == 'simulator'
|
86
|
-
end
|
87
|
-
|
88
|
-
describe 'running with instruments' do
|
89
|
-
|
90
|
-
it 'should be running against instruments' do
|
91
|
-
args = @launcher.default_launch_args
|
92
|
-
expect(args[:launch_method]).to be == :instruments
|
93
|
-
end
|
94
|
-
|
95
|
-
describe 'running against devices' do
|
96
|
-
|
97
|
-
describe 'when DEVICE_TARGET = < udid >' do
|
98
|
-
before(:each) do
|
99
|
-
ENV['DEVICE_TARGET'] = UDID
|
100
|
-
end
|
101
|
-
|
102
|
-
it 'it should return udid if DEVICE_TARGET is a udid' do
|
103
|
-
args = @launcher.default_launch_args
|
104
|
-
expect(args[:device_target]).to be == UDID
|
105
|
-
expect(args[:udid]).to be == UDID
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
describe 'when DEVICE_TARGET = device' do
|
110
|
-
before(:each) do
|
111
|
-
ENV['DEVICE_TARGET'] = 'device'
|
112
|
-
end
|
113
|
-
|
114
|
-
describe 'detecting connected devices' do
|
115
|
-
describe "when DETECT_CONNECTED_DEVICE == '1'" do
|
116
|
-
it 'should return a udid if DEVICE_TARGET=device if a device is connected and simulator otherwise' do
|
117
|
-
ENV['DETECT_CONNECTED_DEVICE'] = '1'
|
118
|
-
args = @launcher.default_launch_args
|
119
|
-
target = args[:device_target]
|
120
|
-
detected = RunLoop::Core.detect_connected_device
|
121
|
-
|
122
|
-
if detected
|
123
|
-
expect(target).to be == detected
|
124
|
-
expect(args[:udid]).to be == detected
|
125
|
-
else
|
126
|
-
pending('this behavior is needs verification')
|
127
|
-
expect(target).to be == 'simulator'
|
128
|
-
end
|
129
|
-
end
|
130
|
-
|
131
|
-
describe "when DETECT_CONNECTED_DEVICE != '1'" do
|
132
|
-
it 'should return a udid if DEVICE_TARGET=device if a device is connected and simulator otherwise' do
|
133
|
-
args = @launcher.default_launch_args
|
134
|
-
target = args[:device_target]
|
135
|
-
expect(target).to be == 'device'
|
136
|
-
expect(args[:udid]).to be == 'device'
|
137
|
-
end
|
138
|
-
end
|
139
|
-
end
|
140
|
-
end
|
141
|
-
end
|
142
|
-
end
|
143
|
-
|
144
|
-
describe 'running against simulators' do
|
145
|
-
|
146
|
-
describe 'DEVICE_TARGET is an iphone in Xcode 5.1 format' do
|
147
|
-
before(:each) do
|
148
|
-
ENV['DEVICE_TARGET'] = IPHONE_4IN_R_64
|
149
|
-
end
|
150
|
-
|
151
|
-
it 'should return the correct simulator' do
|
152
|
-
args = @launcher.default_launch_args
|
153
|
-
expect(args[:device_target]).to be == IPHONE_4IN_R_64
|
154
|
-
end
|
155
|
-
|
156
|
-
end
|
157
|
-
|
158
|
-
end
|
159
|
-
end
|
160
|
-
|
161
|
-
describe 'running without instruments' do
|
162
|
-
|
163
|
-
|
164
|
-
end
|
165
|
-
end
|
166
|
-
end
|
data/spec/logging_spec.rb
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'stringio'
|
3
|
-
|
4
|
-
describe 'calabash logging' do
|
5
|
-
|
6
|
-
include Calabash::Cucumber::Logging
|
7
|
-
|
8
|
-
it 'should output info messages' do
|
9
|
-
info_msg = 'this is an info message'
|
10
|
-
calabash_info(info_msg)
|
11
|
-
out = capture_stdout do
|
12
|
-
calabash_info(info_msg)
|
13
|
-
end
|
14
|
-
expect(out.string).to be == "\e[32m\nINFO: #{info_msg}\e[0m\n"
|
15
|
-
end
|
16
|
-
|
17
|
-
it 'should output warning messages' do
|
18
|
-
warn_msg = 'this is a warning message'
|
19
|
-
calabash_warn(warn_msg)
|
20
|
-
out = capture_stderr do
|
21
|
-
calabash_warn(warn_msg)
|
22
|
-
end
|
23
|
-
expect(out.string).to be == "\e[34m\nWARN: #{warn_msg}\e[0m\n"
|
24
|
-
end
|
25
|
-
|
26
|
-
it 'should output deprecated messages' do
|
27
|
-
version = '0.9.169'
|
28
|
-
dep_msg = 'this is a deprecation message'
|
29
|
-
_deprecated(version, dep_msg, :warn)
|
30
|
-
out = capture_stderr do
|
31
|
-
_deprecated(version, dep_msg, :warn)
|
32
|
-
end
|
33
|
-
tokens = out.string.split("\n")
|
34
|
-
expect("#{tokens[0]}\n#{tokens[1]}").to be == "\e[34m\nWARN: deprecated '#{version}' - '#{dep_msg}'"
|
35
|
-
expect(tokens.count).to be == 7
|
36
|
-
end
|
37
|
-
|
38
|
-
end
|
data/spec/plist_buddy_spec.rb
DELETED
@@ -1,99 +0,0 @@
|
|
1
|
-
require 'calabash-cucumber/utils/plist_buddy'
|
2
|
-
|
3
|
-
include Calabash::Cucumber::PlistBuddy
|
4
|
-
|
5
|
-
describe '.plist editing' do
|
6
|
-
|
7
|
-
describe 'plist_buddy method' do
|
8
|
-
it 'should return the path to the plist_buddy binary' do
|
9
|
-
expect(plist_buddy).to be == '/usr/libexec/PlistBuddy'
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
describe 'build_plist_cmd' do
|
14
|
-
|
15
|
-
TEMPLATE_PLIST = File.expand_path('./spec/resources/plist_buddy/com.example.plist')
|
16
|
-
TESTING_PLIST = File.expand_path('./spec/resources/plist_buddy/com.testing.plist')
|
17
|
-
|
18
|
-
before(:each) do
|
19
|
-
FileUtils.rm(TESTING_PLIST) if File.exist?(TESTING_PLIST)
|
20
|
-
FileUtils.cp(TEMPLATE_PLIST, TESTING_PLIST)
|
21
|
-
end
|
22
|
-
|
23
|
-
describe 'raises errors' do
|
24
|
-
|
25
|
-
it 'should raise error if file does not exist' do
|
26
|
-
expect { build_plist_cmd(:foo, nil, '/path/does/not/exist') }.to raise_error(RuntimeError)
|
27
|
-
end
|
28
|
-
|
29
|
-
it 'should raise error if command is not valid' do
|
30
|
-
expect { build_plist_cmd(:foo, nil, TESTING_PLIST) }.to raise_error(ArgumentError)
|
31
|
-
end
|
32
|
-
|
33
|
-
it 'should raise error if args_hash is missing required key/value pairs' do
|
34
|
-
expect { build_plist_cmd(:print, {:foo => 'bar'}, TESTING_PLIST) }.to raise_error(ArgumentError)
|
35
|
-
end
|
36
|
-
|
37
|
-
end
|
38
|
-
|
39
|
-
describe 'composing commands' do
|
40
|
-
|
41
|
-
it 'should compose print commands' do
|
42
|
-
cmd = build_plist_cmd(:print, {:key => 'foo'}, TESTING_PLIST)
|
43
|
-
expect(cmd).to be == "/usr/libexec/PlistBuddy -c \"Print :foo\" \"#{TESTING_PLIST}\""
|
44
|
-
end
|
45
|
-
|
46
|
-
it 'should compose set commands' do
|
47
|
-
cmd = build_plist_cmd(:set, {:key => 'foo', :value => 'bar'}, TESTING_PLIST)
|
48
|
-
expect(cmd).to be == "/usr/libexec/PlistBuddy -c \"Set :foo bar\" \"#{TESTING_PLIST}\""
|
49
|
-
end
|
50
|
-
|
51
|
-
it 'should compose add commands' do
|
52
|
-
cmd = build_plist_cmd(:add, {:key => 'foo', :value => 'bar', :type => 'bool'}, TESTING_PLIST)
|
53
|
-
expect(cmd).to be == "/usr/libexec/PlistBuddy -c \"Add :foo bool bar\" \"#{TESTING_PLIST}\""
|
54
|
-
end
|
55
|
-
|
56
|
-
end
|
57
|
-
|
58
|
-
describe 'reading properties' do
|
59
|
-
|
60
|
-
VERBOSE = {:verbose => true}
|
61
|
-
QUIET = {:verbose => false}
|
62
|
-
|
63
|
-
hash =
|
64
|
-
{
|
65
|
-
|
66
|
-
:access_enabled => 'AccessibilityEnabled',
|
67
|
-
:app_access_enabled => 'ApplicationAccessibilityEnabled',
|
68
|
-
:automation_enabled => 'AutomationEnabled',
|
69
|
-
:inspector_showing => 'AXInspectorEnabled',
|
70
|
-
:inspector_full_size => 'AXInspector.enabled',
|
71
|
-
:inspector_frame => 'AXInspector.frame'
|
72
|
-
}
|
73
|
-
|
74
|
-
it 'should read properties' do
|
75
|
-
res = plist_read(hash[:inspector_showing], TESTING_PLIST, QUIET)
|
76
|
-
expect(res).to be == 'false'
|
77
|
-
|
78
|
-
res = plist_read('FOO', TESTING_PLIST, QUIET)
|
79
|
-
expect(res).to be == nil
|
80
|
-
end
|
81
|
-
|
82
|
-
it 'should set existing properties' do
|
83
|
-
res = plist_set(hash[:inspector_showing], 'bool', 'true', TESTING_PLIST, QUIET)
|
84
|
-
expect(res).to be == true
|
85
|
-
|
86
|
-
res = plist_read(hash[:inspector_showing], TESTING_PLIST, QUIET)
|
87
|
-
expect(res).to be == 'true'
|
88
|
-
end
|
89
|
-
|
90
|
-
it 'should add new properties' do
|
91
|
-
res = plist_set('FOO', 'bool', 'true', TESTING_PLIST, QUIET)
|
92
|
-
expect(res).to be == true
|
93
|
-
|
94
|
-
res = plist_read('FOO', TESTING_PLIST, QUIET)
|
95
|
-
expect(res).to be == 'true'
|
96
|
-
end
|
97
|
-
end
|
98
|
-
end
|
99
|
-
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
Binary file
|
Binary file
|
Binary file
|
@@ -1 +0,0 @@
|
|
1
|
-
APPL????
|
Binary file
|
data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPFirstViewController.nib
DELETED
Binary file
|
Binary file
|
data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPFourthViewController.nib
DELETED
Binary file
|
Binary file
|
data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPSecondViewController.nib
DELETED
Binary file
|
Binary file
|
data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPThirdViewController.nib
DELETED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -1,18 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
3
|
-
<plist version="1.0">
|
4
|
-
<dict>
|
5
|
-
<key>AXInspectorEnabled</key>
|
6
|
-
<false/>
|
7
|
-
<key>AssistiveTouchEnabled</key>
|
8
|
-
<false/>
|
9
|
-
<key>AssistiveTouchHardwareEnabled</key>
|
10
|
-
<false/>
|
11
|
-
<key>AssistiveTouchScannerEnabled</key>
|
12
|
-
<false/>
|
13
|
-
<key>FOO</key>
|
14
|
-
<true/>
|
15
|
-
<key>VoiceOverTouchEnabled</key>
|
16
|
-
<false/>
|
17
|
-
</dict>
|
18
|
-
</plist>
|
@@ -1,206 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'calabash-cucumber/utils/simulator_accessibility'
|
3
|
-
require 'calabash-cucumber/launcher'
|
4
|
-
require 'sim_launcher'
|
5
|
-
|
6
|
-
include Calabash::Cucumber::SimulatorAccessibility
|
7
|
-
|
8
|
-
describe 'simulator accessibility tool' do
|
9
|
-
|
10
|
-
it 'should be able to find the simulator app support directory' do
|
11
|
-
path = simulator_app_support_dir
|
12
|
-
expect(File.exist?(path)).to be == true
|
13
|
-
end
|
14
|
-
|
15
|
-
it 'should be able to open and close the simulator' do
|
16
|
-
cmd = "ps auxw | grep \"iPhone Simulator.app/Contents/MacOS/iPhone Simulator\" | grep -v grep"
|
17
|
-
|
18
|
-
quit_simulator
|
19
|
-
sleep(2)
|
20
|
-
expect(`#{cmd}`.split("\n").count).to be == 0
|
21
|
-
|
22
|
-
launch_simulator
|
23
|
-
sleep(4)
|
24
|
-
expect(`#{cmd}`.split("\n").count).to be == 1
|
25
|
-
end
|
26
|
-
|
27
|
-
it 'should be able to return a path a com.apple.Accessibility.plist for an SDK' do
|
28
|
-
sdk = "#{simulator_app_support_dir}/7.1"
|
29
|
-
expected = "#{sdk}/Library/Preferences/com.apple.Accessibility.plist"
|
30
|
-
actual = plist_path_with_sdk_dir(sdk)
|
31
|
-
expect(actual).to be == expected
|
32
|
-
end
|
33
|
-
|
34
|
-
# brittle because some users will not have installed 6.1 or 7.0, but hey, why
|
35
|
-
# are them gem dev'ing or gem testing?
|
36
|
-
it 'should be able to return possible SDKs' do
|
37
|
-
actual = possible_simulator_sdks
|
38
|
-
instruments_version = instruments(:version)
|
39
|
-
|
40
|
-
if instruments_version == '5.1' or instruments_version == '5.1.1'
|
41
|
-
expected = ['6.1', '7.0.3', '7.0.3-64', '7.1', '7.1-64']
|
42
|
-
expect(actual).to be == expected
|
43
|
-
else
|
44
|
-
pending("Xcode version '#{instruments_version}' is not supported by this test - gem needs update!")
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
# brittle because some users will not have installed 6.1 or 7.0, but hey, why
|
49
|
-
# are them gem dev'ing or gem testing?
|
50
|
-
it 'should be able to return Simulator Support SDK dirs' do
|
51
|
-
actual = possible_simulator_support_sdk_dirs
|
52
|
-
instruments_version = instruments(:version)
|
53
|
-
if instruments_version == '5.1' or instruments_version == '5.1.1'
|
54
|
-
expect(actual.count).to be == 5
|
55
|
-
else
|
56
|
-
pending("Xcode version '#{instruments_version}' is not supported by this test - gem needs update!")
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
it 'should be able to find existing simulator support sdk dirs' do
|
61
|
-
mocked_support_dir = File.expand_path(File.join(__FILE__, '..', 'resources/enable-accessibility/'))
|
62
|
-
self.should_receive(:simulator_app_support_dir).and_return(mocked_support_dir)
|
63
|
-
actual = existing_simulator_support_sdk_dirs
|
64
|
-
expect(actual.count).to be == 5
|
65
|
-
end
|
66
|
-
|
67
|
-
|
68
|
-
describe 'enabling accessibility' do
|
69
|
-
|
70
|
-
before(:each) do
|
71
|
-
@sim_launcher = SimLauncher::Simulator.new
|
72
|
-
@sdk_detector = SimLauncher::SdkDetector.new(@sim_launcher)
|
73
|
-
quit_simulator
|
74
|
-
|
75
|
-
@latest_sdk = @sdk_detector.latest_sdk_version
|
76
|
-
@device_target = "iPhone Retina (4-inch) - Simulator - iOS #{@latest_sdk}"
|
77
|
-
@launch_args =
|
78
|
-
{
|
79
|
-
:launch_method => :instruments,
|
80
|
-
:reset => false,
|
81
|
-
:bundle_id => nil,
|
82
|
-
:device => 'iphone',
|
83
|
-
:no_stop => false,
|
84
|
-
:no_launch => false,
|
85
|
-
:sdk_version => @latest_sdk,
|
86
|
-
:app => lp_simple_example,
|
87
|
-
:timeout => 30,
|
88
|
-
:device_target => @device_target,
|
89
|
-
:launch_retries => 1
|
90
|
-
}
|
91
|
-
|
92
|
-
@launcher = Calabash::Cucumber::Launcher.new
|
93
|
-
|
94
|
-
end
|
95
|
-
|
96
|
-
def lp_simple_example
|
97
|
-
File.expand_path(File.join(__FILE__, '..', 'resources/enable-accessibility/LPSimpleExample-cal.app'))
|
98
|
-
end
|
99
|
-
|
100
|
-
def repopulate_sim_app_support_for_sdk(sdk=@sdk_detector.latest_sdk_version)
|
101
|
-
path = File.join(simulator_app_support_dir, "#{sdk}")
|
102
|
-
unless File.exist?(path)
|
103
|
-
calabash_info("repopulating simulator app support for sdk '#{sdk}'")
|
104
|
-
quit_simulator
|
105
|
-
@sim_launcher.launch_iphone_app(lp_simple_example, sdk)
|
106
|
-
sleep(5)
|
107
|
-
quit_simulator
|
108
|
-
end
|
109
|
-
end
|
110
|
-
|
111
|
-
describe 'on existing SDK directories' do
|
112
|
-
|
113
|
-
before(:each) do
|
114
|
-
reset_simulator_content_and_settings
|
115
|
-
end
|
116
|
-
|
117
|
-
it 'should not be able to launch LPSimpleExample-app b/c accessibility is not enabled' do
|
118
|
-
msgs =
|
119
|
-
[
|
120
|
-
'Will throw a "ScriptAgent quit unexpectedly" UI dialog!',
|
121
|
-
'',
|
122
|
-
'This dialog is generated because the app failed to a launch',
|
123
|
-
'correctly on the simulator. I checked run_loop and this is not',
|
124
|
-
'caused by anything there.',
|
125
|
-
'',
|
126
|
-
'AFAICT there is nothing to be done about this.']
|
127
|
-
calabash_warn(msgs.join("\n"))
|
128
|
-
begin
|
129
|
-
expect { @launcher.new_run_loop(@launch_args) }.to raise_error(Calabash::Cucumber::Launcher::StartError)
|
130
|
-
ensure
|
131
|
-
@launcher.stop
|
132
|
-
end
|
133
|
-
end
|
134
|
-
|
135
|
-
it 'should be able to enable accessibility for the latest sdk' do
|
136
|
-
repopulate_sim_app_support_for_sdk(@latest_sdk)
|
137
|
-
|
138
|
-
dir = File.join(simulator_app_support_dir, "#{@latest_sdk}")
|
139
|
-
enable_accessibility_in_sdk_dir(dir)
|
140
|
-
|
141
|
-
begin
|
142
|
-
expect(@launcher.new_run_loop(@launch_args)).to be_a(Hash)
|
143
|
-
ensure
|
144
|
-
@launcher.stop
|
145
|
-
end
|
146
|
-
|
147
|
-
end
|
148
|
-
end
|
149
|
-
|
150
|
-
describe 'on non-existing SDK directories' do
|
151
|
-
before(:each) do
|
152
|
-
quit_simulator
|
153
|
-
sleep(2)
|
154
|
-
existing_simulator_support_sdk_dirs.each do |dir|
|
155
|
-
FileUtils.rm_rf(dir)
|
156
|
-
end
|
157
|
-
|
158
|
-
reset_simulator_content_and_settings
|
159
|
-
|
160
|
-
quit_simulator
|
161
|
-
# let the iOS Simulator do what it needs to do at shut-down
|
162
|
-
sleep(2)
|
163
|
-
end
|
164
|
-
|
165
|
-
it 'should be able to enable accessibility on all possible simulators' do
|
166
|
-
enable_accessibility_on_simulators
|
167
|
-
@launch_args[:sdk_version] = nil
|
168
|
-
@launch_args[:timeout] = 20
|
169
|
-
@launch_args[:launch_retries] = 3
|
170
|
-
|
171
|
-
# these configurations correspond to iOS/Hardware configurations that
|
172
|
-
# do not exist. As an example, there is no iOS 6.1 64-bit implementation,
|
173
|
-
# so a simulator like:
|
174
|
-
#
|
175
|
-
# 'iPhone Retina (4-inch 64-bit) - Simulator - iOS 6.1'
|
176
|
-
#
|
177
|
-
# does not even make sense.
|
178
|
-
#
|
179
|
-
# ditto for 'iPhone - Simulator - iOS 7.0' - there is no non-retina
|
180
|
-
# iOS 7 hardware
|
181
|
-
# -1 Apple
|
182
|
-
excluded = [
|
183
|
-
'iPhone - Simulator - iOS 7.0',
|
184
|
-
'iPhone - Simulator - iOS 7.1',
|
185
|
-
'iPhone Retina (4-inch 64-bit) - Simulator - iOS 6.1',
|
186
|
-
'iPad Retina (64-bit) - Simulator - iOS 6.1'
|
187
|
-
]
|
188
|
-
instruments(:sims).each do |simulator|
|
189
|
-
if excluded.include?(simulator)
|
190
|
-
calabash_warn("skipping simulator '#{simulator}' - instruments passed us an invalid configuration!")
|
191
|
-
else
|
192
|
-
@launch_args[:device_target] = simulator
|
193
|
-
calabash_info("starting simulator '#{simulator}'")
|
194
|
-
begin
|
195
|
-
expect(@launcher.new_run_loop(@launch_args)).to be_a(Hash)
|
196
|
-
ensure
|
197
|
-
@launcher.stop
|
198
|
-
sleep(2)
|
199
|
-
end
|
200
|
-
end
|
201
|
-
end
|
202
|
-
end
|
203
|
-
|
204
|
-
end
|
205
|
-
end
|
206
|
-
end
|