Commit 3e8d3f1
Changed files (1)
spec
saml
kit
spec/saml/kit/metadata_spec.rb
@@ -86,7 +86,7 @@ RSpec.describe Saml::Kit::Metadata do
end
describe "validations" do
- it 'is invalid, when the signature is invalid' do
+ it 'is invalid, when the digest value is invalid' do
xml = described_class.build_xml do |x|
x.entity_id = "original"
x.sign_with(::Xml::Kit::KeyPair.generate(use: :signing))
@@ -99,5 +99,21 @@ RSpec.describe Saml::Kit::Metadata do
expect(subject).not_to be_valid
expect(subject.errors[:digest_value]).to include("is invalid.")
end
+
+ it 'is invalid when the signature is invalid' do
+ xml = described_class.build_xml do |x|
+ x.sign_with(::Xml::Kit::KeyPair.generate(use: :signing))
+ x.build_identity_provider do |y|
+ y.add_single_sign_on_service(FFaker::Internet.uri("https"), binding: :http_post)
+ end
+ end
+ document = Nokogiri::XML(xml)
+ node = document.at_xpath("/*/ds:Signature/ds:SignatureValue", ds: Xml::Kit::Namespaces::XMLDSIG)
+ node.content = Base64.encode64("invalid")
+
+ subject = described_class.from(document.to_s)
+ expect(subject).not_to be_valid
+ expect(subject.errors[:signature]).to include("is invalid.")
+ end
end
end