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 +4 -4
- data/.guardrc +1 -0
- data/.rspec +5 -0
- data/.travis.yml +20 -0
- data/CONTRIBUTING.md +40 -0
- data/README.md +12 -13
- data/Rakefile +8 -0
- data/bin/briar_console.rb +2 -2
- data/bin/briar_help.rb +1 -1
- data/bin/briar_resign.rb +14 -14
- data/briar.gemspec +13 -4
- data/changelog/1.1.5.md +5 -0
- data/lib/briar/alerts_and_sheets/action_sheet.rb +17 -3
- data/lib/briar/alerts_and_sheets/alert_view.rb +26 -12
- data/lib/briar/email.rb +23 -14
- data/lib/briar/version.rb +1 -1
- data/script/ci/travis/com.apple.dt.instruments.process.analysis.plist +34 -0
- data/script/ci/travis/com.apple.dt.instruments.process.kill.plist +34 -0
- data/script/ci/travis/instruments-auth.sh +4 -0
- data/spec/spec_helper.rb +134 -9
- metadata +82 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3652eb8d452cef6914fd372977cb830c579b290c
|
4
|
+
data.tar.gz: 649090d856a0ed4efd60949c52b75616fccb76b1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0896b7481025ecb6c08fc5d0153c9fc56c9e0c6d615b282eb05e7b7527df7a3daaa826c3c01776537e91b6f5121503d67e9ea77f80eaf661f83a8ba5d7e97afe
|
7
|
+
data.tar.gz: 4d5e266e4e9f81e330aa9d0578764cdc1ff57132a0da101a2c785d228757b8f44c71168e977ccd3b68af64e6cf81946a846b4d52ff50c42cdf57570b43f37c5d
|
data/.guardrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
Guard.options[:clear] = true
|
data/.rspec
ADDED
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
|
-
###
|
17
|
+
### Motivation
|
18
18
|
|
19
|
-
DRY: I have
|
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
|
-
#
|
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
|
-
#
|
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
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
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
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
|
-
'
|
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>
|
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
|
-
|
80
|
-
puts "INFO: will resign with a new application id '#{
|
81
|
-
options[:
|
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
|
-
|
186
|
-
unless
|
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 '#{
|
193
|
+
puts "INFO: found bundle identifier '#{bundle_identifier}'"
|
194
194
|
# Save changes to plist
|
195
|
-
unless data['CFBundleIdentifier'] ==
|
196
|
-
puts "INFO: saving the new bundle identifier '#{
|
197
|
-
data['CFBundleIdentifier'] =
|
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}.#{
|
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}.#{
|
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
|
-
#
|
37
|
+
# Downgrade because of xtc gem wants ~> 1.3.3.1.
|
38
38
|
gem.add_runtime_dependency 'retriable', '< 1.5', '>= 1.3'
|
39
|
-
#
|
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
|
-
#
|
44
|
+
# Would like to use 1.2.
|
45
45
|
# https://github.com/xamarin/test-cloud-command-line/issues/3
|
46
|
-
|
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
|
data/changelog/1.1.5.md
ADDED
@@ -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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
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
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
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
|
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
|
144
|
-
|
145
|
-
|
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
|
-
|
148
|
-
|
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
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
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
|
-
|
174
|
+
end
|
168
175
|
|
169
|
-
|
176
|
+
uia_tap_mark('Delete Draft')
|
177
|
+
end
|
170
178
|
|
171
|
-
wait_for_view_to_disappear
|
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
@@ -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
|
-
|
2
|
-
|
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
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
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
|
-
|
10
|
-
|
11
|
-
|
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
|
+
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-
|
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.
|
397
|
+
rubygems_version: 2.2.2
|
320
398
|
signing_key:
|
321
399
|
specification_version: 4
|
322
|
-
summary: briar-1.1.
|
400
|
+
summary: briar-1.1.5
|
323
401
|
test_files: []
|
324
402
|
has_rdoc:
|