2020-08-26 21:29:05 +02:00
|
|
|
//
|
|
|
|
|
// QRKeyScannerTest.swift
|
|
|
|
|
// passTests
|
|
|
|
|
//
|
|
|
|
|
// Created by Danny Moesch on 21.08.20.
|
|
|
|
|
// Copyright © 2020 Bob Sun. All rights reserved.
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
import XCTest
|
|
|
|
|
|
|
|
|
|
@testable import Pass
|
|
|
|
|
|
2024-11-24 13:14:38 +01:00
|
|
|
final class QRKeyScannerTest: XCTestCase {
|
2020-11-10 22:43:44 +01:00
|
|
|
private let header = "-----BEGIN PGP PUBLIC KEY BLOCK-----"
|
|
|
|
|
private let body = "key body"
|
|
|
|
|
private let footer = "-----END PGP PUBLIC KEY BLOCK-----"
|
2021-01-09 16:26:56 -08:00
|
|
|
private let footerWithNewline = "-----END PGP PUBLIC KEY BLOCK-----\n"
|
2020-11-10 22:43:44 +01:00
|
|
|
private let privateHeader = "-----BEGIN PGP PRIVATE KEY BLOCK-----"
|
2020-08-26 21:29:05 +02:00
|
|
|
|
2020-11-10 22:43:44 +01:00
|
|
|
private var scanner = QRKeyScanner(keyType: .pgpPublic)
|
2020-08-26 21:29:05 +02:00
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
}
|
2020-08-21 23:47:10 +02:00
|
|
|
|
|
|
|
|
func testFooterSplitIntoDifferentSegments() {
|
|
|
|
|
XCTAssertEqual(scanner.add(segment: header), .scanned(1))
|
|
|
|
|
XCTAssertEqual(scanner.add(segment: "-----END PGP PUBLIC KEY "), .scanned(2))
|
|
|
|
|
XCTAssertEqual(scanner.add(segment: "BLOCK-----"), .completed)
|
|
|
|
|
XCTAssertEqual(scanner.scannedKey, header + footer)
|
|
|
|
|
}
|
2021-01-09 16:26:56 -08:00
|
|
|
|
|
|
|
|
func testFooterWithNewlien() {
|
|
|
|
|
XCTAssertEqual(scanner.add(segment: header), .scanned(1))
|
|
|
|
|
XCTAssertEqual(scanner.add(segment: footerWithNewline), .completed)
|
|
|
|
|
XCTAssertEqual(scanner.scannedKey, header + footerWithNewline)
|
|
|
|
|
}
|
2020-08-26 21:29:05 +02:00
|
|
|
}
|