This repository has been archived by the owner. It is now read-only.
Permalink
Cannot retrieve contributors at this time
46 lines (36 sloc)
1.92 KB
| /* This Source Code Form is subject to the terms of the Mozilla Public | |
| * License, v. 2.0. If a copy of the MPL was not distributed with this | |
| * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ | |
| import XCTest | |
| import Storage | |
| class CertTests: XCTestCase { | |
| func testCertStore() { | |
| let certStore = CertStore() | |
| let origin1 = "www.mozilla.org:80" | |
| let origin2 = "people.mozilla.org:80" | |
| let cert1 = getCertificate("testcert1") | |
| let cert2 = getCertificate("testcert2") | |
| // Check that contains return false for certs not in store. | |
| XCTAssertFalse(certStore.containsCertificate(cert1, forOrigin: origin1)) | |
| // Add a certificate. | |
| certStore.addCertificate(cert1, forOrigin: origin1) | |
| // Check that the cert is in the store. | |
| XCTAssert(certStore.containsCertificate(cert1, forOrigin: origin1)) | |
| // Check that the cert is unique to the origin. | |
| XCTAssertFalse(certStore.containsCertificate(cert1, forOrigin: origin2)) | |
| XCTAssertFalse(certStore.containsCertificate(cert2, forOrigin: origin1)) | |
| // Add a different certificate for the same origin. | |
| certStore.addCertificate(cert2, forOrigin: origin1) | |
| // Check that adding a cert for an existing origin doesn't do a replace. | |
| XCTAssert(certStore.containsCertificate(cert1, forOrigin: origin1)) | |
| XCTAssert(certStore.containsCertificate(cert2, forOrigin: origin1)) | |
| // Check that adding an existing cert has no effect. | |
| certStore.addCertificate(cert1, forOrigin: origin1) | |
| XCTAssert(certStore.containsCertificate(cert1, forOrigin: origin1)) | |
| } | |
| fileprivate func getCertificate(_ file: String) -> SecCertificate { | |
| let path = Bundle(for: type(of: self)).path(forResource: file, ofType: "pem") | |
| let data = try? Data(contentsOf: URL(fileURLWithPath: path!)) | |
| return SecCertificateCreateWithData(nil, data! as CFData)! | |
| } | |
| } |