calabash-cucumber 0.9.169.pre2 → 0.9.169.pre5
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.
- checksums.yaml +4 -4
- data/Rakefile +14 -1
- data/bin/calabash-ios-setup.rb +2 -4
- data/bin/calabash-ios-sim.rb +10 -40
- data/calabash-cucumber.gemspec +25 -22
- data/features-skeleton/support/01_launch.rb +1 -1
- data/lib/calabash-cucumber.rb +13 -1
- data/lib/calabash-cucumber/actions/instruments_actions.rb +0 -4
- data/lib/calabash-cucumber/actions/playback_actions.rb +0 -4
- data/lib/calabash-cucumber/core.rb +9 -16
- data/lib/calabash-cucumber/device.rb +11 -2
- data/lib/calabash-cucumber/environment_helpers.rb +4 -56
- data/lib/calabash-cucumber/ios7_operations.rb +4 -2
- data/lib/calabash-cucumber/keyboard_helpers.rb +6 -3
- data/lib/calabash-cucumber/launch/simulator_helper.rb +40 -386
- data/lib/calabash-cucumber/launch/simulator_launcher.rb +534 -0
- data/lib/calabash-cucumber/launcher.rb +172 -36
- data/lib/calabash-cucumber/operations.rb +3 -4
- data/lib/calabash-cucumber/playback_helpers.rb +15 -29
- data/lib/calabash-cucumber/rotation_helpers.rb +14 -10
- data/lib/calabash-cucumber/status_bar_helpers.rb +5 -1
- data/lib/calabash-cucumber/uia.rb +6 -12
- data/lib/calabash-cucumber/utils/logging.rb +97 -0
- data/lib/calabash-cucumber/utils/plist_buddy.rb +178 -0
- data/lib/calabash-cucumber/utils/simulator_accessibility.rb +250 -0
- data/lib/calabash-cucumber/utils/xctools.rb +95 -0
- data/lib/calabash-cucumber/version.rb +197 -2
- data/lib/calabash-cucumber/wait_helpers.rb +16 -20
- data/scripts/.irbrc +11 -6
- data/scripts/com.example.plist +0 -0
- data/scripts/launch.rb +1 -1
- data/spec/bin/calabash_ios_sim_spec.rb +24 -0
- data/spec/launcher_spec.rb +76 -0
- data/spec/logging_spec.rb +38 -0
- data/spec/plist_buddy_spec.rb +99 -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 +1 -0
- 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 +18 -0
- data/spec/simulator_accessibility_spec.rb +144 -0
- data/spec/spec_helper.rb +31 -0
- data/spec/xctools_spec.rb +58 -0
- metadata +120 -34
@@ -0,0 +1,38 @@
|
|
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
|
@@ -0,0 +1,99 @@
|
|
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
|
Binary file
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
APPL????
|
Binary file
|
data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPFirstViewController.nib
ADDED
Binary file
|
Binary file
|
data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPFourthViewController.nib
ADDED
Binary file
|
Binary file
|
data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPSecondViewController.nib
ADDED
Binary file
|
Binary file
|
data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPThirdViewController.nib
ADDED
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,18 @@
|
|
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>
|
@@ -0,0 +1,144 @@
|
|
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 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
|
+
describe 'enabling accessibility' do
|
28
|
+
|
29
|
+
before(:each) do
|
30
|
+
@sim_launcher = SimLauncher::Simulator.new
|
31
|
+
@sdk_detector = SimLauncher::SdkDetector.new(@sim_launcher)
|
32
|
+
quit_simulator
|
33
|
+
end
|
34
|
+
|
35
|
+
def lp_simple_example
|
36
|
+
File.expand_path(File.join(__FILE__, '..', 'resources/enable-accessibility/LPSimpleExample-cal.app'))
|
37
|
+
end
|
38
|
+
|
39
|
+
def repopulate_sim_app_support_for_sdk(sdk=@sdk_detector.latest_sdk_version)
|
40
|
+
path = File.join(simulator_app_support_dir, "#{sdk}")
|
41
|
+
unless File.exist?(path)
|
42
|
+
calabash_info("repopulating simulator app support for sdk '#{sdk}'")
|
43
|
+
quit_simulator
|
44
|
+
@sim_launcher.launch_iphone_app(lp_simple_example, sdk)
|
45
|
+
sleep(5)
|
46
|
+
quit_simulator
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def repopulate_sim_app_support_all
|
51
|
+
@sdk_detector.available_sdk_versions.each do |sdk|
|
52
|
+
repopulate_sim_app_support_for_sdk(sdk)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
describe 'interacting with simulator app support sdk directories' do
|
57
|
+
it 'should be able to find all the sdk directories' do
|
58
|
+
repopulate_sim_app_support_all
|
59
|
+
|
60
|
+
expected = @sdk_detector.available_sdk_versions
|
61
|
+
actual = simulator_support_sdk_dirs
|
62
|
+
|
63
|
+
calabash_info("sdks = '#{expected}'")
|
64
|
+
actual.each { |path|
|
65
|
+
calabash_info("sdk path = '#{path}'")
|
66
|
+
}
|
67
|
+
|
68
|
+
expect(actual.count).to be == expected.count
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
describe 'enable accessibility with no AXInspector' do
|
73
|
+
|
74
|
+
before(:each) do
|
75
|
+
reset_simulator_content_and_settings
|
76
|
+
|
77
|
+
@latest_sdk = @sdk_detector.latest_sdk_version
|
78
|
+
@device_target = "iPhone Retina (4-inch) - Simulator - iOS #{@latest_sdk}"
|
79
|
+
@launch_args =
|
80
|
+
{
|
81
|
+
:launch_method => :instruments,
|
82
|
+
:reset => false,
|
83
|
+
:bundle_id => nil,
|
84
|
+
:device => 'iphone',
|
85
|
+
:no_stop => false,
|
86
|
+
:no_launch => false,
|
87
|
+
:sdk_version => @latest_sdk,
|
88
|
+
:app => lp_simple_example,
|
89
|
+
:timeout => 10,
|
90
|
+
:device_target => @device_target,
|
91
|
+
:launch_retries => 1
|
92
|
+
}
|
93
|
+
|
94
|
+
@launcher = Calabash::Cucumber::Launcher.new
|
95
|
+
end
|
96
|
+
|
97
|
+
it 'should not fail if the com.apple.Accessibility.plist does not exist' do
|
98
|
+
dir = File.join(simulator_app_support_dir, "#{@latest_sdk}")
|
99
|
+
expect(enable_accessibility_in_sdk_dir(dir, {:verbose => true})).to be == false
|
100
|
+
end
|
101
|
+
|
102
|
+
|
103
|
+
it 'should not be able to launch LPSimpleExample-app b/c accessibility is not enabled' do
|
104
|
+
msgs =
|
105
|
+
[
|
106
|
+
'Will throw a "ScriptAgent quit unexpectedly" UI dialog!',
|
107
|
+
'',
|
108
|
+
'This dialog is generated because the app failed to a launch',
|
109
|
+
'correctly on the simulator. I checked run_loop and this is not',
|
110
|
+
'caused by anything there.',
|
111
|
+
'',
|
112
|
+
'AFAICT there is nothing to be done about this.']
|
113
|
+
calabash_warn(msgs.join("\n"))
|
114
|
+
expect { @launcher.new_run_loop(@launch_args) }.to raise_error(Calabash::Cucumber::Launcher::StartError)
|
115
|
+
end
|
116
|
+
|
117
|
+
it 'should be able to enable accessibility for the latest sdk' do
|
118
|
+
repopulate_sim_app_support_for_sdk(@latest_sdk)
|
119
|
+
|
120
|
+
# i am not sure we need these tests
|
121
|
+
# the are checking the state of the 'clean' accessibility plist
|
122
|
+
# which is subject to change
|
123
|
+
# plist = File.join(simulator_app_support_dir, "#{@latest_sdk}", 'Library/Preferences/com.apple.Accessibility.plist')
|
124
|
+
# hash = accessibility_properties_hash()
|
125
|
+
|
126
|
+
# expect(plist_read(hash[:access_enabled], plist)).to be == 'true'
|
127
|
+
# expect(plist_read(hash[:app_access_enabled], plist)).to be == 'true'
|
128
|
+
|
129
|
+
# flickers depending on the state - not a crucial test
|
130
|
+
# expect(plist_read(hash[:automation_enabled], plist)).to be == 'true'
|
131
|
+
# expect(plist_read(hash[:inspector_showing], plist)).to be == 'false'
|
132
|
+
# expect(plist_key_exists?(hash[:inspector_full_size], plist)).to be == false
|
133
|
+
|
134
|
+
# flickers depending on the state - not a crucial test
|
135
|
+
# expect(plist_key_exists?(hash[:inspector_frame], plist)).to be == false
|
136
|
+
|
137
|
+
dir = File.join(simulator_app_support_dir, "#{@latest_sdk}")
|
138
|
+
enable_accessibility_in_sdk_dir(dir)
|
139
|
+
|
140
|
+
expect(@launcher.new_run_loop(@launch_args)).to be_a(Hash)
|
141
|
+
end
|
142
|
+
end
|
143
|
+
end
|
144
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'rspec'
|
2
|
+
require 'calabash-cucumber/utils/logging'
|
3
|
+
|
4
|
+
include Calabash::Cucumber::Logging
|
5
|
+
|
6
|
+
# spec_helper.rb
|
7
|
+
RSpec.configure do |config|
|
8
|
+
config.expect_with :rspec do |c|
|
9
|
+
c.syntax = :expect
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
module Kernel
|
14
|
+
def capture_stdout
|
15
|
+
out = StringIO.new
|
16
|
+
$stdout = out
|
17
|
+
yield
|
18
|
+
return out
|
19
|
+
ensure
|
20
|
+
$stdout = STDOUT
|
21
|
+
end
|
22
|
+
|
23
|
+
def capture_stderr
|
24
|
+
out = StringIO.new
|
25
|
+
$stderr = out
|
26
|
+
yield
|
27
|
+
return out
|
28
|
+
ensure
|
29
|
+
$stderr = STDERR
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'calabash-cucumber/utils/xctools'
|
2
|
+
|
3
|
+
include Calabash::Cucumber::XcodeTools
|
4
|
+
|
5
|
+
describe 'xcode tools module' do
|
6
|
+
|
7
|
+
describe 'developer directory' do
|
8
|
+
it 'should respect the DEVELOPER_DIR env var' do
|
9
|
+
original = ENV['DEVELOPER_DIR']
|
10
|
+
begin
|
11
|
+
ENV['DEVELOPER_DIR'] = '/foo/bar'
|
12
|
+
expect(xcode_developer_dir).to be == ENV['DEVELOPER_DIR']
|
13
|
+
ensure
|
14
|
+
ENV['DEVELOPER_DIR'] = original
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'should return the default developer directory' do
|
19
|
+
actual = `xcode-select --print-path`.chomp
|
20
|
+
expect(xcode_developer_dir).to be == actual
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'should find the developer usr/bin directory' do
|
24
|
+
actual = File.join(xcode_developer_dir, '/usr/bin')
|
25
|
+
expect(xcode_bin_dir).to be == "#{actual}"
|
26
|
+
expect(File.exists?("#{xcode_bin_dir}/xcodebuild")).to be == true
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe 'instruments function' do
|
31
|
+
|
32
|
+
it 'should find the binary' do
|
33
|
+
actual = File.join(xcode_bin_dir, 'instruments')
|
34
|
+
expect(instruments).to be == actual
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'should check its arguments' do
|
38
|
+
expect { instruments(:foo) }.to raise_error(ArgumentError)
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'should report its version' do
|
42
|
+
version = instruments(:version)
|
43
|
+
expect(['5.1.1', '5.1'].include?(version)).to be == true
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'should be tell if it supports the -s flag' do
|
47
|
+
expect(instruments_supports_hyphen_s?('5.1.1')).to be == true
|
48
|
+
expect(instruments_supports_hyphen_s?('5.1')).to be == true
|
49
|
+
expect(instruments_supports_hyphen_s?('5.0.2')).to be == false
|
50
|
+
expect(instruments_supports_hyphen_s?('4.6.3')).to be == false
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'should be able to return a list of installed simulators' do
|
54
|
+
sims = instruments(:sims)
|
55
|
+
expect(installed_simulators).to be == sims
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
metadata
CHANGED
@@ -1,197 +1,225 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: calabash-cucumber
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.169.
|
4
|
+
version: 0.9.169.pre5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Karl Krukow
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-05-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cucumber
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 1.3.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 1.3.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: calabash-common
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 0.0.1
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 0.0.1
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: json
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: edn
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: CFPropertyList
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: sim_launcher
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - ~>
|
87
|
+
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: 0.4.9
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - ~>
|
94
|
+
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: 0.4.9
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: slowhandcuke
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - ">="
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '0'
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: geocoder
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- - ~>
|
115
|
+
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: 1.1.8
|
118
118
|
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- - ~>
|
122
|
+
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: 1.1.8
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: httpclient
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
|
-
- - ~>
|
129
|
+
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
131
|
version: 2.3.3
|
132
132
|
type: :runtime
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
|
-
- - ~>
|
136
|
+
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: 2.3.3
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: bundler
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
|
-
- - ~>
|
143
|
+
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
145
|
version: '1.1'
|
146
146
|
type: :runtime
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
|
-
- - ~>
|
150
|
+
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '1.1'
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: run_loop
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
156
156
|
requirements:
|
157
|
-
- - ~>
|
157
|
+
- - "~>"
|
158
158
|
- !ruby/object:Gem::Version
|
159
|
-
version: 0.2.
|
159
|
+
version: 0.2.1.pre1
|
160
160
|
type: :runtime
|
161
161
|
prerelease: false
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
|
-
- - ~>
|
164
|
+
- - "~>"
|
165
165
|
- !ruby/object:Gem::Version
|
166
|
-
version: 0.2.
|
166
|
+
version: 0.2.1.pre1
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
168
|
name: awesome_print
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
170
170
|
requirements:
|
171
|
-
- -
|
171
|
+
- - ">="
|
172
172
|
- !ruby/object:Gem::Version
|
173
173
|
version: '0'
|
174
174
|
type: :runtime
|
175
175
|
prerelease: false
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
|
-
- -
|
178
|
+
- - ">="
|
179
179
|
- !ruby/object:Gem::Version
|
180
180
|
version: '0'
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
182
|
name: xamarin-test-cloud
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
184
184
|
requirements:
|
185
|
-
- - ~>
|
185
|
+
- - "~>"
|
186
186
|
- !ruby/object:Gem::Version
|
187
187
|
version: 0.9.27
|
188
188
|
type: :runtime
|
189
189
|
prerelease: false
|
190
190
|
version_requirements: !ruby/object:Gem::Requirement
|
191
191
|
requirements:
|
192
|
-
- - ~>
|
192
|
+
- - "~>"
|
193
193
|
- !ruby/object:Gem::Version
|
194
194
|
version: 0.9.27
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: rake
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - ">="
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '0'
|
202
|
+
type: :development
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - ">="
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '0'
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: rspec
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - ">="
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: '0'
|
216
|
+
type: :development
|
217
|
+
prerelease: false
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - ">="
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '0'
|
195
223
|
description: calabash-cucumber drives tests for native iOS apps. You must link your
|
196
224
|
app with calabash-ios-server framework to execute tests.
|
197
225
|
email:
|
@@ -201,7 +229,7 @@ executables:
|
|
201
229
|
extensions: []
|
202
230
|
extra_rdoc_files: []
|
203
231
|
files:
|
204
|
-
- .gitignore
|
232
|
+
- ".gitignore"
|
205
233
|
- CHANGES.txt
|
206
234
|
- Gemfile
|
207
235
|
- LICENSE
|
@@ -244,6 +272,7 @@ files:
|
|
244
272
|
- lib/calabash-cucumber/keyboard_helpers.rb
|
245
273
|
- lib/calabash-cucumber/keychain_helpers.rb
|
246
274
|
- lib/calabash-cucumber/launch/simulator_helper.rb
|
275
|
+
- lib/calabash-cucumber/launch/simulator_launcher.rb
|
247
276
|
- lib/calabash-cucumber/launcher.rb
|
248
277
|
- lib/calabash-cucumber/map.rb
|
249
278
|
- lib/calabash-cucumber/operations.rb
|
@@ -353,6 +382,10 @@ files:
|
|
353
382
|
- lib/calabash-cucumber/status_bar_helpers.rb
|
354
383
|
- lib/calabash-cucumber/tests_helpers.rb
|
355
384
|
- lib/calabash-cucumber/uia.rb
|
385
|
+
- lib/calabash-cucumber/utils/logging.rb
|
386
|
+
- lib/calabash-cucumber/utils/plist_buddy.rb
|
387
|
+
- lib/calabash-cucumber/utils/simulator_accessibility.rb
|
388
|
+
- lib/calabash-cucumber/utils/xctools.rb
|
356
389
|
- lib/calabash-cucumber/version.rb
|
357
390
|
- lib/calabash-cucumber/wait_helpers.rb
|
358
391
|
- scripts/.irbrc
|
@@ -363,12 +396,39 @@ files:
|
|
363
396
|
- scripts/EmptyAppHack.app/Info.plist
|
364
397
|
- scripts/EmptyAppHack.app/PkgInfo
|
365
398
|
- scripts/EmptyAppHack.app/en.lproj/InfoPlist.strings
|
399
|
+
- scripts/com.example.plist
|
366
400
|
- scripts/data/.GlobalPreferences.plist
|
367
401
|
- scripts/data/clients.plist
|
368
402
|
- scripts/data/com.apple.Accessibility-5.1.plist
|
369
403
|
- scripts/data/com.apple.Accessibility.plist
|
370
404
|
- scripts/launch.rb
|
371
405
|
- scripts/reset_simulator.scpt
|
406
|
+
- spec/bin/calabash_ios_sim_spec.rb
|
407
|
+
- spec/launcher_spec.rb
|
408
|
+
- spec/logging_spec.rb
|
409
|
+
- spec/plist_buddy_spec.rb
|
410
|
+
- spec/resources/enable-accessibility/LPSimpleExample-cal.app/Default-568h@2x.png
|
411
|
+
- spec/resources/enable-accessibility/LPSimpleExample-cal.app/Info.plist
|
412
|
+
- spec/resources/enable-accessibility/LPSimpleExample-cal.app/LPSimpleExample-cal
|
413
|
+
- spec/resources/enable-accessibility/LPSimpleExample-cal.app/PkgInfo
|
414
|
+
- spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/InfoPlist.strings
|
415
|
+
- spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPFirstViewController.nib
|
416
|
+
- spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPFirstViewController~ipad.nib
|
417
|
+
- spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPFourthViewController.nib
|
418
|
+
- spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPFourthViewController~ipad.nib
|
419
|
+
- spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPSecondViewController.nib
|
420
|
+
- spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPSecondViewController~ipad.nib
|
421
|
+
- spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPThirdViewController.nib
|
422
|
+
- spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPThirdViewController~ipad.nib
|
423
|
+
- spec/resources/enable-accessibility/LPSimpleExample-cal.app/first.png
|
424
|
+
- spec/resources/enable-accessibility/LPSimpleExample-cal.app/first@2x.png
|
425
|
+
- spec/resources/enable-accessibility/LPSimpleExample-cal.app/second.png
|
426
|
+
- spec/resources/enable-accessibility/LPSimpleExample-cal.app/second@2x.png
|
427
|
+
- spec/resources/plist_buddy/com.example.plist
|
428
|
+
- spec/resources/plist_buddy/com.testing.plist
|
429
|
+
- spec/simulator_accessibility_spec.rb
|
430
|
+
- spec/spec_helper.rb
|
431
|
+
- spec/xctools_spec.rb
|
372
432
|
- staticlib/calabash.framework.zip
|
373
433
|
homepage: http://calaba.sh
|
374
434
|
licenses: []
|
@@ -379,19 +439,45 @@ require_paths:
|
|
379
439
|
- lib
|
380
440
|
required_ruby_version: !ruby/object:Gem::Requirement
|
381
441
|
requirements:
|
382
|
-
- -
|
442
|
+
- - ">="
|
383
443
|
- !ruby/object:Gem::Version
|
384
444
|
version: '0'
|
385
445
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
386
446
|
requirements:
|
387
|
-
- -
|
447
|
+
- - ">"
|
388
448
|
- !ruby/object:Gem::Version
|
389
449
|
version: 1.3.1
|
390
450
|
requirements: []
|
391
451
|
rubyforge_project:
|
392
|
-
rubygems_version: 2.
|
452
|
+
rubygems_version: 2.2.2
|
393
453
|
signing_key:
|
394
454
|
specification_version: 4
|
395
455
|
summary: Client for calabash-ios-server for automated functional testing on iOS
|
396
456
|
test_files:
|
397
457
|
- features/step_definitions/calabash_steps.rb
|
458
|
+
- spec/bin/calabash_ios_sim_spec.rb
|
459
|
+
- spec/launcher_spec.rb
|
460
|
+
- spec/logging_spec.rb
|
461
|
+
- spec/plist_buddy_spec.rb
|
462
|
+
- spec/resources/enable-accessibility/LPSimpleExample-cal.app/Default-568h@2x.png
|
463
|
+
- spec/resources/enable-accessibility/LPSimpleExample-cal.app/Info.plist
|
464
|
+
- spec/resources/enable-accessibility/LPSimpleExample-cal.app/LPSimpleExample-cal
|
465
|
+
- spec/resources/enable-accessibility/LPSimpleExample-cal.app/PkgInfo
|
466
|
+
- spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/InfoPlist.strings
|
467
|
+
- spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPFirstViewController.nib
|
468
|
+
- spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPFirstViewController~ipad.nib
|
469
|
+
- spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPFourthViewController.nib
|
470
|
+
- spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPFourthViewController~ipad.nib
|
471
|
+
- spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPSecondViewController.nib
|
472
|
+
- spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPSecondViewController~ipad.nib
|
473
|
+
- spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPThirdViewController.nib
|
474
|
+
- spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPThirdViewController~ipad.nib
|
475
|
+
- spec/resources/enable-accessibility/LPSimpleExample-cal.app/first.png
|
476
|
+
- spec/resources/enable-accessibility/LPSimpleExample-cal.app/first@2x.png
|
477
|
+
- spec/resources/enable-accessibility/LPSimpleExample-cal.app/second.png
|
478
|
+
- spec/resources/enable-accessibility/LPSimpleExample-cal.app/second@2x.png
|
479
|
+
- spec/resources/plist_buddy/com.example.plist
|
480
|
+
- spec/resources/plist_buddy/com.testing.plist
|
481
|
+
- spec/simulator_accessibility_spec.rb
|
482
|
+
- spec/spec_helper.rb
|
483
|
+
- spec/xctools_spec.rb
|