mirror of
https://github.com/rizonesoft/Notepad3.git
synced 2026-06-14 21:09:05 +08:00
147 lines
4.4 KiB
AutoHotkey
147 lines
4.4 KiB
AutoHotkey
; =============================================================================
|
|
; Regression Tests Notepad3 Gui
|
|
; Needs files in a Test Directory:
|
|
; Notepad3.exe and Notepad3.ini (from distrib)
|
|
; Execute: AutoHotkeyU32.exe "TestAhkNotepad3.ahk"
|
|
; =============================================================================
|
|
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
|
|
; #Warn ; Enable warnings to assist with detecting common errors.
|
|
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
|
|
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
|
|
SetBatchLines, -1
|
|
StringCaseSense, Off
|
|
CoordMode, Pixel, Screen
|
|
; =============================================================================
|
|
|
|
v_NP3Name = Notepad3
|
|
v_NP3TestDir = %A_WorkingDir%\_TESTDIR
|
|
v_NP3IniFile = %v_NP3Name%.ini
|
|
|
|
stdout := FileOpen("*", "w")
|
|
v_ExitCode := 0
|
|
|
|
; =============================================================================
|
|
|
|
stdout.WriteLine("Run " . v_NP3Name . ": " . v_NP3TestDir . "\" . v_NP3Name . ".exe '" . v_NP3TestDir . "\" . v_NP3IniFile . ".")
|
|
|
|
Run, %v_NP3TestDir%\%v_NP3Name%.exe "%v_NP3TestDir%\%v_NP3IniFile%", , UseErrorLevel, v_Notepad3_PID
|
|
v_ErrLevel = %ErrorLevel%
|
|
|
|
if (v_ErrLevel != 0)
|
|
{
|
|
stdout.WriteLine("*** ERROR: " . v_NP3Name . "could not be launched.")
|
|
v_ExitCode := 1
|
|
Goto LABEL_END
|
|
}
|
|
; -----------------------------------------------------------------------------
|
|
|
|
GoSub CHECK_NP3_STARTS
|
|
Sleep, 1000
|
|
GoSub CHECK_WIN_TITLE
|
|
Sleep, 1000
|
|
GoSub CHECK_ABOUT_BOX
|
|
|
|
|
|
Goto LABEL_END
|
|
; =============================================================================
|
|
|
|
; =============================================================================
|
|
CHECK_NP3_STARTS:
|
|
; check that NP3 starts up
|
|
WinWait ahk_pid %v_Notepad3_PID%, , 10
|
|
v_ErrLevel = %ErrorLevel%
|
|
if (v_ErrLevel != 0)
|
|
{
|
|
stdout.WriteLine("*** ERROR: " . v_NP3Name . "'s seems not to start in time ???")
|
|
v_ExitCode := 2
|
|
Goto LABEL_END
|
|
}
|
|
Return
|
|
; =============================================================================
|
|
|
|
; =============================================================================
|
|
CHECK_WIN_TITLE:
|
|
; check Main Window Title
|
|
WinGetTitle, v_NP3Title, ahk_pid %v_Notepad3_PID%
|
|
stdout.WriteLine(v_NP3Name . "'s Title is: " . v_NP3Title)
|
|
|
|
IfNotInString, v_NP3Title, %v_NP3Name%
|
|
{
|
|
v_ExitCode := 3
|
|
stdout.WriteLine("*** ERROR: " . v_NP3Name . " missing in Title: ")
|
|
}
|
|
IfNotInString, v_NP3Title, %v_NP3IniFile%
|
|
{
|
|
v_ExitCode := 3
|
|
stdout.WriteLine("*** ERROR: " . v_NP3IniFile . " missing in Title: ")
|
|
}
|
|
IfNotInString, v_NP3Title, %v_NP3TestDir%
|
|
{
|
|
v_ExitCode := 3
|
|
stdout.WriteLine("*** ERROR: " . v_NP3TestDir . " missing in Title: ")
|
|
}
|
|
If (v_ExitCode != 0)
|
|
{
|
|
Goto LABEL_END
|
|
}
|
|
Return
|
|
; =============================================================================
|
|
|
|
; =============================================================================
|
|
CHECK_ABOUT_BOX:
|
|
; check About DlgBox
|
|
WinActivate, ahk_pid %v_Notepad3_PID%
|
|
|
|
; This will select File->Open in Notepad:
|
|
WinMenuSelectItem, ahk_pid %v_Notepad3_PID%, , Help, About...
|
|
|
|
WinWait, About %v_NP3Name%, , 3
|
|
v_ErrLevel = %ErrorLevel%
|
|
if (v_ErrLevel != 0)
|
|
{
|
|
v_ExitCode := 4
|
|
stdout.WriteLine("*** ERROR: " . v_NP3Name . "'s About Box is not displayed!")
|
|
Goto LABEL_END
|
|
}
|
|
WinActivate ; About Box
|
|
;ControlFocus, OK, About %v_NP3Name%
|
|
ControlClick, OK, About %v_NP3Name%
|
|
;Send {Enter}
|
|
WinWaitClose, About %v_NP3Name%, , 2
|
|
v_ErrLevel = %ErrorLevel%
|
|
if (v_ErrLevel != 0)
|
|
{
|
|
v_ExitCode := 5
|
|
stdout.WriteLine("*** ERROR: " . v_NP3Name . "'s About Box can not be closed!")
|
|
Goto LABEL_END
|
|
}
|
|
Return
|
|
; =============================================================================
|
|
|
|
; =============================================================================
|
|
LABEL_END:
|
|
WinClose ahk_pid %v_Notepad3_PID%, , 2
|
|
v_ErrLevel = %ErrorLevel%
|
|
if (v_ErrLevel != 0)
|
|
{
|
|
v_ExitCode := 99
|
|
stdout.WriteLine("*** ERROR: " . v_NP3Name . "can not be closed!")
|
|
}
|
|
; -------------------------------------
|
|
WinWaitClose ahk_pid %v_Notepad3_PID%
|
|
v_ErrLevel = %ErrorLevel%
|
|
if (v_ErrLevel != 0)
|
|
{
|
|
v_ExitCode := 111
|
|
; FORCED Kill / HANGUP
|
|
}
|
|
; -------------------------------------
|
|
if (v_ExitCode != 0)
|
|
{
|
|
stdout.WriteLine("*** ERROR: Testing " . v_NP3Name . " exit with: " . v_ExitCode)
|
|
ExitApp, %v_ExitCode%
|
|
}
|
|
stdout.WriteLine("Testing " . v_NP3Name . ": All tests PASSED.")
|
|
ExitApp, 0
|
|
; =============================================================================
|