61 lines
2.1 KiB
Swift
61 lines
2.1 KiB
Swift
import Foundation
|
|
import Testing
|
|
@testable import LocalData
|
|
|
|
@Suite struct AuditTests {
|
|
|
|
private struct AuditCatalog: StorageKeyCatalog {
|
|
var allKeys: [AnyStorageKey] {
|
|
[
|
|
.key(AuditTests.makeTestKey(name: "k1", domain: .userDefaults(suite: nil))),
|
|
.key(AuditTests.makeTestKey(
|
|
name: "k2",
|
|
domain: .keychain(service: "s"),
|
|
security: .keychain(accessibility: .afterFirstUnlock, accessControl: .userPresence)
|
|
)),
|
|
.key(AuditTests.makeTestKey(name: "k3", domain: .fileSystem(directory: .documents))),
|
|
.key(AuditTests.makeTestKey(name: "k4", domain: .encryptedFileSystem(directory: .caches))),
|
|
.key(AuditTests.makeTestKey(
|
|
name: "k5",
|
|
domain: .appGroupUserDefaults(identifier: "ig"),
|
|
security: .encrypted(.recommended)
|
|
))
|
|
]
|
|
}
|
|
}
|
|
|
|
private static func makeTestKey(
|
|
name: String,
|
|
domain: StorageDomain,
|
|
security: SecurityPolicy = .none
|
|
) -> StorageKey<String> {
|
|
StorageKey(
|
|
name: name,
|
|
domain: domain,
|
|
security: security,
|
|
owner: "Audit",
|
|
description: "Desc"
|
|
)
|
|
}
|
|
|
|
@Test func renderCatalogText() {
|
|
let text = StorageAuditReport.renderText(AuditCatalog())
|
|
|
|
#expect(text.contains("name=k1"))
|
|
#expect(text.contains("domain=userDefaults(standard)"))
|
|
|
|
#expect(text.contains("name=k2"))
|
|
#expect(text.contains("keychain(After First Unlock, User Presence)"))
|
|
|
|
#expect(text.contains("name=k3"))
|
|
#expect(text.contains("fileSystem(documents)"))
|
|
|
|
#expect(text.contains("name=k4"))
|
|
#expect(text.contains("encryptedFileSystem(caches)"))
|
|
|
|
#expect(text.contains("name=k5"))
|
|
#expect(text.contains("appGroupUserDefaults(ig)"))
|
|
#expect(text.contains("security=encrypted(chacha20Poly1305(hkdf))"))
|
|
}
|
|
}
|