50 lines
1.8 KiB
Swift
50 lines
1.8 KiB
Swift
// Copyright 2021-present 650 Industries. All rights reserved.
|
|
|
|
import XCTest
|
|
|
|
@testable import EXDevLauncher
|
|
|
|
class EXDevLauncherRecentlyOpenedAppsRegistry3DaysAgo: EXDevLauncherRecentlyOpenedAppsRegistry {
|
|
override func getCurrentTimestamp() -> Int64 {
|
|
return Int64((Date().timeIntervalSince1970 - (60 * 60 * 24 * 3) - 1) * 1_000) // 3 days and 1 second ago
|
|
}
|
|
}
|
|
|
|
class EXDevLauncherRecentlyOpenedAppsRegistryTests: XCTestCase {
|
|
func testAddAppToRegistry() {
|
|
let urlString = "http://localhost:8081"
|
|
let registry = EXDevLauncherRecentlyOpenedAppsRegistry()
|
|
registry.appWasOpened(urlString, queryParams: [:], manifest: nil)
|
|
let recentlyOpenedApps = registry.recentlyOpenedApps()
|
|
XCTAssertNotNil(recentlyOpenedApps[0])
|
|
XCTAssertEqual(recentlyOpenedApps[0]["url"] as! String, urlString)
|
|
}
|
|
|
|
func testRegistryPersistence() {
|
|
// instance of the registry class shouldn't matter
|
|
// if this fails, testRemoveOldAppFromRegistry could have a false positive
|
|
let urlString = "http://localhost:8081"
|
|
|
|
let registry1 = EXDevLauncherRecentlyOpenedAppsRegistry()
|
|
registry1.appWasOpened(urlString, queryParams: [:], manifest: nil)
|
|
|
|
let registry2 = EXDevLauncherRecentlyOpenedAppsRegistry()
|
|
let recentlyOpenedApps = registry2.recentlyOpenedApps()
|
|
|
|
XCTAssertNotNil(recentlyOpenedApps[0])
|
|
XCTAssertEqual(recentlyOpenedApps[0]["url"] as! String, urlString)
|
|
}
|
|
|
|
func testRemoveOldAppFromRegistry() {
|
|
let urlString = "http://localhost:8081"
|
|
|
|
let registryOld = EXDevLauncherRecentlyOpenedAppsRegistry3DaysAgo()
|
|
registryOld.appWasOpened(urlString, queryParams: [:], manifest: nil)
|
|
|
|
let registryNew = EXDevLauncherRecentlyOpenedAppsRegistry()
|
|
let recentlyOpenedApps = registryNew.recentlyOpenedApps()
|
|
|
|
XCTAssertTrue(recentlyOpenedApps.count == 0)
|
|
}
|
|
}
|