mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-31 12:47:43 +00:00
62 lines
2.3 KiB
Swift
62 lines
2.3 KiB
Swift
//
|
|
// KeymanEngineTests.swift
|
|
// KeymanEngineTests
|
|
//
|
|
// Created by Randy Boring on 3/7/19.
|
|
// Copyright © 2019 SIL International. All rights reserved.
|
|
//
|
|
|
|
import XCTest
|
|
|
|
@testable import KeymanEngine
|
|
import DeviceKit
|
|
|
|
|
|
class FileManagementTests: XCTestCase {
|
|
override func setUp() {
|
|
// Put setup code here. This method is called before the invocation of each test method in the class.
|
|
}
|
|
|
|
override func tearDown() {
|
|
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
|
if let storage = Storage.active {
|
|
TestUtils.eraseStorage(storage)
|
|
TestUtils.UserDefaults.clearUserDefaults(from: storage)
|
|
}
|
|
|
|
let cacheDirectory = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask)[0]
|
|
do {
|
|
try FileManager.default.removeItem(at: cacheDirectory)
|
|
} catch {
|
|
log.error(error)
|
|
}
|
|
}
|
|
|
|
// AMDD acceptance test for existing KeymanPackage so I'll know what has to keep working despite my changers
|
|
func testKeyboardPackageExtraction() throws {
|
|
let khmerPackageURL = TestUtils.keyboardsBundle.url(forResource: "khmer_angkor", withExtension: "kmp")!
|
|
|
|
let cacheDirectory = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask)[0]
|
|
let khmerPackageZip = cacheDirectory.appendingPathComponent("khmer_angkor.zip")
|
|
try FileManager.default.copyItem(at: khmerPackageURL, to: khmerPackageZip)
|
|
|
|
let destinationFolderURL = cacheDirectory.appendingPathComponent("khmer_angkor")
|
|
|
|
// Requires that the source file is already .zip, not .kmp. It's a ZipUtils limitation.
|
|
do {
|
|
try KeymanPackage.extract(fileUrl: khmerPackageZip, destination: destinationFolderURL, complete: { kmp in
|
|
if let kmp = kmp {
|
|
XCTAssertTrue(kmp.isKeyboard(), "Keyboard KMP test extraction did not yield a keyboard package!")
|
|
|
|
// extracted ok, test kmp
|
|
XCTAssert(kmp.sourceFolder == destinationFolderURL,
|
|
"The KMP's reported 'source folder' should match the specified destination folder")
|
|
} else {
|
|
XCTAssert(false, "KeymanPackage.extract failed")
|
|
}
|
|
}) // Use XCTAssert and related functions to verify your tests produce the correct results.
|
|
} catch {
|
|
XCTFail("KeymanPackage.extract failed with error \(error)")
|
|
}
|
|
}
|
|
}
|