Sha256: 0252108ef780f3932e9196a9164dbb8ceb23e915c743ac53cd472ee7fb434b4c

Contents?: true

Size: 1.44 KB

Versions: 2

Compression:

Stored size: 1.44 KB

Contents

require 'spec_helper'
require 'rspec/webservice_matchers'

# VCR may be the tool to use for this. Can it handle https? Would that work?


describe 'have_a_valid_cert matcher' do
  it 'passes when SSL is properly configured' do
    # EFF created the HTTPS Everywhere movement
    # TODO: set up a test server for this. (?)
    expect('www.eff.org').to have_a_valid_cert
  end  

  it 'fails if the server is not serving SSL at all' do
    expect {
      expect('www.psu.edu').to have_a_valid_cert    
    }.to fail
  end

  it 'provides a relevant error message' do
    expect {
      expect('www.psu.edu').to have_a_valid_cert    
    }.to fail_matching(/no route to host/i)
  end

  it "provides a relevant error message when the domain name doesn't exist" do
    expect {
      expect('sdfgkljhsdfghjkhsdfgj.edu').to have_a_valid_cert    
    }.to fail_matching(/not known/i)
  end
end


# See https://www.eff.org/https-everywhere
describe 'enforce_https_everywhere' do
  it 'passes when http requests are redirected to valid https urls' do
    expect('eff.org').to enforce_https_everywhere
  end

  it 'provides a relevant error message' do
    expect {
      expect('www.psu.edu').to enforce_https_everywhere
    }.to fail_matching(/200/)
  end

  it "provides a relevant error message when the domain name doesn't exist" do
    expect {
      expect('asdhfjkalsdhfjklasdfhjkasdhfl.com').to enforce_https_everywhere
    }.to fail_matching(/connection failed/i)
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rspec-webservice_matchers-1.4.5 spec/rspec/webservice_matchers/ssl_spec.rb
rspec-webservice_matchers-1.4.4 spec/rspec/webservice_matchers/ssl_spec.rb