Visual_Novel_iOS/Visual_Novel_iOSTests/CLSystemTokenTests.swift

100 lines
3.4 KiB
Swift
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
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
}
}