Files
RubyMotion/test/external/unit/util/code_sign_spec.rb
2014-02-27 16:01:20 +01:00

92 lines
3.4 KiB
Ruby

require File.expand_path('../../../spec_helper', __FILE__)
require 'motion/util/code_sign'
module SpecHelper
module Fixtures
NO_CODESIGN_IDENTITIES = <<-EOS
Policy: Code Signing
Matching identities
0 identities found
EOS
ALL_CODESIGN_IDENTITIES = <<-EOS
Policy: Code Signing
Matching identities
1) 5DD1D0DB197456F156D58D0F176200FB18840923 "Developer ID Application: Fingertips B.V."
2) 689D97626D58D0F11F26AE048CBAD0FFB53545C9 "iPhone Developer: Eloy Duran (K5B8YH2WD5)"
3) 01D976265D06F156D585560DB19740AD053C1162 "Mac Developer Self-Signed for Eloy Durán" (CSSMERR_TP_INVALID_ANCHOR_CERT)
3 identities found
Valid identities only
1) 5DD1D0DB197456F156D58D0F176200FB18840923 "Developer ID Application: Fingertips B.V."
2) 689D97626D58D0F11F26AE048CBAD0FFB53545C9 "iPhone Developer: Eloy Duran (K5B8YH2WD5)"
2 valid identities found
EOS
VALID_CODESIGN_IDENTITIES = <<-EOS
1) 5DD1D0DB197456F156D58D0F176200FB18840923 "Developer ID Application: Fingertips B.V."
2) 689D97626D58D0F11F26AE048CBAD0FFB53545C9 "iPhone Developer: Eloy Duran (K5B8YH2WD5)"
2 valid identities found
EOS
end
end
module Motion; module Util
describe CodeSign do
it "queries the security database for all codesigning identities" do
CodeSign.expects(:`).with('/usr/bin/security -q find-identity -p codesigning').returns(' ALL ')
CodeSign.query_security_db_for_identities(false).should == 'ALL'
end
it "queries the security database for valid codesigning identities" do
CodeSign.expects(:`).with('/usr/bin/security -q find-identity -p codesigning -v').returns(' VALID ')
CodeSign.query_security_db_for_identities(true).should == 'VALID'
end
it "returns an empty list if there are no codesigning identities" do
CodeSign.stubs(:query_security_db_for_identities).returns(SpecHelper::Fixtures::NO_CODESIGN_IDENTITIES)
CodeSign.identities(false).should == {}
end
before do
CodeSign.stubs(:query_security_db_for_identities).with(false).returns(SpecHelper::Fixtures::ALL_CODESIGN_IDENTITIES)
CodeSign.stubs(:query_security_db_for_identities).with(true).returns(SpecHelper::Fixtures::VALID_CODESIGN_IDENTITIES)
end
it "returns all codesign identities" do
CodeSign.identities(false).should == {
'5DD1D0DB197456F156D58D0F176200FB18840923' => 'Developer ID Application: Fingertips B.V.',
'689D97626D58D0F11F26AE048CBAD0FFB53545C9' => 'iPhone Developer: Eloy Duran (K5B8YH2WD5)',
'01D976265D06F156D585560DB19740AD053C1162' => 'Mac Developer Self-Signed for Eloy Durán',
}
end
it "returns only valid identities" do
CodeSign.identities(true).should == {
'5DD1D0DB197456F156D58D0F176200FB18840923' => 'Developer ID Application: Fingertips B.V.',
'689D97626D58D0F11F26AE048CBAD0FFB53545C9' => 'iPhone Developer: Eloy Duran (K5B8YH2WD5)',
}
end
it "returns all codesign identity names" do
CodeSign.identity_names(false).should == [
'Developer ID Application: Fingertips B.V.',
'iPhone Developer: Eloy Duran (K5B8YH2WD5)',
'Mac Developer Self-Signed for Eloy Durán',
]
end
it "returns only valid identity names" do
CodeSign.identity_names(true).should == [
'Developer ID Application: Fingertips B.V.',
'iPhone Developer: Eloy Duran (K5B8YH2WD5)',
]
end
end
end; end