Commit 3e8d3f1

mo <mo@mokhan.ca>
2018-03-02 22:07:14
add spec for invalid signature.
1 parent a6f459b
Changed files (1)
spec
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