briar 1.1.4 → 1.1.5

Sign up to get free protection for your applications and to get access to all the features.
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: