Combine key scanning logic in one class
This commit is contained in:
parent
edd7398cd4
commit
078503f249
10 changed files with 405 additions and 112 deletions
51
passTests/Models/QRKeyScannerTest.swift
Normal file
51
passTests/Models/QRKeyScannerTest.swift
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
//
|
||||
// QRKeyScannerTest.swift
|
||||
// passTests
|
||||
//
|
||||
// Created by Danny Moesch on 21.08.20.
|
||||
// Copyright © 2020 Bob Sun. All rights reserved.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
|
||||
@testable import Pass
|
||||
|
||||
class QRKeyScannerTest: XCTestCase {
|
||||
let header = "-----BEGIN PGP PUBLIC KEY BLOCK-----"
|
||||
let body = "key body"
|
||||
let footer = "-----END PGP PUBLIC KEY BLOCK-----"
|
||||
let privateHeader = "-----BEGIN PGP PRIVATE KEY BLOCK-----"
|
||||
|
||||
var scanner = QRKeyScanner(keyType: .pgpPublic)
|
||||
|
||||
func testAddHeaderTwice() {
|
||||
XCTAssertEqual(scanner.add(segment: header), .scanned(1))
|
||||
XCTAssertEqual(scanner.add(segment: header), .scanned(1))
|
||||
XCTAssertEqual(scanner.scannedKey, header)
|
||||
}
|
||||
|
||||
func testAddBodyTwice() {
|
||||
XCTAssertEqual(scanner.add(segment: header), .scanned(1))
|
||||
XCTAssertEqual(scanner.add(segment: body), .scanned(2))
|
||||
XCTAssertEqual(scanner.add(segment: body), .scanned(2))
|
||||
XCTAssertEqual(scanner.scannedKey, header + body)
|
||||
}
|
||||
|
||||
func testAddCompleteBlock() {
|
||||
XCTAssertEqual(scanner.add(segment: header), .scanned(1))
|
||||
XCTAssertEqual(scanner.add(segment: footer), .completed)
|
||||
XCTAssertEqual(scanner.scannedKey, header + footer)
|
||||
}
|
||||
|
||||
func testCounterKeyType() {
|
||||
XCTAssertEqual(scanner.add(segment: privateHeader), .wrongKeyType(.pgpPrivate))
|
||||
XCTAssertEqual(scanner.add(segment: privateHeader), .wrongKeyType(.pgpPrivate))
|
||||
XCTAssertTrue(scanner.scannedKey.isEmpty)
|
||||
}
|
||||
|
||||
func testUnknownKeyType() {
|
||||
XCTAssertEqual(scanner.add(segment: body), .lookingForStart)
|
||||
XCTAssertEqual(scanner.add(segment: body), .lookingForStart)
|
||||
XCTAssertTrue(scanner.scannedKey.isEmpty)
|
||||
}
|
||||
}
|
||||
43
passTests/Models/ScannableKeyTypeTest.swift
Normal file
43
passTests/Models/ScannableKeyTypeTest.swift
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
//
|
||||
// ScannableKeyTypeTest.swift
|
||||
// passTests
|
||||
//
|
||||
// Created by Danny Moesch on 21.08.20.
|
||||
// Copyright © 2020 Bob Sun. All rights reserved.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
|
||||
@testable import Pass
|
||||
|
||||
class ScannableKeyTypeTest: XCTestCase {
|
||||
func testPGPPublicKey() {
|
||||
let type = ScannableKeyType.pgpPublic
|
||||
|
||||
XCTAssertEqual(type.visibility, "Public")
|
||||
XCTAssertEqual(type.headerStart, "-----BEGIN PGP PUBLIC KEY BLOCK-----")
|
||||
XCTAssertEqual(type.footerStart, "-----END PGP PUBLIC")
|
||||
XCTAssertEqual(type.footerEnd, "KEY BLOCK-----")
|
||||
XCTAssertEqual(type.counterType, .pgpPrivate)
|
||||
}
|
||||
|
||||
func testPGPPrivateKey() {
|
||||
let type = ScannableKeyType.pgpPrivate
|
||||
|
||||
XCTAssertEqual(type.visibility, "Private")
|
||||
XCTAssertEqual(type.headerStart, "-----BEGIN PGP PRIVATE KEY BLOCK-----")
|
||||
XCTAssertEqual(type.footerStart, "-----END PGP PRIVATE")
|
||||
XCTAssertEqual(type.footerEnd, "KEY BLOCK-----")
|
||||
XCTAssertEqual(type.counterType, .pgpPublic)
|
||||
}
|
||||
|
||||
func testSSHPrivateKey() {
|
||||
let type = ScannableKeyType.sshPrivate
|
||||
|
||||
XCTAssertEqual(type.visibility, "Private")
|
||||
XCTAssertEqual(type.headerStart, "-----BEGIN")
|
||||
XCTAssertEqual(type.footerStart, "-----END")
|
||||
XCTAssertEqual(type.footerEnd, "KEY-----")
|
||||
XCTAssertNil(type.counterType)
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue