spec/lib/xmldsig_spec.rb in xmldsig-0.2.6 vs spec/lib/xmldsig_spec.rb in xmldsig-0.2.7

- old
+ new

@@ -42,6 +42,39 @@ end end end end + describe "Allows specifying a custom id attribute" do + context "an unsigned document" do + let(:unsigned_xml) { File.read("spec/fixtures/unsigned_custom_attribute_id.xml") } + let(:unsigned_document) { Xmldsig::SignedDocument.new(unsigned_xml, :id_attr => 'MyID') } + let(:signed_document) { unsigned_document.sign(private_key) } + + it "should be signable an validateable" do + Xmldsig::SignedDocument.new(signed_document, :id_attr => 'MyID').validate(certificate).should be == true + end + + it 'should have a signature element' do + Xmldsig::SignedDocument.new(signed_document, :id_attr => 'MyID').signatures.count.should == 1 + end + + # TODO: remove this verification step when library matures + # it 'matches the result from xmlsec1' do + # document = "spec/fixtures/unsigned_custom_attribute_id.xml" + # result = `xmlsec1 --sign --privkey-pem spec/fixtures/key.pem --id-attr:MyID Foo #{document}` + # result.gsub!("\n", '') + # signed_document.gsub!("\n", '') + # result.should == signed_document + # end + end + + context "a signed document" do + let(:signed_xml) { File.read("spec/fixtures/signed_custom_attribute_id.xml") } + let(:signed_document) { Xmldsig::SignedDocument.new(signed_xml, :id_attr => 'MyID') } + + it "should be validateable" do + signed_document.validate(certificate).should be == true + end + end + end end