Visual_Novel_iOS/Visual_Novel_iOSTests/CLSystemTokenTests.swift

100 lines
3.4 KiB
Swift
Raw Permalink Normal View History

2025-10-14 05:52:46 +00:00
//
Tests.swift
Tests
//
// Created by Leon on 2025/7/11.
//
import XCTest
@testable import Visual_Novel_iOS
class CLSystemTokenTests: XCTestCase {
override func setUp() {
super.setUp()
}
override func tearDown() {
super.tearDown()
}
//
func testColorForValidToken() {
let expectedColor = UIColor(red: 1.0, green: 0.925, blue: 0.871, alpha: 1.0) // #FFECDE
let color = CLSystemToken.color(token: .cph)
XCTAssertNotNil(color, "Color should not be nil for valid token")
// if let color = color {
// XCTAssertEqual(color, expectedColor, accuracy: 0.01, "Color should match expected RGB values")
// }
}
//
func testColorWithAlpha() {
// skin.json ["#FFECDE", "0.5"]
let token = CLEnumSystemToken(rawValue: "color.orange.with.alpha")
let expectedColor = UIColor(red: 1.0, green: 0.925, blue: 0.871, alpha: 0.5)
// EPUI
let mockValues = ["#FFECDE", "0.5"]
// EPUI.getTokensByKey mockValues mock skin.json
let color = EPBaseObject.subGetColorByTokenValues(mockValues)
XCTAssertNotNil(color, "Color with alpha should not be nil")
if let color = color {
//XCTAssertEqual(color, expectedColor, accuracy: 0.01, "Color with alpha should match expected RGBA values")
//XCTAssertEqual(color, expectedColor, accuracy: 0.01, "xxx")
}
}
// token
// func testColorForInvalidToken() {
// let token = CLEnumSystemToken(rawValue: "invalid.color")!
// let color = CLSystemToken.color(token: token)
//
// XCTAssertNil(color, "Color should be nil for invalid token")
// }
//
// func testDarkColorForValidToken() {
// let token = CLEnumSystemToken(rawValue: "color.orange.90")! //
// let expectedColor = UIColor(red: 0.302, green: 0.078, blue: 0.0, alpha: 1.0) // #4D1400
// let color = CLSystemToken.darkColor(token: token)
//
// XCTAssertNotNil(color, "Dark color should not be nil for valid token")
//
//// if let color = color {
//// XCTAssertEqual(color, expectedColor, accuracy: 0.01, "Dark color should match expected RGB values")
//// }
// }
//
// func testColorForEmptyValues() {
// let emptyValues: [String] = []
// let color = EPBaseObject.subGetColorByTokenValues(emptyValues)
//
// XCTAssertNil(color, "Color should be nil for empty values")
// }
}
// UIColor
extension UIColor {
func isEqual(to color: UIColor, accuracy: CGFloat) -> Bool {
var r1: CGFloat = 0, g1: CGFloat = 0, b1: CGFloat = 0, a1: CGFloat = 0
var r2: CGFloat = 0, g2: CGFloat = 0, b2: CGFloat = 0, a2: CGFloat = 0
self.getRed(&r1, green: &g1, blue: &b1, alpha: &a1)
color.getRed(&r2, green: &g2, blue: &b2, alpha: &a2)
return abs(r1 - r2) <= accuracy &&
abs(g1 - g2) <= accuracy &&
abs(b1 - b2) <= accuracy &&
abs(a1 - a2) <= accuracy
}
}