rspec-webservice_matchers 4.10.0 → 4.13
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 +5 -5
 - data/.github/workflows/ruby.yml +35 -0
 - data/HISTORY.md +9 -0
 - data/README.md +11 -15
 - data/circle.yml +2 -0
 - data/lib/rspec/webservice_matchers/enforce_https_everywhere.rb +2 -2
 - data/lib/rspec/webservice_matchers/version.rb +2 -1
 - data/lib/web_test/be_fast.rb +29 -17
 - data/lib/web_test/be_up.rb +1 -1
 - data/lib/web_test/util.rb +11 -1
 - data/rspec-webservice_matchers.gemspec +8 -8
 - data/spec/failure_matchers.rb +16 -0
 - data/spec/fixtures/pagespeed.json +3179 -370
 - data/spec/rspec/webservice_matchers/protocol_spec.rb +2 -6
 - data/spec/rspec/webservice_matchers/public_api_spec.rb +1 -1
 - data/spec/rspec/webservice_matchers/redirect_spec.rb +19 -18
 - data/spec/rspec/webservice_matchers/ssl_spec.rb +72 -47
 - data/spec/spec_helper.rb +3 -54
 - data/spec/web_mock_config.rb +54 -0
 - data/spec/web_test/be_fast_spec.rb +13 -3
 - metadata +39 -37
 - data/spec/rspec/webservice_matchers/page_speed_spec.rb +0 -30
 
| 
         @@ -31,7 +31,7 @@ describe 'be_status' do 
     | 
|
| 
       31 
31 
     | 
    
         
             
                }.to fail_matching(/404/)
         
     | 
| 
       32 
32 
     | 
    
         
             
              end
         
     | 
| 
       33 
33 
     | 
    
         | 
| 
       34 
     | 
    
         
            -
               
     | 
| 
      
 34 
     | 
    
         
            +
              xit 'succeeds even if the site times out on the first try' do
         
     | 
| 
       35 
35 
     | 
    
         
             
                expect('http://www.timeout-once.com').to be_status 200
         
     | 
| 
       36 
36 
     | 
    
         
             
              end
         
     | 
| 
       37 
37 
     | 
    
         | 
| 
         @@ -61,11 +61,7 @@ describe 'be_up' do 
     | 
|
| 
       61 
61 
     | 
    
         
             
                }.to fail_matching(/^received status 404$/i)
         
     | 
| 
       62 
62 
     | 
    
         
             
              end
         
     | 
| 
       63 
63 
     | 
    
         | 
| 
       64 
     | 
    
         
            -
               
     | 
| 
      
 64 
     | 
    
         
            +
              xit 'succeeds even if the site times out on the first try' do
         
     | 
| 
       65 
65 
     | 
    
         
             
                expect('http://www.timeout-once.com').to be_up
         
     | 
| 
       66 
66 
     | 
    
         
             
              end
         
     | 
| 
       67 
     | 
    
         
            -
             
     | 
| 
       68 
     | 
    
         
            -
              it 'works on cars.com' do
         
     | 
| 
       69 
     | 
    
         
            -
                expect('http://cars.com').to be_up
         
     | 
| 
       70 
     | 
    
         
            -
              end
         
     | 
| 
       71 
67 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,4 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
       2 
3 
     | 
    
         
             
            require 'spec_helper'
         
     | 
| 
       3 
4 
     | 
    
         
             
            require 'rspec/webservice_matchers'
         
     | 
| 
       4 
5 
     | 
    
         | 
| 
         @@ -16,27 +17,27 @@ describe 'redirect_permanently_to' do 
     | 
|
| 
       16 
17 
     | 
    
         
             
              end
         
     | 
| 
       17 
18 
     | 
    
         | 
| 
       18 
19 
     | 
    
         
             
              it 'gives a good error message for the wrong redirect type' do
         
     | 
| 
       19 
     | 
    
         
            -
                expect  
     | 
| 
      
 20 
     | 
    
         
            +
                expect do
         
     | 
| 
       20 
21 
     | 
    
         
             
                  expect('temp-redirector.org').to redirect_permanently_to 'http://a-page.com/a/page.txt'
         
     | 
| 
       21 
     | 
    
         
            -
                 
     | 
| 
      
 22 
     | 
    
         
            +
                end.to fail_matching(/temporary/i)
         
     | 
| 
       22 
23 
     | 
    
         
             
              end
         
     | 
| 
       23 
24 
     | 
    
         | 
| 
       24 
25 
     | 
    
         
             
              it 'gives a good error message for a redirect to the wrong location' do
         
     | 
| 
       25 
     | 
    
         
            -
                expect  
     | 
| 
      
 26 
     | 
    
         
            +
                expect do
         
     | 
| 
       26 
27 
     | 
    
         
             
                  expect('perm-redirector.com').to redirect_permanently_to 'http://the-wrong-site.com/'
         
     | 
| 
       27 
     | 
    
         
            -
                 
     | 
| 
      
 28 
     | 
    
         
            +
                end.to fail_matching(/location/i)
         
     | 
| 
       28 
29 
     | 
    
         
             
              end
         
     | 
| 
       29 
30 
     | 
    
         | 
| 
       30 
31 
     | 
    
         
             
              it 'gives a good error message for a non-redirect status' do
         
     | 
| 
       31 
     | 
    
         
            -
                expect  
     | 
| 
      
 32 
     | 
    
         
            +
                expect do
         
     | 
