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 +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
|
-
[](https://gemnasium.com/jmoody/briar)
|
1
|
+
[](https://travis-ci.org/jmoody/briar) [](https://gemnasium.com/jmoody/briar)
|
2
2
|
[](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:
|