work in progress
This commit is contained in:
194
designer/test/test_navigation.ahk
Normal file
194
designer/test/test_navigation.ahk
Normal file
@@ -0,0 +1,194 @@
|
||||
; Mosis Designer Navigation Test
|
||||
; AutoHotkey v2
|
||||
; Tests: Click on app icons and verify navigation occurs
|
||||
|
||||
#Requires AutoHotkey v2.0
|
||||
#Include "lib\utils.ahk"
|
||||
|
||||
; Test configuration
|
||||
testsPassed := 0
|
||||
testsFailed := 0
|
||||
|
||||
; Main test function
|
||||
RunNavigationTests() {
|
||||
global testsPassed, testsFailed
|
||||
|
||||
LogMessage("========================================")
|
||||
LogMessage("Starting Navigation Tests")
|
||||
LogMessage("========================================")
|
||||
|
||||
; Clean up any previous runs
|
||||
KillDesigner()
|
||||
ClearLogs()
|
||||
|
||||
; Start the designer
|
||||
pid := StartDesigner()
|
||||
if (!pid) {
|
||||
LogMessage("FATAL: Could not start designer")
|
||||
return false
|
||||
}
|
||||
|
||||
; Wait for window to appear
|
||||
LogMessage("Waiting for designer window...")
|
||||
hwnd := WaitForDesignerWindow()
|
||||
if (!hwnd) {
|
||||
LogMessage("FATAL: Designer window did not appear")
|
||||
KillDesigner()
|
||||
return false
|
||||
}
|
||||
LogMessage("Designer window found: " . hwnd)
|
||||
|
||||
; Wait for document to load
|
||||
Sleep(2000) ; Give time for initial document load
|
||||
|
||||
; Check log for successful load
|
||||
if (!WaitForLog("Document loaded successfully", 5000)) {
|
||||
LogMessage("WARNING: Did not detect document load confirmation")
|
||||
}
|
||||
|
||||
; Run individual tests
|
||||
TestClickDialer(hwnd)
|
||||
TestClickMessages(hwnd)
|
||||
TestClickContacts(hwnd)
|
||||
TestClickSettings(hwnd)
|
||||
|
||||
; Clean up
|
||||
LogMessage("Closing designer...")
|
||||
CloseDesigner(hwnd)
|
||||
Sleep(500)
|
||||
|
||||
; Report results
|
||||
LogMessage("========================================")
|
||||
LogMessage("Navigation Tests Complete")
|
||||
LogMessage("Passed: " . testsPassed)
|
||||
LogMessage("Failed: " . testsFailed)
|
||||
LogMessage("========================================")
|
||||
|
||||
return (testsFailed = 0)
|
||||
}
|
||||
|
||||
; Test: Click on Phone/Dialer app
|
||||
TestClickDialer(hwnd) {
|
||||
global testsPassed, testsFailed
|
||||
|
||||
LogMessage("--- Test: Click Dialer ---")
|
||||
|
||||
; First go home to ensure clean state
|
||||
; (In future, could send Home key)
|
||||
Sleep(500)
|
||||
|
||||
; Click the phone app
|
||||
if (!ClickApp("phone", hwnd)) {
|
||||
testsFailed++
|
||||
return
|
||||
}
|
||||
|
||||
Sleep(1000)
|
||||
|
||||
; Check log for navigation
|
||||
; Note: The log might say "dialer" because that's the screen name
|
||||
result := CheckLogFor("Navigated to: dialer")
|
||||
if (result) {
|
||||
LogMessage("Navigation confirmed: " . result)
|
||||
testsPassed++
|
||||
} else {
|
||||
; Also check if screen was loaded
|
||||
result := CheckLogFor("Loaded screen: apps/dialer")
|
||||
if (result) {
|
||||
LogMessage("Screen load confirmed: " . result)
|
||||
testsPassed++
|
||||
} else {
|
||||
LogMessage("Navigation not detected in log")
|
||||
testsFailed++
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
; Test: Click on Messages app
|
||||
TestClickMessages(hwnd) {
|
||||
global testsPassed, testsFailed
|
||||
|
||||
LogMessage("--- Test: Click Messages ---")
|
||||
|
||||
; We're likely on dialer now, need to go back first
|
||||
; For now, just click messages dock item
|
||||
Sleep(500)
|
||||
|
||||
if (!ClickDock("messages", hwnd)) {
|
||||
testsFailed++
|
||||
return
|
||||
}
|
||||
|
||||
Sleep(1000)
|
||||
|
||||
result := CheckLogFor("Loaded screen: apps/messages")
|
||||
if (result) {
|
||||
LogMessage("Screen load confirmed: " . result)
|
||||
testsPassed++
|
||||
} else {
|
||||
LogMessage("Navigation not detected in log")
|
||||
testsFailed++
|
||||
}
|
||||
}
|
||||
|
||||
; Test: Click on Contacts app
|
||||
TestClickContacts(hwnd) {
|
||||
global testsPassed, testsFailed
|
||||
|
||||
LogMessage("--- Test: Click Contacts ---")
|
||||
Sleep(500)
|
||||
|
||||
if (!ClickDock("contacts", hwnd)) {
|
||||
testsFailed++
|
||||
return
|
||||
}
|
||||
|
||||
Sleep(1000)
|
||||
|
||||
result := CheckLogFor("Loaded screen: apps/contacts")
|
||||
if (result) {
|
||||
LogMessage("Screen load confirmed: " . result)
|
||||
testsPassed++
|
||||
} else {
|
||||
LogMessage("Navigation not detected in log")
|
||||
testsFailed++
|
||||
}
|
||||
}
|
||||
|
||||
; Test: Click on Settings app
|
||||
TestClickSettings(hwnd) {
|
||||
global testsPassed, testsFailed
|
||||
|
||||
LogMessage("--- Test: Click Settings ---")
|
||||
Sleep(500)
|
||||
|
||||
; Settings is on the main grid, not dock
|
||||
; But we're on contacts now, so we need to navigate
|
||||
; For this test, we'll just verify the click mechanics work
|
||||
|
||||
if (!ClickApp("settings", hwnd)) {
|
||||
; This will likely fail since we're not on home screen
|
||||
; But let's see what happens
|
||||
LogMessage("Click attempted (may fail if not on home)")
|
||||
testsFailed++
|
||||
return
|
||||
}
|
||||
|
||||
Sleep(1000)
|
||||
|
||||
result := CheckLogFor("Loaded screen: apps/settings")
|
||||
if (result) {
|
||||
LogMessage("Screen load confirmed: " . result)
|
||||
testsPassed++
|
||||
} else {
|
||||
LogMessage("Navigation not detected (expected if not on home screen)")
|
||||
testsFailed++
|
||||
}
|
||||
}
|
||||
|
||||
; Run the tests
|
||||
RunNavigationTests()
|
||||
|
||||
; Keep script alive briefly for logging
|
||||
Sleep(1000)
|
||||
ExitApp()
|
||||
Reference in New Issue
Block a user