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.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +14 -1
  3. data/bin/calabash-ios-setup.rb +2 -4
  4. data/bin/calabash-ios-sim.rb +10 -40
  5. data/calabash-cucumber.gemspec +25 -22
  6. data/features-skeleton/support/01_launch.rb +1 -1
  7. data/lib/calabash-cucumber.rb +13 -1
  8. data/lib/calabash-cucumber/actions/instruments_actions.rb +0 -4
  9. data/lib/calabash-cucumber/actions/playback_actions.rb +0 -4
  10. data/lib/calabash-cucumber/core.rb +9 -16
  11. data/lib/calabash-cucumber/device.rb +11 -2
  12. data/lib/calabash-cucumber/environment_helpers.rb +4 -56
  13. data/lib/calabash-cucumber/ios7_operations.rb +4 -2
  14. data/lib/calabash-cucumber/keyboard_helpers.rb +6 -3
  15. data/lib/calabash-cucumber/launch/simulator_helper.rb +40 -386
  16. data/lib/calabash-cucumber/launch/simulator_launcher.rb +534 -0
  17. data/lib/calabash-cucumber/launcher.rb +172 -36
  18. data/lib/calabash-cucumber/operations.rb +3 -4
  19. data/lib/calabash-cucumber/playback_helpers.rb +15 -29
  20. data/lib/calabash-cucumber/rotation_helpers.rb +14 -10
  21. data/lib/calabash-cucumber/status_bar_helpers.rb +5 -1
  22. data/lib/calabash-cucumber/uia.rb +6 -12
  23. data/lib/calabash-cucumber/utils/logging.rb +97 -0
  24. data/lib/calabash-cucumber/utils/plist_buddy.rb +178 -0
  25. data/lib/calabash-cucumber/utils/simulator_accessibility.rb +250 -0
  26. data/lib/calabash-cucumber/utils/xctools.rb +95 -0
  27. data/lib/calabash-cucumber/version.rb +197 -2
  28. data/lib/calabash-cucumber/wait_helpers.rb +16 -20
  29. data/scripts/.irbrc +11 -6
  30. data/scripts/com.example.plist +0 -0
  31. data/scripts/launch.rb +1 -1
  32. data/spec/bin/calabash_ios_sim_spec.rb +24 -0
  33. data/spec/launcher_spec.rb +76 -0
  34. data/spec/logging_spec.rb +38 -0
  35. data/spec/plist_buddy_spec.rb +99 -0
  36. data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/Default-568h@2x.png +0 -0
  37. data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/Info.plist +0 -0
  38. data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/LPSimpleExample-cal +0 -0
  39. data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/PkgInfo +1 -0
  40. data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/InfoPlist.strings +0 -0
  41. data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPFirstViewController.nib +0 -0
  42. data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPFirstViewController~ipad.nib +0 -0
  43. data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPFourthViewController.nib +0 -0
  44. data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPFourthViewController~ipad.nib +0 -0
  45. data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPSecondViewController.nib +0 -0
  46. data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPSecondViewController~ipad.nib +0 -0
  47. data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPThirdViewController.nib +0 -0
  48. data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/en.lproj/LPThirdViewController~ipad.nib +0 -0
  49. data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/first.png +0 -0
  50. data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/first@2x.png +0 -0
  51. data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/second.png +0 -0
  52. data/spec/resources/enable-accessibility/LPSimpleExample-cal.app/second@2x.png +0 -0
  53. data/spec/resources/plist_buddy/com.example.plist +0 -0
  54. data/spec/resources/plist_buddy/com.testing.plist +18 -0
  55. data/spec/simulator_accessibility_spec.rb +144 -0
  56. data/spec/spec_helper.rb +31 -0
  57. data/spec/xctools_spec.rb +58 -0
  58. 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
@@ -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
@@ -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.pre2
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-04-17 00:00:00.000000000 Z
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.0
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.0
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.0.3
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