calabash-cucumber 0.9.169.pre2 → 0.9.169.pre5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|