puffing-billy 0.11.0 → 0.11.1
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/CHANGELOG.md +5 -0
- data/README.md +47 -15
- data/lib/billy/version.rb +1 -1
- data/puffing-billy.gemspec +3 -2
- metadata +6 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 914b7fbad3c0d0ed522fc273fcd6ba9438145a1d
|
4
|
+
data.tar.gz: 394dc862cf3b382732edcd9b185ff85df7458939
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 46c3ae48538e9816e82a9922a772689e7092c418156edf1bfaddda3187cfe3862df5384406d3ac6c28363c8e6e41dbd58ade0012edc8c8fce311cb00a750745c
|
7
|
+
data.tar.gz: 3ef3d7a67c150e3e1374c19499236594bf971a63fb57373cfad70f52b550e9b0805ee7e7fe4eadf776b29bf4a0f838a8b8e07112ad6aba0d08af4356a4d67b0a
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
v0.11.1, 2017-12-22
|
2
|
+
-------------------
|
3
|
+
* Prevent eventmachine from installing 1.2.x [#206](https://github.com/oesmith/puffing-billy/pull/206)
|
4
|
+
* Prevent selenium-webdriver from installing 3.8 [#209](https://github.com/oesmith/puffing-billy/pull/209)
|
5
|
+
|
1
6
|
v0.11.0, 2017-11-09
|
2
7
|
-------------------
|
3
8
|
* Improved semantic versioning of dependencies [#197](https://github.com/oesmith/puffing-billy/pull/197)
|
data/README.md
CHANGED
@@ -533,6 +533,12 @@ new store for your current session. The following examples demonstrates the
|
|
533
533
|
former variant:
|
534
534
|
|
535
535
|
```ruby
|
536
|
+
# Install the fabulous `os` gem first
|
537
|
+
# See: https://rubygems.org/gems/os
|
538
|
+
# gem install os
|
539
|
+
#
|
540
|
+
# --
|
541
|
+
|
536
542
|
# Overwrite the local home directory for chrome. We use this
|
537
543
|
# to setup a custom SSL certificate store.
|
538
544
|
ENV['HOME'] = "#{Dir.tmpdir}/chrome-home-#{Time.now.to_i}"
|
@@ -542,27 +548,53 @@ FileUtils.rm_rf(ENV['HOME'])
|
|
542
548
|
FileUtils.mkdir_p(ENV['HOME'])
|
543
549
|
|
544
550
|
# Setup a new pki certificate database for Chrome
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
-
curl -s -k -o "cacert-
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
certutil -
|
554
|
-
-
|
555
|
-
|
556
|
-
|
557
|
-
|
558
|
-
|
559
|
-
|
551
|
+
if OS.linux?
|
552
|
+
system <<~SCRIPT
|
553
|
+
cd "#{ENV['HOME']}"
|
554
|
+
curl -s -k -o "cacert-root.crt" "http://www.cacert.org/certs/root.crt"
|
555
|
+
curl -s -k -o "cacert-class3.crt" "http://www.cacert.org/certs/class3.crt"
|
556
|
+
echo > .password
|
557
|
+
mkdir -p .pki/nssdb
|
558
|
+
CERT_DIR=sql:$HOME/.pki/nssdb
|
559
|
+
certutil -N -d .pki/nssdb -f .password
|
560
|
+
certutil -d ${CERT_DIR} -A -t TC \
|
561
|
+
-n "CAcert.org" -i cacert-root.crt
|
562
|
+
certutil -d ${CERT_DIR} -A -t TC \
|
563
|
+
-n "CAcert.org Class 3" -i cacert-class3.crt
|
564
|
+
certutil -d sql:$HOME/.pki/nssdb -A \
|
565
|
+
-n puffing-billy -t "CT,C,C" -i #{Billy.certificate_authority.cert_file}
|
566
|
+
SCRIPT
|
567
|
+
end
|
568
|
+
|
569
|
+
# Setup the macOS certificate store
|
570
|
+
if OS.mac?
|
571
|
+
prompt = 'Add Puffing Billy root certificate authority ' \
|
572
|
+
'to system certificate store'
|
573
|
+
system <<~SCRIPT
|
574
|
+
sudo -p "# #{prompt}`echo $'\nPassword: '`" \
|
575
|
+
security find-certificate -a -Z -c 'Puffing Billy' \
|
576
|
+
| grep 'SHA-1 hash' | cut -d ':' -f2 | xargs -n1 \
|
577
|
+
sudo security delete-certificate -Z >/dev/null 2>&1 || true
|
578
|
+
sudo security add-trusted-cert -d -r trustRoot \
|
579
|
+
-k /Library/Keychains/System.keychain \
|
580
|
+
#{Billy.certificate_authority.cert_file}
|
581
|
+
SCRIPT
|
582
|
+
end
|
560
583
|
```
|
561
584
|
|
562
585
|
Mind the reset of the `HOME` environment variable. Fortunately Chrome takes
|
563
586
|
care of the users home, so we can setup a new temporary directory for the test
|
564
587
|
run, without messing with potential user configurations.
|
565
588
|
|
589
|
+
The macOS support requires the input of your password to manipulate the system
|
590
|
+
certificate store. If you are lazy you can turn off sudo password prompt for
|
591
|
+
the security command, but it's strongly advised against. (You know passwordless
|
592
|
+
security, is no security in this case) Further, the macOS handling here cleans
|
593
|
+
up old Puffing Billy root certificate authorities and put the current one into
|
594
|
+
the system store. So after a run of your the suite only one certificate will be
|
595
|
+
left over. If this is not enough you can handling the cleanup again with a
|
596
|
+
custom on-after hook.
|
597
|
+
|
566
598
|
## Resources
|
567
599
|
|
568
600
|
* [Bring Ruby VCR to Javascript testing with Capybara and puffing-billy](http://architects.dzone.com/articles/bring-ruby-vcr-javascript)
|
data/lib/billy/version.rb
CHANGED
data/puffing-billy.gemspec
CHANGED
@@ -19,7 +19,8 @@ Gem::Specification.new do |gem|
|
|
19
19
|
gem.add_development_dependency 'thin'
|
20
20
|
gem.add_development_dependency 'faraday'
|
21
21
|
gem.add_development_dependency 'poltergeist'
|
22
|
-
|
22
|
+
# selenium-webdriver 3.8 drops support for PhantomJS
|
23
|
+
gem.add_development_dependency 'selenium-webdriver', '<= 3.7.0'
|
23
24
|
gem.add_development_dependency 'capybara'
|
24
25
|
gem.add_development_dependency 'capybara-webkit', '~> 1.0'
|
25
26
|
gem.add_development_dependency 'rack'
|
@@ -30,7 +31,7 @@ Gem::Specification.new do |gem|
|
|
30
31
|
gem.add_development_dependency 'watir-webdriver', '0.9.1'
|
31
32
|
# addressable 2.5.0 drops support for ruby 1.9.3
|
32
33
|
gem.add_runtime_dependency 'addressable', '~> 2.4', '>= 2.4.0'
|
33
|
-
gem.add_runtime_dependency 'eventmachine', '~> 1.0
|
34
|
+
gem.add_runtime_dependency 'eventmachine', '~> 1.0.4'
|
34
35
|
gem.add_runtime_dependency 'em-synchrony'
|
35
36
|
gem.add_runtime_dependency 'em-http-request', '~> 1.1', '>= 1.1.0'
|
36
37
|
gem.add_runtime_dependency 'eventmachine_httpserver'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puffing-billy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.11.
|
4
|
+
version: 0.11.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Olly Smith
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-12-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -70,16 +70,16 @@ dependencies:
|
|
70
70
|
name: selenium-webdriver
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - "<="
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: 3.7.0
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - "
|
80
|
+
- - "<="
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
82
|
+
version: 3.7.0
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: capybara
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -217,9 +217,6 @@ dependencies:
|
|
217
217
|
requirement: !ruby/object:Gem::Requirement
|
218
218
|
requirements:
|
219
219
|
- - "~>"
|
220
|
-
- !ruby/object:Gem::Version
|
221
|
-
version: '1.0'
|
222
|
-
- - ">="
|
223
220
|
- !ruby/object:Gem::Version
|
224
221
|
version: 1.0.4
|
225
222
|
type: :runtime
|
@@ -227,9 +224,6 @@ dependencies:
|
|
227
224
|
version_requirements: !ruby/object:Gem::Requirement
|
228
225
|
requirements:
|
229
226
|
- - "~>"
|
230
|
-
- !ruby/object:Gem::Version
|
231
|
-
version: '1.0'
|
232
|
-
- - ">="
|
233
227
|
- !ruby/object:Gem::Version
|
234
228
|
version: 1.0.4
|
235
229
|
- !ruby/object:Gem::Dependency
|