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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9e495bcc795342695eb34d2fe60ae1d43b44e99e
4
- data.tar.gz: 1765e2fc100394d5244f369ca130351cabacb37a
3
+ metadata.gz: 914b7fbad3c0d0ed522fc273fcd6ba9438145a1d
4
+ data.tar.gz: 394dc862cf3b382732edcd9b185ff85df7458939
5
5
  SHA512:
6
- metadata.gz: 177544dfed171ecbc43f81e8151d800d38c7f199bd627aea62935da083994fce5cafaf5e936afc1596fdc04047d1b475b3cb0b14f4ebc7514ee41f1bbaa399da
7
- data.tar.gz: 370c320802c05f34e53660f006e5d59b66e5a0ffdc5c880be5d04c803fe653d9d365b8daaed9f16f2454806302cb1cb9d35b204914bbbb8c19843d0fa119048d
6
+ metadata.gz: 46c3ae48538e9816e82a9922a772689e7092c418156edf1bfaddda3187cfe3862df5384406d3ac6c28363c8e6e41dbd58ade0012edc8c8fce311cb00a750745c
7
+ data.tar.gz: 3ef3d7a67c150e3e1374c19499236594bf971a63fb57373cfad70f52b550e9b0805ee7e7fe4eadf776b29bf4a0f838a8b8e07112ad6aba0d08af4356a4d67b0a
@@ -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
- system <<~SCRIPT
546
- cd "#{ENV['HOME']}"
547
- curl -s -k -o "cacert-root.crt" "http://www.cacert.org/certs/root.crt"
548
- curl -s -k -o "cacert-class3.crt" "http://www.cacert.org/certs/class3.crt"
549
- echo > .password
550
- mkdir -p .pki/nssdb
551
- CERT_DIR=sql:$HOME/.pki/nssdb
552
- certutil -N -d .pki/nssdb -f .password
553
- certutil -d ${CERT_DIR} -A -t TC \
554
- -n "CAcert.org" -i cacert-root.crt
555
- certutil -d ${CERT_DIR} -A -t TC \
556
- -n "CAcert.org Class 3" -i cacert-class3.crt
557
- certutil -d sql:$HOME/.pki/nssdb -A \
558
- -n puffing-billy -t "CT,C,C" -i #{Billy.certificate_authority.cert_file}
559
- SCRIPT
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)
@@ -1,3 +1,3 @@
1
1
  module Billy
2
- VERSION = '0.11.0'
2
+ VERSION = '0.11.1'
3
3
  end
@@ -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
- gem.add_development_dependency 'selenium-webdriver'
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', '>= 1.0.4'
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.0
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-10 00:00:00.000000000 Z
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: '0'
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: '0'
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