2018-11-28 22:58:24 +01:00
|
|
|
//
|
2020-02-22 23:23:02 +08:00
|
|
|
// PasswordGeneratorFlavorTest.swift
|
2018-11-28 22:58:24 +01:00
|
|
|
// passKitTests
|
|
|
|
|
//
|
|
|
|
|
// Created by Danny Moesch on 28.11.18.
|
|
|
|
|
// Copyright © 2018 Bob Sun. All rights reserved.
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
import KeychainAccess
|
|
|
|
|
import XCTest
|
|
|
|
|
|
|
|
|
|
@testable import passKit
|
|
|
|
|
|
2020-02-22 23:23:02 +08:00
|
|
|
class PasswordGeneratorFlavorTest: XCTestCase {
|
2018-11-28 22:58:24 +01:00
|
|
|
|
|
|
|
|
private let KEYCHAIN_PASSWORD_LENGTH = Keychain.generatePassword().count
|
|
|
|
|
|
2019-01-14 20:24:56 +01:00
|
|
|
func testLocalizedName() {
|
2020-02-22 23:23:02 +08:00
|
|
|
XCTAssertEqual(PasswordGeneratorFlavor.apple.localized, "Apple".localize())
|
|
|
|
|
XCTAssertEqual(PasswordGeneratorFlavor.random.localized, "Random".localize())
|
2019-01-14 20:24:56 +01:00
|
|
|
}
|
|
|
|
|
|
2018-11-28 22:58:24 +01:00
|
|
|
func testDefaultLength() {
|
|
|
|
|
// Ensure properly chosen default length values. So this check no longer needs to be performed in the code.
|
2020-02-22 23:23:02 +08:00
|
|
|
PasswordGeneratorFlavor.allCases.map { $0.defaultLength }.forEach { defaultLength in
|
2018-11-28 22:58:24 +01:00
|
|
|
XCTAssertLessThanOrEqual(defaultLength.min, defaultLength.max)
|
|
|
|
|
XCTAssertLessThanOrEqual(defaultLength.def, defaultLength.max)
|
|
|
|
|
XCTAssertGreaterThanOrEqual(defaultLength.def, defaultLength.min)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func testGeneratePassword() {
|
2020-02-22 23:23:02 +08:00
|
|
|
let apple = PasswordGeneratorFlavor.apple
|
|
|
|
|
let random = PasswordGeneratorFlavor.random
|
2018-11-28 22:58:24 +01:00
|
|
|
|
2020-02-22 23:23:02 +08:00
|
|
|
XCTAssertEqual(apple.generate(length: 4).count, KEYCHAIN_PASSWORD_LENGTH)
|
|
|
|
|
XCTAssertEqual(random.generate(length: 0).count, 0)
|
|
|
|
|
XCTAssertEqual(random.generate(length: 4).count, 4)
|
|
|
|
|
XCTAssertEqual(random.generate(length: 100).count, 100)
|
2018-11-28 22:58:24 +01:00
|
|
|
}
|
|
|
|
|
}
|