Sha256: daacb8ebdc8a60797195fe3106e1aa3d932dc0ebe7c274b4c060ecc93de021c8

Contents?: true

Size: 1.61 KB

Versions: 1

Compression:

Stored size: 1.61 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

  it 'provides a good error message if the request times out' do
    expect {
      'www.myapp.com'.should have_a_valid_cert
    }.to fail_matching(/execution expired/)
  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

1 entries across 1 versions & 1 rubygems

Version Path
rspec-webservice_matchers-1.4.6 spec/rspec/webservice_matchers/ssl_spec.rb