clayton/sslcheck

View on GitHub
acceptance/checking_certificates_spec.rb

Summary

Maintainability
A
40 mins
Test Coverage
require 'spec_helper'

module SSLCheck
  describe 'Checking Certificates' do
    context "when the certificate is missing" do
      before do
        SSLCheck::Client.timeout_seconds = 1
        @check = Checker.new.check("nossl.com")
      end
      it 'should not be valid' do
        expect(@check.valid?).to_not be
      end
      it 'should have errors' do
        expect(@check.errors).to_not be_empty
      end
    end
    context "when the certificate is valid" do
      before do
        @check = Checker.new.check("letsencrypt.org")
      end
      it 'should be valid' do
        expect(@check.valid?).to be
      end
      it 'should not have any errors' do
        expect(@check.errors).to be_empty
      end
      it 'should know the peer certificate' do
        expect(@check.peer_cert).to be
      end
      it 'should know the ca bundle' do
        expect(@check.ca_bundle).to be
      end
    end
    xcontext "when the certificate is on a subdomain, but not a wildcard cert" do
      before do
        @check = Checker.new.check("https://www.httpbin.org")
      end
      it 'should be valid' do
        expect(@check.valid?).to be
      end
      it 'should not have any errors' do
        expect(@check.errors).to be_empty
      end
    end
    context "when the common name is not correct" do
      before do
        @check = Checker.new.check('https://wrong.host.badssl.com/')
      end
      it 'should not be valid' do
        expect(@check.valid?).to_not be
      end
      it 'should have errors' do
        expect(@check.errors).to_not be_empty
      end
    end
  end
end