Commit 542ce4e

mo <mo@mokhan.ca>
2017-11-14 18:21:45
implement serialize.
1 parent 4bf714a
Changed files (2)
lib/saml/kit/logout_response.rb
@@ -42,6 +42,10 @@ module Saml
         @xml_hash
       end
 
+      def serialize
+        Saml::Kit::Content.encode_raw_saml(to_xml)
+      end
+
       def to_xml
         content
       end
spec/saml/logout_response_spec.rb
@@ -23,4 +23,18 @@ RSpec.describe Saml::Kit::LogoutResponse do
       end
     end
   end
+
+  describe "#serialize" do
+    let(:user) { double(:user, name_id_for: SecureRandom.uuid, assertion_attributes_for: { }) }
+    let(:request) { double(id: SecureRandom.uuid, acs_url: acs_url, issuer: issuer, name_id_format: Saml::Kit::Namespaces::PERSISTENT, provider: nil) }
+    let(:acs_url) { FFaker::Internet.http_url }
+    let(:issuer) { FFaker::Internet.http_url }
+    let(:builder) { described_class::Builder.new(user, request) }
+    subject { builder.build }
+
+    it 'returns a compressed and base64 encoded document' do
+      expected_value = Base64.encode64(Zlib::Deflate.deflate(subject.to_xml, 9)).gsub(/\n/, '')
+      expect(subject.serialize).to eql(expected_value)
+    end
+  end
 end