| 
       32 
33 
     | 
    
         
             
                  expect('notfound.com').to redirect_permanently_to 'http://the-wrong-site.com/'
         
     | 
| 
       33 
     | 
    
         
            -
                 
     | 
| 
      
 34 
     | 
    
         
            +
                end.to fail_matching(/^not a redirect: received status 404$/i)
         
     | 
| 
       34 
35 
     | 
    
         
             
              end
         
     | 
| 
       35 
36 
     | 
    
         | 
| 
       36 
37 
     | 
    
         
             
              it 'gives a good error message when the hostname is bad' do
         
     | 
| 
       37 
     | 
    
         
            -
                expect  
     | 
| 
       38 
     | 
    
         
            -
                  expect(' 
     | 
| 
       39 
     | 
    
         
            -
                 
     | 
| 
      
 38 
     | 
    
         
            +
                expect do
         
     | 
| 
      
 39 
     | 
    
         
            +
                  expect('not-a-domain.com').to redirect_permanently_to 'http://the-wrong-site.com/'
         
     | 
| 
      
 40 
     | 
    
         
            +
                end.to fail_matching(/not known/i)
         
     | 
| 
       40 
41 
     | 
    
         
             
              end
         
     | 
| 
       41 
42 
     | 
    
         
             
            end
         
     | 
| 
       42 
43 
     | 
    
         | 
| 
         @@ -54,26 +55,26 @@ describe 'redirect_temporarily_to' do 
     | 
|
| 
       54 
55 
     | 
    
         
             
              end
         
     | 
| 
       55 
56 
     | 
    
         | 
| 
       56 
57 
     | 
    
         
             
              it 'gives a good error message for the wrong redirect type' do
         
     | 
| 
       57 
     | 
    
         
            -
                expect  
     | 
| 
      
 58 
     | 
    
         
            +
                expect do
         
     | 
| 
       58 
59 
     | 
    
         
             
                  expect('perm-redirector.com').to redirect_temporarily_to 'www.website.com/'
         
     | 
| 
       59 
     | 
    
         
            -
                 
     | 
| 
      
 60 
     | 
    
         
            +
                end.to fail_matching(/permanent/i)
         
     | 
| 
       60 
61 
     | 
    
         
             
              end
         
     | 
| 
       61 
62 
     | 
    
         | 
| 
       62 
63 
     | 
    
         
             
              it 'gives a good error message for a redirect to the wrong location' do
         
     | 
| 
       63 
     | 
    
         
            -
                expect  
     | 
| 
      
 64 
     | 
    
         
            +
                expect do
         
     | 
| 
       64 
65 
     | 
    
         
             
                  expect('temp-307-redirector.net').to redirect_temporarily_to 'www.nowhere.com'
         
     | 
| 
       65 
     | 
    
         
            -
                 
     | 
| 
      
 66 
     | 
    
         
            +
                end.to fail_matching(/location/i)
         
     | 
| 
       66 
67 
     | 
    
         
             
              end
         
     | 
| 
       67 
68 
     | 
    
         | 
| 
       68 
69 
     | 
    
         
             
              it 'gives a good error message for a non-redirect status' do
         
     | 
| 
       69 
     | 
    
         
            -
                expect  
     | 
| 
      
 70 
     | 
    
         
            +
                expect do
         
     | 
| 
       70 
71 
     | 
    
         
             
                  expect('notfound.com').to redirect_temporarily_to 'www.nowhere.com'
         
     | 
| 
       71 
     | 
    
         
            -
                 
     | 
| 
      
 72 
     | 
    
         
            +
                end.to fail_matching(/^not a redirect: received status 404$/i)
         
     | 
| 
       72 
73 
     | 
    
         
             
              end
         
     | 
| 
       73 
74 
     | 
    
         | 
| 
       74 
75 
     | 
    
         
             
              it 'gives a good error message when the hostname is bad' do
         
     | 
| 
       75 
     | 
    
         
            -
                expect  
     | 
| 
       76 
     | 
    
         
            -
                  expect(' 
     | 
| 
       77 
     | 
    
         
            -
                 
     | 
| 
      
 76 
     | 
    
         
            +
                expect do
         
     | 
| 
      
 77 
     | 
    
         
            +
                  expect('not-a-domain.com').to redirect_temporarily_to 'www.nowhere.com'
         
     | 
| 
      
 78 
     | 
    
         
            +
                end.to fail_matching(/not known/i)
         
     | 
| 
       78 
79 
     | 
    
         
             
              end
         
     | 
| 
       79 
80 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,62 +1,87 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
       2 
3 
     | 
    
         
             
            require 'spec_helper'
         
     | 
| 
       3 
4 
     | 
    
         
             
            require 'rspec/webservice_matchers'
         
     | 
| 
       4 
5 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
            describe ' 
     | 
| 
       6 
     | 
    
         
            -
               
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
                # TODO: set up a test server for this. (?)
         
     | 
| 
       9 
     | 
    
         
            -
                expect('www.eff.org').to have_a_valid_cert
         
     | 
| 
       10 
     | 
    
         
            -
              end
         
     | 
| 
      
 6 
     | 
    
         
            +
            describe 'SSL tests' do
         
     | 
| 
      
 7 
     | 
    
         
            +
              before(:each) { WebMock.allow_net_connect! }
         
     | 
| 
      
 8 
     | 
    
         
            +
              after(:each)  { WebMock.disable_net_connect! }
         
     | 
| 
       11 
9 
     | 
    
         | 
| 
       12 
     | 
    
         
            -
               
     | 
| 
       13 
     | 
    
         
            -
                 
     | 
| 
       14 
     | 
    
         
            -
                   
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
      
 10 
     | 
    
         
            +
              describe 'have_a_valid_cert matcher' do
         
     | 
| 
      
 11 
     | 
    
         
            +
                it 'passes when SSL is properly configured' do
         
     | 
| 
      
 12 
     | 
    
         
            +
                  # EFF created the HTTPS Everywhere movement
         
     | 
| 
      
 13 
     | 
    
         
            +
                  # TODO: set up a test server for this. (?)
         
     | 
| 
      
 14 
     | 
    
         
            +
                  expect('www.eff.org').to have_a_valid_cert
         
     | 
| 
      
 15 
     | 
    
         
            +
                end
         
     | 
| 
       17 
16 
     | 
    
         | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
      
 17 
     | 
    
         
            +
                it 'fails if the server is not serving SSL at all' do
         
     | 
| 
      
 18 
     | 
    
         
            +
                  expect do
         
     | 
| 
      
 19 
     | 
    
         
            +
                    expect('neverssl.com').to have_a_valid_cert
         
     | 
| 
      
 20 
     | 
    
         
            +
                  end.to fail_matching(/Unable to verify/)
         
     | 
| 
      
 21 
     | 
    
         
            +
                end
         
     | 
| 
       23 
22 
     | 
    
         | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
             
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
      
 23 
     | 
    
         
            +
                it 'provides a relevant error message' do
         
     | 
| 
      
 24 
     | 
    
         
            +
                  expect do
         
     | 
| 
      
 25 
     | 
    
         
            +
                    expect('neverssl.com').to have_a_valid_cert
         
     | 
| 
      
 26 
     | 
    
         
            +
                  end.to fail_matching(/(unreachable)|(no route to host)|(connection refused)|(redirect was detected)/i)
         
     | 
| 
      
 27 
     | 
    
         
            +
                end
         
     | 
| 
       29 
28 
     | 
    
         | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
     | 
    
         
            -
                   
     | 
| 
       34 
     | 
    
         
            -
                 
     | 
| 
       35 
     | 
    
         
            -
              end
         
     | 
| 
      
 29 
     | 
    
         
            +
                xit "provides a relevant error message when the domain name doesn't exist" do
         
     | 
| 
      
 30 
     | 
    
         
            +
                  expect do
         
     | 
| 
      
 31 
     | 
    
         
            +
                    expect('sdfgkljhsdfghjkhsdfgj.edu').to have_a_valid_cert
         
     | 
| 
      
 32 
     | 
    
         
            +
                  end.to fail_matching(/not known/i)
         
     | 
| 
      
 33 
     | 
    
         
            +
                end
         
     | 
| 
       36 
34 
     | 
    
         | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
       42 
     | 
    
         
            -
             
     | 
| 
       43 
     | 
    
         
            -
            end
         
     | 
| 
      
 35 
     | 
    
         
            +
                xit "provides a good error message when it's a redirect" do
         
     | 
| 
      
 36 
     | 
    
         
            +
                  expect do
         
     | 
| 
      
 37 
     | 
    
         
            +
                    # Can't figure out how to do this with WebMock.
         
     | 
| 
      
 38 
     | 
    
         
            +
                    expect('bloc.io').to have_a_valid_cert
         
     | 
| 
      
 39 
     | 
    
         
            +
                  end.to fail_matching(/redirect/i)
         
     | 
| 
      
 40 
     | 
    
         
            +
                end
         
     | 
| 
       44 
41 
     | 
    
         | 
| 
       45 
     | 
    
         
            -
            #  
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
     | 
    
         
            -
             
     | 
| 
      
 42 
     | 
    
         
            +
                # TODO: Find a good way to test this.
         
     | 
| 
      
 43 
     | 
    
         
            +
                xit 'provides a good error message if the request times out' do
         
     | 
| 
      
 44 
     | 
    
         
            +
                  expect {
         
     | 
| 
      
 45 
     | 
    
         
            +
                    expect('www.myapp.com').to have_a_valid_cert
         
     | 
| 
      
 46 
     | 
    
         
            +
                  }.to fail_matching(/(timeout)|(execution expired)/)
         
     | 
| 
      
 47 
     | 
    
         
            +
                end
         
     | 
| 
       49 
48 
     | 
    
         
             
              end
         
     | 
| 
       50 
49 
     | 
    
         | 
| 
       51 
     | 
    
         
            -
               
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
       55 
     | 
    
         
            -
             
     | 
| 
      
 50 
     | 
    
         
            +
              # See https://www.eff.org/https-everywhere
         
     | 
| 
      
 51 
     | 
    
         
            +
              describe 'enforce_https_everywhere' do
         
     | 
| 
      
 52 
     | 
    
         
            +
                it 'passes when http requests are redirected to valid https urls' do
         
     | 
| 
      
 53 
     | 
    
         
            +
                  expect('www.eff.org').to enforce_https_everywhere
         
     | 
| 
      
 54 
     | 
    
         
            +
                end
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
                it 'passes when given an https url' do
         
     | 
| 
      
 57 
     | 
    
         
            +
                  expect('https://www.eff.org').to enforce_https_everywhere
         
     | 
| 
      
 58 
     | 
    
         
            +
                end
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
                it 'passes when given an http url' do
         
     | 
| 
      
 61 
     | 
    
         
            +
                  expect('http://www.eff.org').to enforce_https_everywhere
         
     | 
| 
      
 62 
     | 
    
         
            +
                end
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
                it 'provides a relevant error code' do
         
     | 
| 
      
 65 
     | 
    
         
            +
                  expect do
         
     | 
| 
      
 66 
     | 
    
         
            +
                    expect('neverssl.com').to enforce_https_everywhere
         
     | 
| 
      
 67 
     | 
    
         
            +
                  end.to fail_matching(/200/)
         
     | 
| 
      
 68 
     | 
    
         
            +
                end
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
                it 'provides a relevant error code with https url' do
         
     | 
| 
      
 71 
     | 
    
         
            +
                  expect do
         
     | 
| 
      
 72 
     | 
    
         
            +
                    expect('https://neverssl.com').to enforce_https_everywhere
         
     | 
| 
      
 73 
     | 
    
         
            +
                  end.to fail_matching(/200/)
         
     | 
| 
      
 74 
     | 
    
         
            +
                end
         
     | 
| 
       56 
75 
     | 
    
         | 
| 
       57 
     | 
    
         
            -
             
     | 
| 
       58 
     | 
    
         
            -
             
     | 
| 
       59 
     | 
    
         
            -
             
     | 
| 
       60 
     | 
    
         
            -
             
     | 
| 
      
 76 
     | 
    
         
            +
                it 'provides a relevant error code with http url' do
         
     | 
| 
      
 77 
     | 
    
         
            +
                  expect do
         
     | 
| 
      
 78 
     | 
    
         
            +
                    expect('http://neverssl.com').to enforce_https_everywhere
         
     | 
| 
      
 79 
     | 
    
         
            +
                  end.to fail_matching(/200/)
         
     | 
| 
      
 80 
     | 
    
         
            +
                end
         
     | 
| 
      
 81 
     | 
    
         
            +
                # it "provides a relevant error message when the domain name doesn't exist" do
         
     | 
| 
      
 82 
     | 
    
         
            +
                #   expect do
         
     | 
| 
      
 83 
     | 
    
         
            +
                #     expect('asdhfjkalsdhfjklasdfhjkasdhfl.com').to enforce_https_everywhere
         
     | 
| 
      
 84 
     | 
    
         
            +
                #   end.to fail_matching(/connection failed/i)
         
     | 
| 
      
 85 
     | 
    
         
            +
                # end
         
     | 
| 
       61 
86 
     | 
    
         
             
              end
         
     | 
| 
       62 
87 
     | 
    
         
             
            end
         
     | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    | 
         @@ -1,56 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
       2 
     | 
    
         
            -
            require ' 
     | 
| 
      
 2 
     | 
    
         
            +
            require 'web_mock_config'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'failure_matchers'
         
     | 
| 
       3 
4 
     | 
    
         | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
              config.before(:each) do
         
     | 
| 
       6 
     | 
    
         
            -
                WebMock.stub_request :any, 'http://a-page.com/a/page.txt'
         
     | 
| 
       7 
     | 
    
         
            -
                WebMock.stub_request :any, 'www.website.com'
         
     | 
| 
       8 
     | 
    
         
            -
                WebMock.stub_request(:any, /notfound.com/).to_return(status: 404)
         
     | 
| 
       9 
     | 
    
         
            -
                WebMock.stub_request(:any, 'outoforder.com').to_return(status: 503)
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
                # A host which doesn't support HEAD
         
     | 
| 
       12 
     | 
    
         
            -
                WebMock.stub_request(:head, 'appengine.com').to_return(status: 405)
         
     | 
| 
       13 
     | 
    
         
            -
                WebMock.stub_request(:get,  'appengine.com').to_return(status: 200)
         
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
                WebMock.stub_request(:any, 'perm-redirector.com')
         
     | 
| 
       16 
     | 
    
         
            -
                       .to_return(status: 301, headers: { Location: 'http://www.website.com/' })
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
                WebMock.stub_request(:any, 'temp-redirector.org')
         
     | 
| 
       19 
     | 
    
         
            -
                       .to_return(status: 302, headers: { Location: 'http://a-page.com/a/page.txt' })
         
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
                WebMock.stub_request(:any, 'temp-307-redirector.net')
         
     | 
| 
       22 
     | 
    
         
            -
                       .to_return(status: 307, headers: { Location: 'http://a-page.com/a/page.txt' })
         
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
     | 
    
         
            -
                # Timeout scenarios
         
     | 
| 
       25 
     | 
    
         
            -
                WebMock.stub_request(:any, 'www.timeout.com').to_timeout
         
     | 
| 
       26 
     | 
    
         
            -
                WebMock.stub_request(:any, 'www.timeout-once.com').to_timeout.then.to_return(body: 'abc')
         
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
                # Insights API
         
     | 
| 
       29 
     | 
    
         
            -
                key = ENV['WEBSERVICE_MATCHER_INSIGHTS_KEY']
         
     | 
| 
       30 
     | 
    
         
            -
                WebMock.stub_request(:get, "https://www.googleapis.com/pagespeedonline/v2/runPagespeed?key=#{key}&screenshot=false&url=http://nonstop.qa")
         
     | 
| 
       31 
     | 
    
         
            -
                       .with(headers: { 'Accept' => '*/*', 'Accept-Encoding' => 'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'User-Agent' => 'Faraday v0.9.2' })
         
     | 
| 
       32 
     | 
    
         
            -
                       .to_return(
         
     | 
| 
       33 
     | 
    
         
            -
                         status: 200,
         
     | 
| 
       34 
     | 
    
         
            -
                         body: IO.read('spec/fixtures/pagespeed.json'),
         
     | 
| 
       35 
     | 
    
         
            -
                         headers: {})
         
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
     | 
    
         
            -
                WebMock.allow_net_connect!
         
     | 
| 
       38 
     | 
    
         
            -
              end
         
     | 
| 
       39 
     | 
    
         
            -
            end
         
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
     | 
    
         
            -
            module RSpec
         
     | 
| 
       42 
     | 
    
         
            -
              # Matchers to help test RSpec matchers
         
     | 
| 
       43 
     | 
    
         
            -
              module Matchers
         
     | 
| 
       44 
     | 
    
         
            -
                def fail
         
     | 
| 
       45 
     | 
    
         
            -
                  raise_error(RSpec::Expectations::ExpectationNotMetError)
         
     | 
| 
       46 
     | 
    
         
            -
                end
         
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
     | 
    
         
            -
                def fail_with(message)
         
     | 
| 
       49 
     | 
    
         
            -
                  raise_error(RSpec::Expectations::ExpectationNotMetError, message)
         
     | 
| 
       50 
     | 
    
         
            -
                end
         
     | 
| 
       51 
     | 
    
         
            -
             
     | 
| 
       52 
     | 
    
         
            -
                def fail_matching(regex)
         
     | 
| 
       53 
     | 
    
         
            -
                  raise_error(RSpec::Expectations::ExpectationNotMetError, regex)
         
     | 
| 
       54 
     | 
    
         
            -
                end
         
     | 
| 
       55 
     | 
    
         
            -
              end
         
     | 
| 
       56 
     | 
    
         
            -
            end
         
     | 
| 
      
 5 
     | 
    
         
            +
            SAMPLE_PAGESPEED_JSON_RESPONSE = 'spec/fixtures/pagespeed.json'
         
     | 
| 
         @@ -0,0 +1,54 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'faraday'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'webmock/rspec'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            RSpec.configure do |config|
         
     | 
| 
      
 6 
     | 
    
         
            +
              config.before(:each) do
         
     | 
| 
      
 7 
     | 
    
         
            +
                # HOSTS WHICH RETURN ERRORS
         
     | 
| 
      
 8 
     | 
    
         
            +
                WebMock.stub_request(:any, /notfound.com/).to_return(status: 404)
         
     | 
| 
      
 9 
     | 
    
         
            +
                WebMock.stub_request(:any, 'outoforder.com').to_return(status: 503)
         
     | 
| 
      
 10 
     | 
    
         
            +
                WebMock.stub_request(:any, 'not-a-domain.com')
         
     | 
| 
      
 11 
     | 
    
         
            +
                       .to_raise(Faraday::ConnectionFailed.new('Failed to open TCP ' \
         
     | 
| 
      
 12 
     | 
    
         
            +
                                 'connection to asdhfjkahsdfadfd.com:80 ' \
         
     | 
| 
      
 13 
     | 
    
         
            +
                                 '(getaddrinfo: nodename nor servname provided, ' \
         
     | 
| 
      
 14 
     | 
    
         
            +
                                 'or not known)'))
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                # FUNCTIONING WEB PAGES
         
     | 
| 
      
 17 
     | 
    
         
            +
                WebMock.stub_request :any, 'http://a-page.com/a/page.txt'
         
     | 
| 
      
 18 
     | 
    
         
            +
                WebMock.stub_request :any, 'www.website.com'
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                # A HOST WHICH DOESN'T SUPPORT HEAD
         
     | 
| 
      
 21 
     | 
    
         
            +
                WebMock.stub_request(:head, 'appengine.com').to_return(status: 405)
         
     | 
| 
      
 22 
     | 
    
         
            +
                WebMock.stub_request(:get,  'appengine.com').to_return(status: 200)
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                # FUNCTIONING REDIRECTS
         
     | 
| 
      
 25 
     | 
    
         
            +
                WebMock.stub_request(:head, 'perm-redirector.com')
         
     | 
| 
      
 26 
     | 
    
         
            +
                       .to_return(status: 301,
         
     | 
| 
      
 27 
     | 
    
         
            +
                                  body: '',
         
     | 
| 
      
 28 
     | 
    
         
            +
                                  headers: { Location: 'http://www.website.com/' })
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
                WebMock.stub_request(:any, 'temp-redirector.org')
         
     | 
| 
      
 31 
     | 
    
         
            +
                       .to_return(status: 302,
         
     | 
| 
      
 32 
     | 
    
         
            +
                                  headers: { Location: 'http://a-page.com/a/page.txt' })
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                WebMock.stub_request(:any, 'temp-307-redirector.net')
         
     | 
| 
      
 35 
     | 
    
         
            +
                       .to_return(status: 307,
         
     | 
| 
      
 36 
     | 
    
         
            +
                                  headers: { Location: 'http://a-page.com/a/page.txt' })
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                # TIMEOUT SCENARIOS
         
     | 
| 
      
 39 
     | 
    
         
            +
                WebMock.stub_request(:any, 'www.timeout.com').to_timeout
         
     | 
| 
      
 40 
     | 
    
         
            +
                WebMock.stub_request(:any, 'www.timeout-once.com').to_timeout
         
     | 
| 
      
 41 
     | 
    
         
            +
                       .then.to_return(body: 'abc')
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
                # PageSpeed Insights API
         
     | 
| 
      
 44 
     | 
    
         
            +
                key = ENV['WEBSERVICE_MATCHER_INSIGHTS_KEY']
         
     | 
| 
      
 45 
     | 
    
         
            +
                WebMock.stub_request(:get,
         
     | 
| 
      
 46 
     | 
    
         
            +
                                     'https://www.googleapis.com/pagespeedonline/v5/' \
         
     | 
| 
      
 47 
     | 
    
         
            +
                                     "runPagespeed?key=#{key}&screenshot=false" \
         
     | 
| 
      
 48 
     | 
    
         
            +
                                     '&url=https://constant.qa')
         
     | 
| 
      
 49 
     | 
    
         
            +
                       .to_return(
         
     | 
| 
      
 50 
     | 
    
         
            +
                         status: 200,
         
     | 
| 
      
 51 
     | 
    
         
            +
                         body: IO.read('spec/fixtures/pagespeed.json'),
         
     | 
| 
      
 52 
     | 
    
         
            +
                         headers: {})
         
     | 
| 
      
 53 
     | 
    
         
            +
              end
         
     | 
| 
      
 54 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -1,4 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'spec_helper'
         
     | 
| 
       2 
3 
     | 
    
         
             
            require 'web_test/be_fast'
         
     | 
| 
       3 
4 
     | 
    
         | 
| 
       4 
5 
     | 
    
         
             
            RSpec.describe WebTest::BeFast do
         
     | 
| 
         @@ -6,7 +7,7 @@ RSpec.describe WebTest::BeFast do 
     | 
|
| 
       6 
7 
     | 
    
         | 
| 
       7 
8 
     | 
    
         
             
              describe '#test' do
         
     | 
| 
       8 
9 
     | 
    
         
             
                it 'handles a fast site' do
         
     | 
| 
       9 
     | 
    
         
            -
                  result = WebTest::BeFast.test url: ' 
     | 
| 
      
 10 
     | 
    
         
            +
                  result = WebTest::BeFast.test url: 'https://constant.qa'
         
     | 
| 
       10 
11 
     | 
    
         
             
                  expect(result.success?).to be true
         
     | 
| 
       11 
12 
     | 
    
         
             
                  expect(result.score).to be >= 85
         
     | 
| 
       12 
13 
     | 
    
         
             
                end
         
     | 
| 
         @@ -14,9 +15,9 @@ RSpec.describe WebTest::BeFast do 
     | 
|
| 
       14 
15 
     | 
    
         | 
| 
       15 
16 
     | 
    
         
             
              describe '#parse' do
         
     | 
| 
       16 
17 
     | 
    
         
             
                it 'can parse the overall score' do
         
     | 
| 
       17 
     | 
    
         
            -
                  api_response = File.read( 
     | 
| 
      
 18 
     | 
    
         
            +
                  api_response = File.read(SAMPLE_PAGESPEED_JSON_RESPONSE)
         
     | 
| 
       18 
19 
     | 
    
         
             
                  data = WebTest::BeFast.parse json: api_response
         
     | 
| 
       19 
     | 
    
         
            -
                  expect(data[:score]).to eq  
     | 
| 
      
 20 
     | 
    
         
            +
                  expect(data[:score]).to eq 91
         
     | 
| 
       20 
21 
     | 
    
         
             
                end
         
     | 
| 
       21 
22 
     | 
    
         
             
              end
         
     | 
| 
       22 
23 
     | 
    
         | 
| 
         @@ -32,5 +33,14 @@ RSpec.describe WebTest::BeFast do 
     | 
|
| 
       32 
33 
     | 
    
         
             
                    WebTest::BeFast::TestResult.new { |r| r.success = true }
         
     | 
| 
       33 
34 
     | 
    
         
             
                  end.to raise_error(ArgumentError, /score/i)
         
     | 
| 
       34 
35 
     | 
    
         
             
                end
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
                it 'requires :response' do
         
     | 
| 
      
 38 
     | 
    
         
            +
                  expect do
         
     | 
| 
      
 39 
     | 
    
         
            +
                    WebTest::BeFast::TestResult.new { |r|
         
     | 
| 
      
 40 
     | 
    
         
            +
                      r.success = true
         
     | 
| 
      
 41 
     | 
    
         
            +
                      r.score = 90
         
     | 
| 
      
 42 
     | 
    
         
            +
                    }
         
     | 
| 
      
 43 
     | 
    
         
            +
                  end.to raise_error(ArgumentError, /response/i)      
         
     | 
| 
      
 44 
     | 
    
         
            +
                end
         
     | 
| 
       35 
45 
     | 
    
         
             
              end
         
     | 
| 
       36 
46 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: rspec-webservice_matchers
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 4. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: '4.13'
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Robb Shecter
         
     | 
| 
       8 
     | 
    
         
            -
            autorequire: 
     | 
| 
      
 8 
     | 
    
         
            +
            autorequire:
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date:  
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2021-03-26 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: bundler
         
     | 
| 
         @@ -16,14 +16,14 @@ dependencies: 
     | 
|
| 
       16 
16 
     | 
    
         
             
                requirements:
         
     | 
| 
       17 
17 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       18 
18 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       19 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 19 
     | 
    
         
            +
                    version: '2.0'
         
     | 
| 
       20 
20 
     | 
    
         
             
              type: :development
         
     | 
| 
       21 
21 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       22 
22 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       23 
23 
     | 
    
         
             
                requirements:
         
     | 
| 
       24 
24 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       25 
25 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       26 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 26 
     | 
    
         
            +
                    version: '2.0'
         
     | 
| 
       27 
27 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       28 
28 
     | 
    
         
             
              name: pry
         
     | 
| 
       29 
29 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -95,82 +95,83 @@ dependencies: 
     | 
|
| 
       95 
95 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       96 
96 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       97 
97 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       98 
     | 
    
         
            -
              name:  
     | 
| 
      
 98 
     | 
    
         
            +
              name: faraday
         
     | 
| 
       99 
99 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       100 
100 
     | 
    
         
             
                requirements:
         
     | 
| 
       101 
     | 
    
         
            -
                - - " 
     | 
| 
      
 101 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       102 
102 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       103 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 103 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
       104 
104 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       105 
105 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       106 
106 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       107 
107 
     | 
    
         
             
                requirements:
         
     | 
| 
       108 
     | 
    
         
            -
                - - " 
     | 
| 
      
 108 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       109 
109 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       110 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 110 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
       111 
111 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       112 
     | 
    
         
            -
              name:  
     | 
| 
      
 112 
     | 
    
         
            +
              name: faraday_middleware
         
     | 
| 
       113 
113 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       114 
114 
     | 
    
         
             
                requirements:
         
     | 
| 
       115 
     | 
    
         
            -
                - - " 
     | 
| 
      
 115 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       116 
116 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       117 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 117 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
       118 
118 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       119 
119 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       120 
120 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       121 
121 
     | 
    
         
             
                requirements:
         
     | 
| 
       122 
     | 
    
         
            -
                - - " 
     | 
| 
      
 122 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       123 
123 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       124 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 124 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
       125 
125 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       126 
     | 
    
         
            -
              name:  
     | 
| 
      
 126 
     | 
    
         
            +
              name: rspec-core
         
     | 
| 
       127 
127 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       128 
128 
     | 
    
         
             
                requirements:
         
     | 
| 
       129 
     | 
    
         
            -
                - - " 
     | 
| 
      
 129 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
       130 
130 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       131 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
      
 131 
     | 
    
         
            +
                    version: '3.0'
         
     | 
| 
       132 
132 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       133 
133 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       134 
134 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       135 
135 
     | 
    
         
             
                requirements:
         
     | 
| 
       136 
     | 
    
         
            -
                - - " 
     | 
| 
      
 136 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
       137 
137 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       138 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
      
 138 
     | 
    
         
            +
                    version: '3.0'
         
     | 
| 
       139 
139 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       140 
     | 
    
         
            -
              name:  
     | 
| 
      
 140 
     | 
    
         
            +
              name: rspec-expectations
         
     | 
| 
       141 
141 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       142 
142 
     | 
    
         
             
                requirements:
         
     | 
| 
       143 
     | 
    
         
            -
                - - " 
     | 
| 
      
 143 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
       144 
144 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       145 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
      
 145 
     | 
    
         
            +
                    version: '3.0'
         
     | 
| 
       146 
146 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       147 
147 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       148 
148 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       149 
149 
     | 
    
         
             
                requirements:
         
     | 
| 
       150 
     | 
    
         
            -
                - - " 
     | 
| 
      
 150 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
       151 
151 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       152 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
      
 152 
     | 
    
         
            +
                    version: '3.0'
         
     | 
| 
       153 
153 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       154 
154 
     | 
    
         
             
              name: validated_object
         
     | 
| 
       155 
155 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       156 
156 
     | 
    
         
             
                requirements:
         
     | 
| 
       157 
     | 
    
         
            -
                - - " 
     | 
| 
      
 157 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
       158 
158 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       159 
     | 
    
         
            -
                    version:  
     | 
| 
      
 159 
     | 
    
         
            +
                    version: 1.1.0
         
     | 
| 
       160 
160 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       161 
161 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       162 
162 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       163 
163 
     | 
    
         
             
                requirements:
         
     | 
| 
       164 
     | 
    
         
            -
                - - " 
     | 
| 
      
 164 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
       165 
165 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       166 
     | 
    
         
            -
                    version:  
     | 
| 
      
 166 
     | 
    
         
            +
                    version: 1.1.0
         
     | 
| 
       167 
167 
     | 
    
         
             
            description: Black-box web app configuration testing
         
     | 
| 
       168 
168 
     | 
    
         
             
            email:
         
     | 
| 
       169 
     | 
    
         
            -
            - robb@ 
     | 
| 
      
 169 
     | 
    
         
            +
            - robb@public.law
         
     | 
| 
       170 
170 
     | 
    
         
             
            executables: []
         
     | 
| 
       171 
171 
     | 
    
         
             
            extensions: []
         
     | 
| 
       172 
172 
     | 
    
         
             
            extra_rdoc_files: []
         
     | 
| 
       173 
173 
     | 
    
         
             
            files:
         
     | 
| 
      
 174 
     | 
    
         
            +
            - ".github/workflows/ruby.yml"
         
     | 
| 
       174 
175 
     | 
    
         
             
            - ".gitignore"
         
     | 
| 
       175 
176 
     | 
    
         
             
            - Gemfile
         
     | 
| 
       176 
177 
     | 
    
         
             
            - HISTORY.md
         
     | 
| 
         @@ -192,13 +193,14 @@ files: 
     | 
|
| 
       192 
193 
     | 
    
         
             
            - lib/web_test/be_up.rb
         
     | 
| 
       193 
194 
     | 
    
         
             
            - lib/web_test/util.rb
         
     | 
| 
       194 
195 
     | 
    
         
             
            - rspec-webservice_matchers.gemspec
         
     | 
| 
      
 196 
     | 
    
         
            +
            - spec/failure_matchers.rb
         
     | 
| 
       195 
197 
     | 
    
         
             
            - spec/fixtures/pagespeed.json
         
     | 
| 
       196 
     | 
    
         
            -
            - spec/rspec/webservice_matchers/page_speed_spec.rb
         
     | 
| 
       197 
198 
     | 
    
         
             
            - spec/rspec/webservice_matchers/protocol_spec.rb
         
     | 
| 
       198 
199 
     | 
    
         
             
            - spec/rspec/webservice_matchers/public_api_spec.rb
         
     | 
| 
       199 
200 
     | 
    
         
             
            - spec/rspec/webservice_matchers/redirect_spec.rb
         
     | 
| 
       200 
201 
     | 
    
         
             
            - spec/rspec/webservice_matchers/ssl_spec.rb
         
     | 
| 
       201 
202 
     | 
    
         
             
            - spec/spec_helper.rb
         
     | 
| 
      
 203 
     | 
    
         
            +
            - spec/web_mock_config.rb
         
     | 
| 
       202 
204 
     | 
    
         
             
            - spec/web_test/be_fast_spec.rb
         
     | 
| 
       203 
205 
     | 
    
         
             
            - spec/web_test/be_up_spec.rb
         
     | 
| 
       204 
206 
     | 
    
         
             
            - spec/web_test/util_spec.rb
         
     | 
| 
         @@ -206,7 +208,7 @@ homepage: https://github.com/dogweather/rspec-webservice_matchers 
     | 
|
| 
       206 
208 
     | 
    
         
             
            licenses:
         
     | 
| 
       207 
209 
     | 
    
         
             
            - MIT
         
     | 
| 
       208 
210 
     | 
    
         
             
            metadata: {}
         
     | 
| 
       209 
     | 
    
         
            -
            post_install_message: 
     | 
| 
      
 211 
     | 
    
         
            +
            post_install_message:
         
     | 
| 
       210 
212 
     | 
    
         
             
            rdoc_options: []
         
     | 
| 
       211 
213 
     | 
    
         
             
            require_paths:
         
     | 
| 
       212 
214 
     | 
    
         
             
            - lib
         
     | 
| 
         @@ -214,26 +216,26 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       214 
216 
     | 
    
         
             
              requirements:
         
     | 
| 
       215 
217 
     | 
    
         
             
              - - ">="
         
     | 
| 
       216 
218 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       217 
     | 
    
         
            -
                  version: 2. 
     | 
| 
      
 219 
     | 
    
         
            +
                  version: 2.4.0
         
     | 
| 
       218 
220 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       219 
221 
     | 
    
         
             
              requirements:
         
     | 
| 
       220 
222 
     | 
    
         
             
              - - ">="
         
     | 
| 
       221 
223 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       222 
224 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       223 
225 
     | 
    
         
             
            requirements: []
         
     | 
| 
       224 
     | 
    
         
            -
             
     | 
| 
       225 
     | 
    
         
            -
             
     | 
| 
       226 
     | 
    
         
            -
            signing_key: 
         
     | 
| 
      
 226 
     | 
    
         
            +
            rubygems_version: 3.2.9
         
     | 
| 
      
 227 
     | 
    
         
            +
            signing_key:
         
     | 
| 
       227 
228 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       228 
229 
     | 
    
         
             
            summary: Black-box web app configuration testing
         
     | 
| 
       229 
230 
     | 
    
         
             
            test_files:
         
     | 
| 
      
 231 
     | 
    
         
            +
            - spec/failure_matchers.rb
         
     | 
| 
       230 
232 
     | 
    
         
             
            - spec/fixtures/pagespeed.json
         
     | 
| 
       231 
     | 
    
         
            -
            - spec/rspec/webservice_matchers/page_speed_spec.rb
         
     | 
| 
       232 
233 
     | 
    
         
             
            - spec/rspec/webservice_matchers/protocol_spec.rb
         
     | 
| 
       233 
234 
     | 
    
         
             
            - spec/rspec/webservice_matchers/public_api_spec.rb
         
     | 
| 
       234 
235 
     | 
    
         
             
            - spec/rspec/webservice_matchers/redirect_spec.rb
         
     | 
| 
       235 
236 
     | 
    
         
             
            - spec/rspec/webservice_matchers/ssl_spec.rb
         
     | 
| 
       236 
237 
     | 
    
         
             
            - spec/spec_helper.rb
         
     | 
| 
      
 238 
     | 
    
         
            +
            - spec/web_mock_config.rb
         
     | 
| 
       237 
239 
     | 
    
         
             
            - spec/web_test/be_fast_spec.rb
         
     | 
| 
       238 
240 
     | 
    
         
             
            - spec/web_test/be_up_spec.rb
         
     | 
| 
       239 
241 
     | 
    
         
             
            - spec/web_test/util_spec.rb
         
     |