mirror of
https://github.com/zhigang1992/RubyMotion.git
synced 2026-04-02 22:42:49 +08:00
Also move the logic out into a separate util module. Fixes http://hipbyte.myjetbrains.com/youtrack/issue/RM-399.
92 lines
3.4 KiB
Ruby
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
|
|
|