briar 1.1.4 → 1.1.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d49cb3fe556363a8be32e521763b2d87baddbdf1
4
- data.tar.gz: c6a7236f031de98acc9f62bd96a83d79f17cbd29
3
+ metadata.gz: 3652eb8d452cef6914fd372977cb830c579b290c
4
+ data.tar.gz: 649090d856a0ed4efd60949c52b75616fccb76b1
5
5
  SHA512:
6
- metadata.gz: d492645760249a4dd51a07109a707f151881e2dd61e6003dcc8866b9064372ef6f329708b5eb0ed0e5e2c467b34a73f4a2b4887ab31ad2f65396685a39387178
7
- data.tar.gz: 97a6a46d17a6ea07274ccaa59b96bc083033126b1f72d977a317e4d05095443dc980b360d474e7e0f325767f3a8c325bcde94faaceb71b5b78d372d367e44109
6
+ metadata.gz: 0896b7481025ecb6c08fc5d0153c9fc56c9e0c6d615b282eb05e7b7527df7a3daaa826c3c01776537e91b6f5121503d67e9ea77f80eaf661f83a8ba5d7e97afe
7
+ data.tar.gz: 4d5e266e4e9f81e330aa9d0578764cdc1ff57132a0da101a2c785d228757b8f44c71168e977ccd3b68af64e6cf81946a846b4d52ff50c42cdf57570b43f37c5d
data/.guardrc ADDED
@@ -0,0 +1 @@
1
+ Guard.options[:clear] = true
data/.rspec ADDED
@@ -0,0 +1,5 @@
1
+ --color
2
+ --warnings
3
+ #--backtrace
4
+ --format documentation
5
+ --require spec_helper
data/.travis.yml ADDED
@@ -0,0 +1,20 @@
1
+ language: objective-c
2
+ cache: bundle
3
+
4
+ before_script:
5
+ - script/ci/travis/instruments-auth.sh
6
+
7
+ script:
8
+ - bundle update
9
+ - bundle exec rake spec
10
+
11
+ rvm:
12
+ - 1.9.3
13
+ - 2.1.2
14
+
15
+ notifications:
16
+ email:
17
+ recipients:
18
+ - joshuajmoody@gmail.com
19
+ on_success: change
20
+ on_failure: always
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,40 @@
1
+ ## Contributing
2
+
3
+ ***All pull requests should be based off the `develop` branch.***
4
+
5
+ Briar uses a git-flow workflow.
6
+
7
+ See these links for information about git-flow and git best practices.
8
+
9
+ ##### Git Flow Step-by-Step guide
10
+
11
+ * https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow
12
+
13
+ ##### Git Best Practices
14
+
15
+ * http://justinhileman.info/article/changing-history/
16
+
17
+ ##### git-flow command line tool
18
+
19
+ We don't use the git-flow tools, but this is useful anyway.
20
+
21
+ * http://danielkummer.github.io/git-flow-cheatsheet/
22
+
23
+ ## Start a Feature
24
+
25
+ Start your work on a feature branch based off develop.
26
+
27
+ ```
28
+ # If you don't already have the develop branch
29
+ $ git fetch origin
30
+ $ git co -t origin/develop
31
+
32
+ # If you already have the develop branch
33
+ $ git co develop
34
+ $ git pull origin develop
35
+ $ git co -b feature/my-new-feature
36
+
37
+ # Publish your branch and make a pull-request on `develop`
38
+ $ git push -u origin feature/my-new-feature
39
+ ```
40
+
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- [![Dependency Status](https://gemnasium.com/jmoody/briar.svg)](https://gemnasium.com/jmoody/briar)
1
+ [![Build Status](https://travis-ci.org/jmoody/briar.svg)](https://travis-ci.org/jmoody/briar) [![Dependency Status](https://gemnasium.com/jmoody/briar.svg)](https://gemnasium.com/jmoody/briar)
2
2
  [![License](https://go-shields.herokuapp.com/license-MIT-blue.png)](http://opensource.org/licenses/MIT)
3
3
 
4
4
  ====
@@ -14,9 +14,9 @@ a shared language between developers, clients, and users. The [steps that briar
14
14
 
15
15
  To see briar in action, take a look at https://github.com/jmoody/briar-ios-example
16
16
 
17
- ### motivation
17
+ ### Motivation
18
18
 
19
- DRY: I have several iOS projects that use calabash-cucumber and I found I was rewriting lots of supporting code.
19
+ DRY: I have many iOS projects that use Calabash and I found I was rewriting a lot of supporting code.
20
20
 
21
21
  ## Installation
22
22
 
@@ -27,7 +27,7 @@ In your Gemfile:
27
27
  ```
28
28
  gem 'briar', '~> 1.1.2'
29
29
 
30
- # to use the briar XTC developer tools, include rake
30
+ # To use the briar XTC developer tools, include rake
31
31
  gem 'rake', '~> 10.3'
32
32
  ```
33
33
 
@@ -38,7 +38,7 @@ require 'calabash-cucumber/cucumber'
38
38
  ENV['NO_BRIAR_PREDEFINED_STEPS'] = '1'
39
39
  require 'briar/cucumber'
40
40
 
41
- # optional
41
+ # Optional
42
42
  I18n.enforce_available_locales = false
43
43
  ```
44
44
 
@@ -115,18 +115,17 @@ _"But returning to the practical: No release version of SemVer is compatible wit
115
115
  - [1] http://semver.org/
116
116
  - [2] http://gravitext.com/2012/07/22/versioning.html
117
117
 
118
-
119
- ## Why call it briar?
118
+ ## Why call it briar?
120
119
 
121
120
  * http://en.wikipedia.org/wiki/Smoking_pipe_(tobacco)#Calabash
122
121
  * http://en.wikipedia.org/wiki/Smoking_pipe_(tobacco)#Briar
123
122
 
124
123
  ## Contributing
125
124
 
126
- 1. Fork it
127
- 2. Create your feature branch (`git checkout -b feature/my-new-feature`)
128
- 3. Commit your changes (`git commit -am 'Add some feature'`)
129
- 4. Push to the branch (`git push -u origin feature/my-new-feature`)
130
- 5. Create new Pull Request
125
+ All pull requests should be based off the `develop` branch.
126
+
127
+ For more details see the [CONTRIBUTING.md](CONTRIBUTING.md) document.
128
+
129
+ Please do not change the version number. :)
130
+
131
131
 
132
- Please do not change the version number.
data/Rakefile CHANGED
@@ -1,2 +1,10 @@
1
+ require 'bundler'
1
2
  require 'bundler/gem_tasks'
3
+ Bundler::GemHelper.install_tasks
4
+
5
+ require 'rspec/core/rake_task'
6
+
7
+ RSpec::Core::RakeTask.new do |t|
8
+ t.pattern = Dir.glob('spec/**/*_spec.rb')
9
+ end
2
10
 
data/bin/briar_console.rb CHANGED
@@ -44,7 +44,7 @@ end
44
44
  #noinspection RubyStringKeysInHashInspection
45
45
  def simulator_variables(sdk_version)
46
46
  {'DEVICE_TARGET' => 'simulator',
47
- 'SKD_VERSION' => sdk_version}
47
+ 'SDK_VERSION' => sdk_version}
48
48
  end
49
49
 
50
50
  #noinspection RubyStringKeysInHashInspection
@@ -131,4 +131,4 @@ def briar_console(args)
131
131
  end
132
132
  console(where)
133
133
  end
134
- end
134
+ end
data/bin/briar_help.rb CHANGED
@@ -219,7 +219,7 @@ def print_resign_help
219
219
 
220
220
  #{help_experimental}
221
221
 
222
- #{help_command('resign </path/to/your.ipa> </path/to/your.mobileprovision> <wildcard-prefix> <signing-identity>')}
222
+ #{help_command('resign </path/to/your.ipa> </path/to/your.mobileprovision> <wildcard-prefix> <signing-identity> [new-bundle-identifier]')}
223
223
 
224
224
  #{help_env_var('BRIAR_DONT_OPEN_ON_RESIGN', "Set this to 1 if you don't want to open the resigning directory in the Finder")}
225
225
 
data/bin/briar_resign.rb CHANGED
@@ -15,7 +15,7 @@ end
15
15
  def briar_resign(args)
16
16
  if args.length < 4
17
17
  msg('Usage') do
18
- puts 'briar resign </path/to/your.ipa> </path/to/your.mobileprovision> <wildcard-prefix> <signing-identity> <optional-application-id>'
18
+ puts 'briar resign </path/to/your.ipa> </path/to/your.mobileprovision> <wildcard-prefix> <signing-identity> [new-bundle-identifier]'
19
19
  end
20
20
  exit 1
21
21
  end
@@ -76,9 +76,9 @@ def briar_resign(args)
76
76
  :wildcard => wildcard}
77
77
 
78
78
  if args.length == 5
79
- app_id = args[4]
80
- puts "INFO: will resign with a new application id '#{app_id}'"
81
- options[:app_id] = app_id
79
+ bundle_identifier = args[4]
80
+ puts "INFO: will resign with a new application id '#{bundle_identifier}'"
81
+ options[:bundle_identifier] = bundle_identifier
82
82
  end
83
83
 
84
84
  resign_ipa(options)
@@ -182,19 +182,19 @@ def resign_ipa(options)
182
182
 
183
183
  puts "INFO: parsed plist at '#{info_plist_path}'"
184
184
 
185
- app_id = options[:app_id] ? options[:app_id] : data['CFBundleIdentifier']
186
- unless app_id
185
+ bundle_identifier = options[:bundle_identifier] ? options[:bundle_identifier] : data['CFBundleIdentifier']
186
+ unless bundle_identifier
187
187
  msg 'error' do
188
188
  puts "Unable to find CFBundleIdentifier in plist '#{data}'"
189
189
  end
190
190
  exit 1
191
191
  end
192
192
 
193
- puts "INFO: found bundle identifier '#{app_id}'"
193
+ puts "INFO: found bundle identifier '#{bundle_identifier}'"
194
194
  # Save changes to plist
195
- unless data['CFBundleIdentifier'] == app_id
196
- puts "INFO: saving the new bundle identifier '#{app_id}' to plist file"
197
- data['CFBundleIdentifier'] = app_id
195
+ unless data['CFBundleIdentifier'] == bundle_identifier
196
+ puts "INFO: saving the new bundle identifier '#{bundle_identifier}' to plist file"
197
+ data['CFBundleIdentifier'] = bundle_identifier
198
198
  plist.value = CFPropertyList.guess(data)
199
199
  plist.save(info_plist_path, CFPropertyList::List::FORMAT_XML)
200
200
  end
@@ -202,14 +202,14 @@ def resign_ipa(options)
202
202
 
203
203
 
204
204
  bundle_exec = data['CFBundleExecutable']
205
-
205
+
206
206
  unless bundle_exec
207
207
  msg 'error' do
208
208
  puts "unable to find CFBundleExecutable in plist '#{data}'"
209
209
  end
210
210
  exit 1
211
211
  end
212
-
212
+
213
213
  puts "INFO: found bundle executable '#{bundle_exec}'"
214
214
 
215
215
  appname = app_path.split('.app')[0]
@@ -225,10 +225,10 @@ def resign_ipa(options)
225
225
  file.puts "<plist version=\"1.0\">"
226
226
  file.puts '<dict>'
227
227
  file.puts ' <key>application-identifier</key>'
228
- file.puts " <string>#{wildcard}.#{app_id}</string>"
228
+ file.puts " <string>#{wildcard}.#{bundle_identifier}</string>"
229
229
  file.puts ' <key>keychain-access-groups</key>'
230
230
  file.puts ' <array>'
231
- file.puts " <string>#{wildcard}.#{app_id}</string>"
231
+ file.puts " <string>#{wildcard}.#{bundle_identifier}</string>"
232
232
  file.puts ' </array>'
233
233
  file.puts ' <key>get-task-allow</key>'
234
234
  file.puts ' <true/>'
data/briar.gemspec CHANGED
@@ -34,19 +34,28 @@ Gem::Specification.new do |gem|
34
34
  gem.add_runtime_dependency 'dotenv', '~> 1.0.2'
35
35
  gem.add_runtime_dependency 'ansi', '~> 1.4'
36
36
  gem.add_runtime_dependency 'rainbow', '~> 2.0'
37
- # downgrade because of xtc gem - wants ~> 1.3.3.1
37
+ # Downgrade because of xtc gem wants ~> 1.3.3.1.
38
38
  gem.add_runtime_dependency 'retriable', '< 1.5', '>= 1.3'
39
- # test cloud requires 1.3.5
39
+ # Test cloud requires 1.3.5.
40
40
  gem.add_runtime_dependency 'bundler', '< 2.0', '>= 1.3.5'
41
41
  gem.add_runtime_dependency 'xamarin-test-cloud', '< 1.0', '>= 0.9.35'
42
42
  gem.add_runtime_dependency 'rake', '~> 10.3'
43
43
 
44
- # downgrading to 1.0.0 from 1.2.0
44
+ # Would like to use 1.2.
45
45
  # https://github.com/xamarin/test-cloud-command-line/issues/3
46
- gem.add_runtime_dependency 'syntax', '~>1.0'
46
+ # https://github.com/LessPainful/lesspainfulformatter/pull/1
47
+ gem.add_runtime_dependency 'syntax', '~> 1.0'
47
48
 
48
49
  gem.add_development_dependency 'travis', '~> 1.7'
49
50
  gem.add_development_dependency 'yard', '~> 0.8'
51
+
52
+ # Version 0.1.7 causes problems on the XTC.
50
53
  gem.add_development_dependency 'xcpretty', '0.1.6'
51
54
 
55
+ gem.add_development_dependency('rspec', '~> 3.0')
56
+ gem.add_development_dependency('guard-rspec', '~> 4.3')
57
+ gem.add_development_dependency('guard-bundler', '~> 2.0')
58
+ gem.add_development_dependency('growl', '~> 1.0')
59
+ gem.add_development_dependency('rb-readline', '~> 0.5')
60
+
52
61
  end
@@ -0,0 +1,5 @@
1
+ ## 1.1.5 changelog
2
+
3
+ ## Fixes
4
+
5
+ Improves iOS 8 alert and sheet handling.
@@ -3,6 +3,8 @@ module Briar
3
3
  module Alerts_and_Sheets
4
4
 
5
5
  def query_str_for_sheet(sheet_id)
6
+ # Ignoring argument because iOS 8 sheets do not retain their accessibilityIdentifier
7
+ return "view:'_UIAlertControllerView'" if ios8?
6
8
  if sheet_id
7
9
  "actionSheet marked:'#{sheet_id}'"
8
10
  else
@@ -35,7 +37,11 @@ module Briar
35
37
  end
36
38
 
37
39
  def wait_for_sheet (sheet_id, timeout=BRIAR_WAIT_TIMEOUT)
38
- msg = "waited for '#{timeout}' seconds but did not see '#{sheet_id}'"
40
+ if sheet_id
41
+ msg = "waited for '#{timeout}' seconds but did not see '#{sheet_id}'"
42
+ else
43
+ msg = "waited for '#{timeout}' seconds but did not see UIActionSheet"
44
+ end
39
45
  wait_for(:timeout => timeout,
40
46
  :retry_frequency => BRIAR_WAIT_RETRY_FREQ,
41
47
  :post_timeout => BRIAR_WAIT_STEP_PAUSE,
@@ -63,7 +69,11 @@ module Briar
63
69
 
64
70
  def sheet_button_exists? (button_title, sheet_id=nil)
65
71
  sheet_query = query_str_for_sheet sheet_id
66
- query("#{sheet_query} child button child label", :text).include?(button_title)
72
+ if ios8?
73
+ query("#{query_str_for_sheet sheet_id} descendant view:'_UIAlertControllerActionView' marked:'#{button_title}'")
74
+ else
75
+ query("#{sheet_query} child button child label", :text).include?(button_title)
76
+ end
67
77
  end
68
78
 
69
79
  def should_see_button_on_sheet(button_title, sheet_id=nil)
@@ -89,7 +99,11 @@ module Briar
89
99
  def touch_sheet_button (button_title, sheet_id=nil)
90
100
  sheet_query = query_str_for_sheet sheet_id
91
101
  should_see_button_on_sheet button_title, sheet_id
92
- touch("#{sheet_query} child button child label marked:'#{button_title}'")
102
+ if ios8?
103
+ touch("#{query_str_for_sheet sheet_id} descendant view:'_UIAlertControllerActionView' marked:'#{button_title}'")
104
+ else
105
+ touch("#{sheet_query} child button child label marked:'#{button_title}'")
106
+ end
93
107
  end
94
108
 
95
109
  def touch_sheet_button_and_wait_for_view(button_title, view_id, sheet_id=nil)
@@ -41,13 +41,18 @@ module Briar
41
41
  end
42
42
 
43
43
  def should_see_alert_with_title (title, timeout=BRIAR_WAIT_TIMEOUT)
44
- if ios7?
45
- warn 'WARN: cannot distinguish between alert titles and messages'
46
- should_see_alert
47
- msg = "waited for '#{timeout}' but did not see an alert"
48
- opts = wait_opts(msg, timeout)
49
- wait_for(opts) do
50
- not uia_query(:view, {:marked => "#{title}"}).empty?
44
+ should_see_alert
45
+ if uia_available?
46
+ msg = "expected to see alert with title '#{message}'"
47
+ wait_for(:timeout => timeout,
48
+ :retry_frequency => BRIAR_WAIT_RETRY_FREQ,
49
+ :post_timeout => BRIAR_WAIT_STEP_PAUSE,
50
+ :timeout_message => msg) do
51
+ if ios8?
52
+ not query("view:'_UIAlertControllerView' marked:'#{message}'").empty?
53
+ else
54
+ not uia_query(:view, {:marked => "#{message}"}).empty?
55
+ end
51
56
  end
52
57
  else
53
58
  qstr = 'alertView child label'
@@ -60,11 +65,18 @@ module Briar
60
65
  end
61
66
 
62
67
  def should_see_alert_with_message (message, timeout=BRIAR_WAIT_TIMEOUT)
68
+ should_see_alert
63
69
  if uia_available?
64
- warn '\nWARN: cannot distinguish between alert titles and messages'
65
- should_see_alert
66
- if uia_query(:view, {:marked => "#{message}"}).empty?
67
- screenshot_and_raise "expected to see alert with title '#{message}'"
70
+ msg = "expected to see alert with title '#{message}'"
71
+ wait_for(:timeout => timeout,
72
+ :retry_frequency => BRIAR_WAIT_RETRY_FREQ,
73
+ :post_timeout => BRIAR_WAIT_STEP_PAUSE,
74
+ :timeout_message => msg) do
75
+ if ios8?
76
+ not query("view:'_UIAlertControllerView' marked:'#{message}'").empty?
77
+ else
78
+ not uia_query(:view, {:marked => "#{message}"}).empty?
79
+ end
68
80
  end
69
81
  else
70
82
  qstr = 'alertView child label'
@@ -105,7 +117,9 @@ module Briar
105
117
 
106
118
  def touch_alert_button(button_title)
107
119
  should_see_alert
108
- if ios7?
120
+ if ios8?
121
+ touch("view marked:'#{button_title}' parent view:'_UIAlertControllerCollectionViewCell'")
122
+ elsif ios7?
109
123
  touch("view marked:'#{button_title}'")
110
124
  else
111
125
  touch("alertView child button marked:'#{button_title}'")
data/lib/briar/email.rb CHANGED
@@ -138,14 +138,17 @@ module Briar
138
138
  step_pause
139
139
  touch_sheet_button_and_wait_for_view 'Delete Draft', view_id
140
140
  else
141
- sbo = status_bar_orientation.to_sym
142
141
 
143
- if sbo.eql?(:left) or sbo.eql?(:right)
144
- pending "iOS > 5 detected AND orientation '#{sbo}' - there is a bug in UIAutomation that prohibits touching the cancel button"
145
- end
142
+ if ios6? or ios7?
143
+ sbo = status_bar_orientation.to_sym
144
+
145
+ if sbo.eql?(:left) or sbo.eql?(:right)
146
+ pending "5 < iOS < 8 detected AND orientation '#{sbo}' - there is a bug in UIAutomation that prohibits touching the cancel button"
147
+ end
146
148
 
147
- if sbo.eql?(:up) and ipad?
148
- pending "iOS > 5 detected AND orientation '#{sbo}' AND ipad - there is a bug in UIAutomation prohibits touching the cancel button"
149
+ if sbo.eql?(:up) and ipad?
150
+ pending "5 < iOS < 8 detected AND orientation '#{sbo}' AND ipad - there is a bug in UIAutomation prohibits touching the cancel button"
151
+ end
149
152
  end
150
153
 
151
154
  timeout = BRIAR_WAIT_TIMEOUT
@@ -158,17 +161,23 @@ module Briar
158
161
  end
159
162
 
160
163
  uia_tap_mark('Cancel')
161
- msg = "waited for '#{timeout}' seconds but did not see dismiss email action sheet"
162
- wait_for(:timeout => timeout,
163
- :retry_frequency => BRIAR_WAIT_RETRY_FREQ,
164
- :post_timeout => BRIAR_WAIT_STEP_PAUSE,
165
- :timeout_message => msg) do
164
+
165
+ # In iOS 8, there is no 'Delete Draft' action sheet, the email compose
166
+ # view animates off.
167
+ unless ios8?
168
+ msg = "waited for '#{timeout}' seconds but did not see dismiss email action sheet"
169
+ wait_for(:timeout => timeout,
170
+ :retry_frequency => BRIAR_WAIT_RETRY_FREQ,
171
+ :post_timeout => BRIAR_WAIT_STEP_PAUSE,
172
+ :timeout_message => msg) do
166
173
  uia_element_exists?(:view, {:marked => 'Delete Draft'})
167
- end
174
+ end
168
175
 
169
- uia_tap_mark('Delete Draft')
176
+ uia_tap_mark('Delete Draft')
177
+ end
170
178
 
171
- wait_for_view_to_disappear 'compose email'
179
+ wait_for_view_to_disappear default_opts[:email_view_mark]
180
+ wait_for_view view_id
172
181
  end
173
182
  step_pause
174
183
  end
data/lib/briar/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Briar
2
- VERSION = '1.1.4'
2
+ VERSION = '1.1.5'
3
3
  end
@@ -0,0 +1,34 @@
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>allow-root</key>
6
+ <true/>
7
+ <key>authenticate-user</key>
8
+ <true/>
9
+ <key>class</key>
10
+ <string>user</string>
11
+ <key>comment</key>
12
+ <string>Rights for Instruments</string>
13
+ <key>created</key>
14
+ <real>409022991.255041</real>
15
+ <key>group</key>
16
+ <string>admin</string>
17
+ <key>identifier</key>
18
+ <string>com.apple.dt.instruments.dtsecurity.xpc</string>
19
+ <key>modified</key>
20
+ <real>409022991.255041</real>
21
+ <key>requirement</key>
22
+ <string>identifier "com.apple.dt.instruments.dtsecurity.xpc" and anchor apple</string>
23
+ <key>session-owner</key>
24
+ <false/>
25
+ <key>shared</key>
26
+ <true/>
27
+ <key>timeout</key>
28
+ <integer>36000</integer>
29
+ <key>tries</key>
30
+ <integer>10000</integer>
31
+ <key>version</key>
32
+ <integer>0</integer>
33
+ </dict>
34
+ </plist>
@@ -0,0 +1,34 @@
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>allow-root</key>
6
+ <true/>
7
+ <key>authenticate-user</key>
8
+ <true/>
9
+ <key>class</key>
10
+ <string>user</string>
11
+ <key>comment</key>
12
+ <string>Rights for Instruments</string>
13
+ <key>created</key>
14
+ <real>409022991.27266097</real>
15
+ <key>group</key>
16
+ <string>admin</string>
17
+ <key>identifier</key>
18
+ <string>com.apple.dt.instruments.dtsecurity.xpc</string>
19
+ <key>modified</key>
20
+ <real>409022991.27266097</real>
21
+ <key>requirement</key>
22
+ <string>identifier "com.apple.dt.instruments.dtsecurity.xpc" and anchor apple</string>
23
+ <key>session-owner</key>
24
+ <false/>
25
+ <key>shared</key>
26
+ <true/>
27
+ <key>timeout</key>
28
+ <integer>5</integer>
29
+ <key>tries</key>
30
+ <integer>10000</integer>
31
+ <key>version</key>
32
+ <integer>0</integer>
33
+ </dict>
34
+ </plist>
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env bash
2
+ SCRIPT_DIR="${PWD}/script/ci/travis"
3
+ sudo security authorizationdb write com.apple.dt.instruments.process.analysis < $SCRIPT_DIR/com.apple.dt.instruments.process.analysis.plist
4
+ sudo security authorizationdb write com.apple.dt.instruments.process.kill < $SCRIPT_DIR/com.apple.dt.instruments.process.kill.plist
data/spec/spec_helper.rb CHANGED
@@ -1,15 +1,140 @@
1
- $:.unshift(File.dirname(__FILE__) + '/../lib')
2
- $:.unshift(File.dirname(__FILE__))
1
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
+ $LOAD_PATH.unshift File.expand_path('bin', __FILE__)
3
+ require 'awesome_print'
3
4
 
4
- require 'rubygems'
5
- require 'bundler'
6
- Bundler.setup
7
- require 'cucumber'
5
+ # monkey patch for AwesomePrint + objects that implement '=='
6
+ module AwesomePrint
7
+ class Formatter
8
+ def awesome_self(object, type)
9
+ if @options[:raw] && object.instance_variables.any?
10
+ awesome_object(object)
11
+ elsif object.respond_to?(:to_hash)
12
+ awesome_hash(object.to_hash)
13
+ else
14
+ colorize(object.inspect.to_s, type)
15
+ end
16
+ end
17
+ end
18
+ end
19
+
20
+ module Kernel
21
+ def capture_stdout
22
+ out = StringIO.new
23
+ $stdout = out
24
+ yield
25
+ return out
26
+ ensure
27
+ $stdout = STDOUT
28
+ end
29
+
30
+ def capture_stderr
31
+ out = StringIO.new
32
+ $stderr = out
33
+ yield
34
+ return out
35
+ ensure
36
+ $stderr = STDERR
37
+ end
38
+ end
39
+
40
+ def rspec_test_log(msg)
41
+ begin
42
+ puts "\033[32mTEST: #{msg}\033[0m"
43
+ rescue
44
+ puts "TEST: #{msg}"
45
+ end
46
+ end
47
+
48
+ def rspec_warn_log(msg)
49
+ begin
50
+ puts "\033[31mWARN: #{msg}\033[0m"
51
+ rescue
52
+ puts "WARN: #{msg}"
53
+ end
54
+ end
8
55
 
9
- RSpec.configure do |c|
10
- c.before do
11
- ::Cucumber::Term::ANSIColor.coloring = true
56
+ def rspec_info_log(msg)
57
+ begin
58
+ puts "\033[36mINFO: #{msg}\033[0m"
59
+ rescue
60
+ puts "INFO: #{msg}"
12
61
  end
13
62
  end
14
63
 
64
+ # This file was generated by the `rspec --init` command. Conventionally, all
65
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
66
+ # The generated `.rspec` file contains `--require spec_helper` which will cause this
67
+ # file to always be loaded, without a need to explicitly require it in any files.
68
+ #
69
+ # Given that it is always loaded, you are encouraged to keep this file as
70
+ # light-weight as possible. Requiring heavyweight dependencies from this file
71
+ # will add to the boot time of your test suite on EVERY test run, even for an
72
+ # individual file that may not need all of that loaded. Instead, make a
73
+ # separate helper file that requires this one and then use it only in the specs
74
+ # that actually need it.
75
+ #
76
+ # The `.rspec` file also contains a few flags that are not defaults but that
77
+ # users commonly want.
78
+ #
79
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
80
+ RSpec.configure do |config|
81
+ # The settings below are suggested to provide a good initial experience
82
+ # with RSpec, but feel free to customize to your heart's content.
83
+
84
+ # These two settings work together to allow you to limit a spec run
85
+ # to individual examples or groups you care about by tagging them with
86
+ # `:focus` metadata. When nothing is tagged with `:focus`, all examples
87
+ # get run.
88
+ #config.filter_run :focus
89
+ #config.run_all_when_everything_filtered = true
90
+
91
+ # Many RSpec users commonly either run the entire suite or an individual
92
+ # file, and it's useful to allow more verbose output when running an
93
+ # individual spec file.
94
+ if config.files_to_run.one?
95
+ # Use the documentation formatter for detailed output,
96
+ # unless a formatter has already been configured
97
+ # (e.g. via a command-line flag).
98
+ config.default_formatter = 'doc'
99
+ end
100
+
101
+ # Print the 10 slowest examples and example groups at the
102
+ # end of the spec run, to help surface which specs are running
103
+ # particularly slow.
104
+ config.profile_examples = 10
105
+
106
+ # Run specs in random order to surface order dependencies. If you find an
107
+ # order dependency and want to debug it, you can fix the order by providing
108
+ # the seed, which is printed after each run.
109
+ # --seed 1234
110
+ config.order = :random
15
111
 
112
+ # Seed global randomization in this process using the `--seed` CLI option.
113
+ # Setting this allows you to use `--seed` to deterministically reproduce
114
+ # test failures related to randomization by passing the same `--seed` value
115
+ # as the one that triggered the failure.
116
+ Kernel.srand config.seed
117
+
118
+ # rspec-expectations config goes here. You can use an alternate
119
+ # assertion/expectation library such as wrong or the stdlib/minitest
120
+ # assertions if you prefer.
121
+ config.expect_with :rspec do |expectations|
122
+ # Enable only the newer, non-monkey-patching expect syntax.
123
+ # For more details, see:
124
+ # - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax
125
+ expectations.syntax = :expect
126
+ end
127
+
128
+ # rspec-mocks config goes here. You can use an alternate test double
129
+ # library (such as bogus or mocha) by changing the `mock_with` option here.
130
+ config.mock_with :rspec do |mocks|
131
+ # Enable only the newer, non-monkey-patching expect syntax.
132
+ # For more details, see:
133
+ # - http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
134
+ mocks.syntax = :expect
135
+
136
+ # Prevents you from mocking or stubbing a method that does not exist on
137
+ # a real object. This is generally recommended.
138
+ mocks.verify_partial_doubles = true
139
+ end
140
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: briar
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.4
4
+ version: 1.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joshua Moody
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-15 00:00:00.000000000 Z
11
+ date: 2014-10-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rbx-require-relative
@@ -210,6 +210,76 @@ dependencies:
210
210
  - - '='
211
211
  - !ruby/object:Gem::Version
212
212
  version: 0.1.6
213
+ - !ruby/object:Gem::Dependency
214
+ name: rspec
215
+ requirement: !ruby/object:Gem::Requirement
216
+ requirements:
217
+ - - "~>"
218
+ - !ruby/object:Gem::Version
219
+ version: '3.0'
220
+ type: :development
221
+ prerelease: false
222
+ version_requirements: !ruby/object:Gem::Requirement
223
+ requirements:
224
+ - - "~>"
225
+ - !ruby/object:Gem::Version
226
+ version: '3.0'
227
+ - !ruby/object:Gem::Dependency
228
+ name: guard-rspec
229
+ requirement: !ruby/object:Gem::Requirement
230
+ requirements:
231
+ - - "~>"
232
+ - !ruby/object:Gem::Version
233
+ version: '4.3'
234
+ type: :development
235
+ prerelease: false
236
+ version_requirements: !ruby/object:Gem::Requirement
237
+ requirements:
238
+ - - "~>"
239
+ - !ruby/object:Gem::Version
240
+ version: '4.3'
241
+ - !ruby/object:Gem::Dependency
242
+ name: guard-bundler
243
+ requirement: !ruby/object:Gem::Requirement
244
+ requirements:
245
+ - - "~>"
246
+ - !ruby/object:Gem::Version
247
+ version: '2.0'
248
+ type: :development
249
+ prerelease: false
250
+ version_requirements: !ruby/object:Gem::Requirement
251
+ requirements:
252
+ - - "~>"
253
+ - !ruby/object:Gem::Version
254
+ version: '2.0'
255
+ - !ruby/object:Gem::Dependency
256
+ name: growl
257
+ requirement: !ruby/object:Gem::Requirement
258
+ requirements:
259
+ - - "~>"
260
+ - !ruby/object:Gem::Version
261
+ version: '1.0'
262
+ type: :development
263
+ prerelease: false
264
+ version_requirements: !ruby/object:Gem::Requirement
265
+ requirements:
266
+ - - "~>"
267
+ - !ruby/object:Gem::Version
268
+ version: '1.0'
269
+ - !ruby/object:Gem::Dependency
270
+ name: rb-readline
271
+ requirement: !ruby/object:Gem::Requirement
272
+ requirements:
273
+ - - "~>"
274
+ - !ruby/object:Gem::Version
275
+ version: '0.5'
276
+ type: :development
277
+ prerelease: false
278
+ version_requirements: !ruby/object:Gem::Requirement
279
+ requirements:
280
+ - - "~>"
281
+ - !ruby/object:Gem::Version
282
+ version: '0.5'
213
283
  description: extends calabash-ios steps
214
284
  email:
215
285
  - joshuajmoody@gmail.com
@@ -218,6 +288,10 @@ executables:
218
288
  extensions: []
219
289
  extra_rdoc_files: []
220
290
  files:
291
+ - ".guardrc"
292
+ - ".rspec"
293
+ - ".travis.yml"
294
+ - CONTRIBUTING.md
221
295
  - Gemfile
222
296
  - LICENSE.txt
223
297
  - README.md
@@ -239,6 +313,7 @@ files:
239
313
  - changelog/1.1.0.md
240
314
  - changelog/1.1.1.md
241
315
  - changelog/1.1.2.md
316
+ - changelog/1.1.5.md
242
317
  - changelog/1.2.0.md
243
318
  - features/step_definitions/alerts_and_sheets/action_sheet_steps.rb
244
319
  - features/step_definitions/alerts_and_sheets/alert_view_steps.rb
@@ -294,6 +369,9 @@ files:
294
369
  - lib/briar/text_view.rb
295
370
  - lib/briar/uia/briar_uia.rb
296
371
  - lib/briar/version.rb
372
+ - script/ci/travis/com.apple.dt.instruments.process.analysis.plist
373
+ - script/ci/travis/com.apple.dt.instruments.process.kill.plist
374
+ - script/ci/travis/instruments-auth.sh
297
375
  - spec/spec_helper.rb
298
376
  homepage: https://github.com/jmoody/briar
299
377
  licenses:
@@ -316,9 +394,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
316
394
  version: '0'
317
395
  requirements: []
318
396
  rubyforge_project:
319
- rubygems_version: 2.4.2
397
+ rubygems_version: 2.2.2
320
398
  signing_key:
321
399
  specification_version: 4
322
- summary: briar-1.1.4
400
+ summary: briar-1.1.5
323
401
  test_files: []
324
402
  has_rdoc: