Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
88 changes: 88 additions & 0 deletions Other/Citra_per_game_config/v2/CitraConfigHelpers_Test.ahk
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,90 @@ AssertEqual(actual, expected, testName) {
}
}

TestRegExEscape() {
global stdout
stdout.WriteLine("Running TestRegExEscape...")

special := "\()[]{}?*+|^$."
escaped := RegExEscape(special)
expected := "\\\(\)\[\]\{\}\?\*\+\|\^\$\."
AssertEqual(escaped, expected, "RegExEscape correctly escapes special characters")
}

TestSetKey() {
global stdout
stdout.WriteLine("Running TestSetKey...")

content := "a=1`nb=2`nc=3"

; Replace first
result := SetKey(content, "a", "10")
AssertEqual(result, "a=10`nb=2`nc=3", "SetKey replaces first key")

; Replace middle
result := SetKey(content, "b", "20")
AssertEqual(result, "a=1`nb=20`nc=3", "SetKey replaces middle key")

; Replace last
result := SetKey(content, "c", "30")
AssertEqual(result, "a=1`nb=2`nc=30", "SetKey replaces last key")

; Add new
result := SetKey(content, "d", "4")
AssertEqual(result, "a=1`nb=2`nc=3`nd=4", "SetKey appends new key")
}

TestLoadConfig() {
global stdout
stdout.WriteLine("Running TestLoadConfig...")

testFile := A_ScriptDir . "\test_load_config.txt"
if FileExist(testFile)
FileDelete(testFile)

; Test 1: Non-existent file
result := LoadConfig(testFile)
AssertEqual(result, "", "LoadConfig returns empty string for non-existent file")

; Test 2: Existing file
FileAppend("test content", testFile)
result := LoadConfig(testFile)
AssertEqual(result, "test content", "LoadConfig reads existing file correctly")

if FileExist(testFile)
FileDelete(testFile)
}

TestSaveConfig() {
global stdout
stdout.WriteLine("Running TestSaveConfig...")

testFile := A_ScriptDir . "\test_save_config.txt"
bakFile := testFile . ".bak"

if FileExist(testFile)
FileDelete(testFile)
if FileExist(bakFile)
FileDelete(bakFile)

; Test 1: Save new file
result := SaveConfig("content 1", testFile)
AssertEqual(result, 1, "SaveConfig returns true on success")
AssertEqual(FileRead(testFile), "content 1", "SaveConfig writes correct content")
AssertEqual(FileExist(bakFile), "", "SaveConfig does not create backup if file didn't exist")

; Test 2: Save existing file (creates backup)
result := SaveConfig("content 2", testFile)
AssertEqual(result, 1, "SaveConfig returns true on overwrite")
AssertEqual(FileRead(testFile), "content 2", "SaveConfig overwrites content")
AssertEqual(FileRead(bakFile), "content 1", "SaveConfig creates backup of previous content")

if FileExist(testFile)
FileDelete(testFile)
if FileExist(bakFile)
FileDelete(bakFile)
}

TestReplaceInFile() {
global stdout
stdout.WriteLine("Running TestReplaceInFile...")
Expand Down Expand Up @@ -63,6 +147,10 @@ TestReplaceInFile() {
FileDelete(testFile . ".bak")
}

TestRegExEscape()
TestSetKey()
TestLoadConfig()
TestSaveConfig()
TestReplaceInFile()

stdout.WriteLine("Tests Passed: " . testsPassed)
Expand Down
Loading