Sha256: 7eb750e177f0cb188251cb308348f05ad4f2f7e4731404a0b682e6a1f03b1149

Contents?: true

Size: 1.41 KB

Versions: 16

Compression:

Stored size: 1.41 KB

Contents

require 'spec_helper'

module SecureHeaders
  describe PublicKeyPins do
    specify{ expect(PublicKeyPins.new(:max_age => 1234).name).to eq("Public-Key-Pins-Report-Only") }
    specify{ expect(PublicKeyPins.new(:max_age => 1234, :enforce => true).name).to eq("Public-Key-Pins") }

    specify { expect(PublicKeyPins.new({:max_age => 1234}).value).to eq("max-age=1234")}
    specify { expect(PublicKeyPins.new(:max_age => 1234).value).to eq("max-age=1234")}
    specify {
      config = {:max_age => 1234, :pins => [{:sha256 => 'base64encodedpin1'}, {:sha256 => 'base64encodedpin2'}]}
      header_value = "max-age=1234; pin-sha256=\"base64encodedpin1\"; pin-sha256=\"base64encodedpin2\""
      expect(PublicKeyPins.new(config).value).to eq(header_value)
    }

    context "with an invalid configuration" do
      it "raises an exception when max-age is not provided" do
        expect {
          PublicKeyPins.new(:foo => 'bar')
        }.to raise_error(PublicKeyPinsBuildError)
      end

      it "raises an exception with an invalid max-age" do
        expect {
          PublicKeyPins.new(:max_age => 'abc123')
        }.to raise_error(PublicKeyPinsBuildError)
      end

      it 'raises an exception with less than 2 pins' do
        expect {
          config = {:max_age => 1234, :pins => [{:sha256 => 'base64encodedpin'}]}
          PublicKeyPins.new(config)
        }.to raise_error(PublicKeyPinsBuildError)
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
secure_headers-2.5.3 spec/lib/secure_headers/headers/public_key_pins_spec.rb
secure_headers-2.5.2 spec/lib/secure_headers/headers/public_key_pins_spec.rb
secure_headers-2.5.1 spec/lib/secure_headers/headers/public_key_pins_spec.rb
secure_headers-2.5.0 spec/lib/secure_headers/headers/public_key_pins_spec.rb
secure_headers-2.4.4 spec/lib/secure_headers/headers/public_key_pins_spec.rb
secure_headers-2.4.3 spec/lib/secure_headers/headers/public_key_pins_spec.rb
secure_headers-2.4.2 spec/lib/secure_headers/headers/public_key_pins_spec.rb
secure_headers-2.4.1 spec/lib/secure_headers/headers/public_key_pins_spec.rb
secure_headers-2.4.0 spec/lib/secure_headers/headers/public_key_pins_spec.rb
secure_headers-2.3.0 spec/lib/secure_headers/headers/public_key_pins_spec.rb
secure_headers-2.2.4 spec/lib/secure_headers/headers/public_key_pins_spec.rb
secure_headers-2.2.3 spec/lib/secure_headers/headers/public_key_pins_spec.rb
secure_headers-2.2.2 spec/lib/secure_headers/headers/public_key_pins_spec.rb
secure_headers-2.2.1 spec/lib/secure_headers/headers/public_key_pins_spec.rb
secure_headers-2.2.0 spec/lib/secure_headers/headers/public_key_pins_spec.rb
secure_headers-2.1.0 spec/lib/secure_headers/headers/public_key_pins_spec.rb