Index: tests/ehwa/ehwa_eclipse_3.2.1.au3 =================================================================== --- tests/ehwa/ehwa_eclipse_3.2.1.au3 (revision 547668) +++ tests/ehwa/ehwa_eclipse_3.2.1.au3 (working copy) @@ -1,444 +1,446 @@ - -; Licensed to the Apache Software Foundation (ASF) under one -; or more contributor license agreements. See the NOTICE file -; distributed with this work for additional information -; regarding copyright ownership. The ASF licenses this file -; to you under the Apache License, Version 2.0 (the -; "License"); you may not use this file except in compliance -; with the License. You may obtain a copy of the License at -; -; http://www.apache.org/licenses/LICENSE-2.0 -; -; Unless required by applicable law or agreed to in writing, -; software distributed under the License is distributed on an -; "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -; KIND, either express or implied. See the License for the -; specific language governing permissions and limitations -; under the License. - -; Set variables -Select - Case $CmdLine[0] = 4 OR $CmdLine[0] = 5 - Dim Const $eclipse_home = $CmdLine[1] - Dim Const $tested_jre = $CmdLine[2] - Dim Const $resultsDir = $CmdLine[3] - Dim Const $delay_factor = Number($CmdLine[4]) - Dim $jre_options = "" - If $CmdLine[0] = 5 Then - $jre_options = $CmdLine[5] - EndIf - If $delay_factor < 1 Then - ConsoleWrite(@LF & "ERROR: Delay factor < 1! " & @LF & "EHWA FAILED!" & @LF) - Exit(1) - EndIf - Case Else - ConsoleWrite("ERROR! Wrong number of input parameters! STOP." & @LF & "EHWA FAILED!" & @LF) - Sleep(3000) - Exit(1) -EndSelect - -; Set options -Opt("WinWaitDelay", 1000) ; wait for 1c -Opt("SendKeyDelay", 200*$delay_factor) ; wait for 150mc -Opt("WinTitleMatchMode", 4) -Opt("WinDetectHiddenText", 1) -Opt("TrayIconDebug", 1) - -LogWrite(@LF & "--- Automated Eclipse EHWA scenario for Eclipse 3.2.1 ---" & @LF & @LF) - -; Check if some Eclipse window is already olpened -Opt("WinTitleMatchMode", 2) -If WinExists("Eclipse SDK") Then - LogWrite("ERROR! Some Eclipse window is already opened. STOP." & @LF & "EHWA FAILED!" & @LF) - Sleep(3000) - Exit(1) -EndIf - -LogWrite("Eclipse Home = " & $eclipse_home & @LF) -LogWrite("Tested JRE = " & $tested_jre & @LF) -LogWrite("Tested JRE options for Eclipse launching = " & $jre_options & @LF) -LogWrite("Delay factor = " & $delay_factor & @LF) - -; Start -LogWrite(@LF & "Start:" & @LF) -LogWrite(@TAB & "Run Eclipse" & @LF) -$run = $tested_jre & "\bin\java.exe " & $jre_options & " -cp """ & $eclipse_home & "\startup.jar"" -Dosgi.install.area=""" & $eclipse_home & """ org.eclipse.core.launcher.Main -debug > " & $resultsDir & "\eclipse.log 2>&1" -Run(@ComSpec & " /c " & $run, "", @SW_HIDE) - - -; 1 -LogWrite(@TAB & "Wait Eclipse 'Workspace Launcher' window to appear " & @LF) -WinWaitImpl("Workspace Launcher", "", 180) -If Not WinActive("Workspace Launcher") Then WinActivate("Workspace Launcher") -WinWaitActiveImpl("Workspace Launcher", "", 30) -LogWrite(@TAB & "window appeared " & @LF) - -; 2 -LogWrite(@TAB & "Select " & @WorkingDir & "\workspace as workspace" & @LF) -ControlFocus("Workspace Launcher", "", "Edit1") -ControlSetText("Workspace Launcher", "", "Edit1", @WorkingDir & "\workspace" ) -LogWrite(@TAB & "Press OK button" & @LF) -ControlSend("Workspace Launcher", "", "", "{ENTER}") -WinWaitCloseImpl("Workspace Launcher", "", 60) - -; 3 -LogWrite(@TAB & "Wait 'Java - Eclipse SDK' window to appear " & @LF) -WinWaitImpl("Java - Eclipse SDK", "", 180) -If Not WinActive("Java - Eclipse SDK") Then WinActivate("Java - Eclipse SDK") -WinWaitActiveImpl("Java - Eclipse SDK", "", 30) -LogWrite(@TAB & "window appeared " & @LF) -SleepImpl(1000) -LogWrite(@TAB & "Close Welcome page " & @LF) -;Send("!wvp{ENTER}") -Send("!+{NUMPADSUB}c") -SleepImpl(3000) - -; 4 -LogWrite(@TAB & "Create new Java project" & @LF) -Send("!fnr") - -; 5 -LogWrite(@TAB & "Wait 'New Project' window to appear" & @LF) -WinWaitImpl("New Project","",60) -If Not WinActive("New Project","") Then WinActivate("New Project","") -WinWaitActiveImpl("New Project","",30) -LogWrite(@TAB & "window appeared " & @LF) -LogWrite(@TAB & "Select Java project" & @LF) -ControlFocus("New Project", "", "Edit1") -ControlSend("New Project", "", "Edit1", "{ENTER}") -LogWrite(@TAB & "Press Next button" & @LF) -ControlFocus("New Project", "&Next >", "Button2",) -ControlClick("New Project", "&Next >", "Button2") -If @error=1 Then - LogWrite(@TAB & "ERROR! Next button wasn't found. STOP." & @LF) - PrintErrorScreen() - ExitImpl(1) -EndIf -WinWaitCloseImpl("New Project", "", 60) - -; 6 -LogWrite(@TAB & "Wait 'New Java Project' window to appear " & @LF) -WinWaitImpl("New Java Project","",60) -If Not WinActive("New Java Project") Then WinActivate("New Java Project") -WinWaitActiveImpl("New Java Project","",30) -LogWrite(@TAB & "window appeared, " & @LF) -SleepImpl(1000) -LogWrite(@TAB & "Type EHWA as a project name" & @LF) -ControlFocus("New Java Project", "", "Edit2") -ControlSetText("New Java Project", "", "Edit2", "EHWA" ) -LogWrite(@TAB & "Press Finish button" & @LF) -ControlFocus("New Java Project", "&Finish", "Button27",) -ControlClick("New Java Project", "&Finish", "Button27") -If @error=1 Then - LogWrite(@TAB & "ERROR! Finish button wasn't found. STOP." & @LF) - PrintErrorScreen() - ExitImpl(1) -EndIf -LogWrite(@TAB & "Wait while project is being created ... " & @LF) -WinWaitClose("New Java Project", "", 60) -LogWrite(@TAB & "Project was created" & @LF) - -; 7 -WinWaitImpl("Java - Eclipse SDK", "", 60) -If Not WinActive("Java - Eclipse SDK", "") Then WinActivate("Java - Eclipse SDK","") -WinWaitActiveImpl("Java - Eclipse SDK", "", 30) -LogWrite(@TAB & "Create new Java class" & @LF) -$result=WinMenuSelectItem("Java - Eclipse SDK", "", "&File", "&New", "Class") -if $result=0 Then - LogWrite(@TAB & "ERROR! Menu 'File -> New -> Class' wasn't found. STOP." & @LF) - PrintErrorScreen() - ExitImpl(1) -EndIf -LogWrite(@TAB & "Wait 'New Java Class' window to appear" & @LF) -WinWaitImpl("New Java Class","",60) -If Not WinActive("New Java Class") Then WinActivate("New Java Class") -WinWaitActiveImpl("New Java Class","",30) -LogWrite(@TAB & "window appeared " & @LF) -SleepImpl(1000) - -; 8 -LogWrite(@TAB & "Type EHWA as class name" & @LF) -ControlFocus("New Java Class", "", "Edit4") -ControlSetText("New Java Class", "", "Edit4", "EHWA" ) - -;9 -LogWrite(@TAB & "Select 'public static void main(String[] args)' checkbox" & @LF) -ControlFocus("New Java Class", "", "Button15") -ControlCommand("New Java Class", "", "Button15", "Check", "") - -; 10 -LogWrite(@TAB & "Click Finish button" & @LF) -ControlFocus("New Java Class", "&Finish", "Button19") -ControlClick("New Java Class", "&Finish", "Button19") -If @error=1 Then - LogWrite(@TAB & "ERROR! Finish button wasn't found. STOP." & @LF) - PrintErrorScreen() - ExitImpl(1) -EndIf -LogWrite(@TAB & "Wait while EHWA class is being created ..." & @LF) -WinWaitClose("New Java Class", "", 60) - -; 11 -WinWaitImpl("Java - EHWA.java - Eclipse SDK","",60) -If Not WinActive("New Java Class") Then WinActivate("Java - EHWA.java - Eclipse SDK") -WinWaitActiveImpl("Java - EHWA.java - Eclipse SDK","",30) -LogWrite(@TAB & "EHWA class was successfully created" & @LF) -SleepImpl(3000) -LogWrite(@TAB & "Add System.out.println(""Hello, world!""); string in the main method of EHWA class" & @LF) -ControlFocus("Java - EHWA.java - Eclipse SDK", "", "SWT_Window039") -ControlSend("Java - EHWA.java - Eclipse SDK", "", "SWT_Window039", "{DOWN 8}{TAB}") -ControlSend("Java - EHWA.java - Eclipse SDK", "", "SWT_Window039", "System.out.println(""Hello, world{!}"");") -SleepImpl(3000) - -; 12 -WinWaitImpl("Java - EHWA.java - Eclipse SDK","",60) -If Not WinActive("Java - EHWA.java - Eclipse SDK","") Then WinActivate("Java - EHWA.java - Eclipse SDK","") -WinWaitActiveImpl("Java - EHWA.java - Eclipse SDK","",30) -LogWrite(@TAB & "Save EHWA class " & @LF) -$result=WinMenuSelectItem("Java - EHWA.java - Eclipse SDK", "", "&File", "&Save") -if $result=0 Then - LogWrite(@TAB & "ERROR! Menu 'File->Save' wasn't found. Stop." & @LF) - PrintErrorScreen() - ExitImpl(1) -EndIf -LogWrite(@TAB & "Open console" & @LF) -Send("!w") -Send("v") -Send("c") -SleepImpl(3000) - -; 13 -WinWaitImpl("Java - EHWA.java - Eclipse SDK","",60) -If Not WinActive("Java - EHWA.java - Eclipse SDK","") Then WinActivate("Java - EHWA.java - Eclipse SDK","") -WinWaitActiveImpl("Java - EHWA.java - Eclipse SDK","",30) -LogWrite(@TAB & "Run EHWA class" & @LF) -Send("!r") -Send("n") -LogWrite(@TAB & "Wait 'Run' window to appear " & @LF) -WinWaitImpl("Run","",60) -If Not WinActive("Run") Then WinActivate("Run") -WinWaitActiveImpl("Run","",30) -LogWrite(@TAB & "window appeared " & @LF) - -; 14 -LogWrite(@TAB & "Select Java application " & @LF) -ControlFocus("Run", "", "Edit1") -ControlSend("Run", "", "Edit1", "{ENTER}") -ControlFocus("Run", "", "SysTreeView321") -ControlSend("Run", "", "SysTreeView321", "{j 2}") -LogWrite(@TAB & "Create new run configuration" & @LF) -ControlSend("Run", "", "SysTreeView321", "{ENTER}") - -; 15 -WinWaitImpl("Run","",60) -If Not WinActive("Run","") Then WinActivate("Run","") -WinWaitActiveImpl("Run","",30) -LogWrite(@TAB & "Wait while EHWA run configuration is being created ..." & @LF) -$iter = 0 -While StringInStr(WinGetText("Run"), "EHWA") = 0 - $iter = $iter+1 - Sleep(500) - If $iter = 360 Then - LogWrite(@TAB & "ERROR! Can't create EHWA run configuration diring 3 min. STOP." & @LF) - PrintErrorScreen() - ExitImpl(1) - EndIf -WEnd -LogWrite(@TAB & "Run EHWA class" & @LF) -ControlFocus("Run", "&Run", "Button55") -ControlSend("Run", "&Run", "Button55", "{ENTER}") -WinWaitClose("Run", "", 60) - -; 16 -WinWaitActiveImpl("Java - EHWA.java - Eclipse SDK","",30) -LogWrite(@TAB & "Check Run result" & @LF) -$iter = 0 -While StringInStr(WinGetText("Java - EHWA.java - Eclipse SDK"), "") = 0 - $iter = $iter+1 - Sleep(500) - If $iter = 360 Then - LogWrite(@TAB & "ERROR! EHWA run didn't stop diring 3 min. STOP." & @LF) - PrintErrorScreen() - ExitImpl(1) - EndIf -WEnd -SleepImpl(3000) -If Not WinExists("Java - EHWA.java - Eclipse SDK") Then - LogWrite(@TAB & "ERROR! Window 'Java - EHWA.java - Eclipse SDK' doesn't exists. STOP." & @LF) - PrintErrorScreen() - ExitImpl(1) -EndIf - -; Exit -ExitImpl(0) - -; Auxiliary functions - -Func SleepImpl($sleep_time) - Sleep($sleep_time*$delay_factor) -EndFunc - -Func LogWrite($string) - Dim Const $logfile = $resultsDir & "\EHWA.log" - Local Const $log = FileOpen($logfile, 1) - FileWrite($logfile, $string) - FileClose($log) -EndFunc - -Func WinWaitImpl($wname, $wtext, $wdelay) - Dim $newdelay = 120 - Dim $wreturn = WinWait($wname, $wtext, $wdelay) - If $wreturn=0 Then - LogWrite(@TAB & "WARNING! Window '" & $wname & "' didn't appear during " & $wdelay & "c. Add extra delay for " & $newdelay & "c." & @LF) - $wreturn = WinWait($wname, $wtext, $newdelay) - If $wreturn=0 Then - LogWrite(@TAB & "ERROR! Window '" & $wname & "' didn't appear during additional " & $newdelay & "c. STOP." & @LF) - PrintErrorScreen() - ExitImpl(1) - Else - LogWrite(@TAB & "Window '" & $wname & "' appeared in additional time!" & @LF) - EndIf - EndIf -EndFunc - -Func WinWaitActiveImpl($wname, $wtext, $wdelay) - Dim $newdelay = 120 - Dim $wreturn = WinWaitActive($wname, $wtext, $wdelay) - If $wreturn=0 Then - LogWrite(@TAB & "WARNING! Window '" & $wname & "' didn't become active during " & $wdelay & "c. Add extra delay for " & $newdelay & "c." & @LF) - $wreturn = WinWaitActive($wname, $wtext, $newdelay) - If $wreturn=0 Then - LogWrite(@TAB & "ERROR! Window '" & $wname & "' didn't become active during additional " & $newdelay & "c. STOP." & @LF) - PrintErrorScreen() - ExitImpl(1) - Else - LogWrite(@TAB & "Window '" & $wname & "' became active in additional time!" & @LF) - EndIf - EndIf -EndFunc - -Func WinWaitCloseImpl($wname, $wtext, $wdelay) - Dim $newdelay = 120 - LogWrite(@TAB & "Closing window '" & $wname & "'" & @LF) - Dim $wreturn = WinWaitClose($wname, $wtext, $wdelay) - If $wreturn=0 Then - LogWrite(@TAB & "WARNING! Window '" & $wname & "' didn't close during " & $wdelay & "c. Add extra delay for " & $newdelay & "c." & @LF) - $wreturn = WinWaitClose($wname, $wtext, $newdelay) - If $wreturn=0 Then - LogWrite(@TAB & "ERROR! Window '" & $wname & "' didn't close during additional " & $newdelay & "c. STOP." & @LF) - PrintErrorScreen() - ExitImpl(1) - Else - LogWrite(@TAB & "Window '" & $wname & "' closed in additional time!" & @LF) - EndIf - EndIf -EndFunc - -Func ExitImpl($error_code) - Opt("WinTitleMatchMode",2) - LogWrite(@LF & "Exit Eclipse: " & @LF) - if WinExists("Eclipse SDK") Then - If Not WinActive("Eclipse SDK","") Then WinActivate("Eclipse SDK","") - $wr = WinWaitActive("Eclipse SDK", "", 30) - If $wr=1 Then - $title = WinGetTitle("Eclipse SDK") - $exit = WinMenuSelectItem($title, "", "&File", "E&xit" ) - if $exit=0 Then - LogWrite(@TAB & "Menu """ & $title & "->File->Exit"" wasn't found" & @LF) - Send("!f") - Send("x") - EndIf - WinWaitClose("Progress Information", "", 120) - $wr = WinWaitClose("Eclipse SDK", "", 60) - If $wr=1 Then - LogWrite(@TAB & "Eclipse was found and closed." & @LF) - Else - KillEclipse() - EndIf - Else - KillEclipse() - EndIf - Else - LogWrite(@TAB & "Eclipse wasn't found" & @LF) - $error_code=1 - EndIf - Sleep(5000) - If $error_code=0 Then - LogWrite(@LF & "EHWA PASSED!" & @LF) - Else - LogWrite(@LF & "EHWA FAILED!" & @LF) - EndIf - FileCopy(@WorkingDir & "/workspace/.metadata/.log", $resultsDir & "/workspace.log", 1) - Exit($error_code) -EndFunc - -Func KillEclipse() - LogWrite(@TAB & "Can't exit Eclipse! Trying to kill ..." & @LF) - WinKill("Eclipse SDK") - If Not WinExists("Eclipse SDK") Then - LogWrite(@TAB & "Eclipse window was found and killed" & @LF) - Else - $pid = WinGetProcess("Eclipse SDK") - If ProcessExists($pid) Then - ProcessClose($pid) - EndIf - Sleep(3000) - If ProcessExists($pid) Then - LogWrite(@TAB & "Can't kill Eclipse!" & @LF) - Else - LogWrite(@TAB & "Eclipse was killed!" & @LF) - EndIf - EndIf -EndFunc - -Func PrintErrorScreen() - Opt("WinTitleMatchMode", 2) - LogWrite(@LF & "An ERROR has ocurred!" & @LF) - If Not WinExists("Eclipse SDK") Then - ExitImpl(1) - EndIf - LogWrite(@LF & "Print error screen:" & @LF) - $file = FileOpen($resultsDir & "\error.bmp", 2) - FileClose($file) - Send("{PRINTSCREEN}") - LogWrite(@TAB & "Open mspaint to save errror screen" & @LF) - Run("mspaint " & $resultsDir & "\error.bmp") - LogWrite(@TAB & "Wait for 'error - Paint' window" & @LF) - $result = WinWait(" - Paint", "", 180) - If $result=0 Then - LogWrite(@TAB & "ERROR! Paint window didn't appear during 3 min. Can't save error screen." & @LF) - ExitImpl(1) - EndIf - If Not WinActive(" - Paint") Then WinActivate("- Paint") - WinWaitActive(" - Paint", "", 180) - $result = WinMenuSelectItem(" - Paint", "", "&Edit", "&Paste") - If $result = 0 Then - LogWrite(@TAB & "Mspaint menu 'Edit -> Paste' wasn't found" & @LF) - LogWrite(@TAB & "Can't save error picture!" & @LF) - ExitImpl(1) - EndIf - LogWrite(@TAB & "Save error screen" & @LF) - $result = WinMenuSelectItem(" - Paint", "", "&File", "&Save") - if $result = 0 Then - LogWrite(@TAB & "Mspaint menu 'File -> Save' wasn't found" & @LF) - LogWrite(@TAB & "Can't save error picture!" & @LF) - ExitImpl(1) - EndIf - LogWrite(@TAB & "Exit mspaint" & @LF) - $result = WinMenuSelectItem(" - Paint", "", "&File", "E&xit") - if $result = 0 Then - LogWrite(@TAB & "Mspaint menu 'File -> Exit' wasn't found" & @LF) - LogWrite(@TAB & "Can't save error picture!" & @LF) - Exitimpl(1) - EndIf - WinWaitClose(" - Paint", "", 60) - If WinExists("Eclipse SDK") Then - LogWrite(@TAB & "Switch to Eclipse" & @LF) - If Not WinActive("Eclipse SDK") Then WinActivate("Eclipse SDK") - WinWaitActive("Eclipse SDK", "", 120) - EndIf - Opt("WinTitleMatchMode", 4) -EndFunc - -; - + +; Licensed to the Apache Software Foundation (ASF) under one +; or more contributor license agreements. See the NOTICE file +; distributed with this work for additional information +; regarding copyright ownership. The ASF licenses this file +; to you under the Apache License, Version 2.0 (the +; "License"); you may not use this file except in compliance +; with the License. You may obtain a copy of the License at +; +; http://www.apache.org/licenses/LICENSE-2.0 +; +; Unless required by applicable law or agreed to in writing, +; software distributed under the License is distributed on an +; "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +; KIND, either express or implied. See the License for the +; specific language governing permissions and limitations +; under the License. + +; Set variables +Select + Case $CmdLine[0] = 4 OR $CmdLine[0] = 5 + Dim Const $eclipse_home = $CmdLine[1] + Dim Const $tested_jre = $CmdLine[2] + Dim Const $resultsDir = $CmdLine[3] + Dim Const $delay_factor = Number($CmdLine[4]) + Dim $jre_options = "" + If $CmdLine[0] = 5 Then + $jre_options = $CmdLine[5] + EndIf + If $delay_factor < 1 Then + ConsoleWrite(@LF & "ERROR: Delay factor < 1! " & @LF & "EHWA FAILED!" & @LF) + Exit(1) + EndIf + Case Else + ConsoleWrite("ERROR! Wrong number of input parameters! STOP." & @LF & "EHWA FAILED!" & @LF) + Sleep(3000) + Exit(1) +EndSelect + +; Set options +Opt("WinWaitDelay", 1000) ; wait for 1c +Opt("SendKeyDelay", 200*$delay_factor) ; wait for 150mc +Opt("WinTitleMatchMode", 4) +Opt("WinDetectHiddenText", 1) +Opt("TrayIconDebug", 1) + +LogWrite(@LF & "--- Automated Eclipse EHWA scenario for Eclipse 3.2.1 ---" & @LF & @LF) + +; Check if some Eclipse window is already olpened +Opt("WinTitleMatchMode", 2) +If WinExists("Eclipse SDK") Then + LogWrite("ERROR! Some Eclipse window is already opened. STOP." & @LF & "EHWA FAILED!" & @LF) + Sleep(3000) + Exit(1) +EndIf + +LogWrite("Eclipse Home = " & $eclipse_home & @LF) +LogWrite("Tested JRE = " & $tested_jre & @LF) +LogWrite("Tested JRE options for Eclipse launching = " & $jre_options & @LF) +LogWrite("Delay factor = " & $delay_factor & @LF) + +; Start +LogWrite(@LF & "Start:" & @LF) +LogWrite(@TAB & "Run Eclipse" & @LF) +$run = $tested_jre & "\bin\java.exe " & $jre_options & " -cp """ & $eclipse_home & "\startup.jar"" -Dosgi.install.area=""" & $eclipse_home & """ org.eclipse.core.launcher.Main -debug > " & $resultsDir & "\eclipse.log 2>&1" +Run(@ComSpec & " /c " & $run, "", @SW_HIDE) + + +; 1 +LogWrite(@TAB & "Wait Eclipse 'Workspace Launcher' window to appear " & @LF) +WinWaitImpl("Workspace Launcher", "", 180) +If Not WinActive("Workspace Launcher") Then WinActivate("Workspace Launcher") +WinWaitActiveImpl("Workspace Launcher", "", 30) +LogWrite(@TAB & "window appeared " & @LF) + +; 2 +LogWrite(@TAB & "Select " & @WorkingDir & "\workspace as workspace" & @LF) +ControlFocus("Workspace Launcher", "", "Edit1") +ControlSetText("Workspace Launcher", "", "Edit1", @WorkingDir & "\workspace" ) +LogWrite(@TAB & "Press OK button" & @LF) +ControlSend("Workspace Launcher", "", "", "{ENTER}") +WinWaitCloseImpl("Workspace Launcher", "", 60) + +; 3 +LogWrite(@TAB & "Wait 'Java - Eclipse SDK' window to appear " & @LF) +WinWaitImpl("Java - Eclipse SDK", "", 180) +If Not WinActive("Java - Eclipse SDK") Then WinActivate("Java - Eclipse SDK") +WinWaitActiveImpl("Java - Eclipse SDK", "", 30) +LogWrite(@TAB & "window appeared " & @LF) +SleepImpl(1000) +LogWrite(@TAB & "Close Welcome page " & @LF) +;Send("!wvp{ENTER}") +Send("!+{NUMPADSUB}c") +SleepImpl(3000) + +; 4 +LogWrite(@TAB & "Create new Java project" & @LF) +Send("!fnr") + +; 5 +LogWrite(@TAB & "Wait 'New Project' window to appear" & @LF) +WinWaitImpl("New Project","",60) +If Not WinActive("New Project","") Then WinActivate("New Project","") +WinWaitActiveImpl("New Project","",30) +LogWrite(@TAB & "window appeared " & @LF) +LogWrite(@TAB & "Select Java project" & @LF) +ControlFocus("New Project", "", "Edit1") +ControlSend("New Project", "", "Edit1", "{ENTER}") +LogWrite(@TAB & "Press Next button" & @LF) +ControlFocus("New Project", "&Next >", "Button2",) +ControlClick("New Project", "&Next >", "Button2") +If @error=1 Then + LogWrite(@TAB & "ERROR! Next button wasn't found. STOP." & @LF) + PrintErrorScreen() + ExitImpl(1) +EndIf +WinWaitCloseImpl("New Project", "", 60) + +; 6 +LogWrite(@TAB & "Wait 'New Java Project' window to appear " & @LF) +WinWaitImpl("New Java Project","",60) +If Not WinActive("New Java Project") Then WinActivate("New Java Project") +WinWaitActiveImpl("New Java Project","",30) +LogWrite(@TAB & "window appeared, " & @LF) +SleepImpl(1000) +LogWrite(@TAB & "Type EHWA as a project name" & @LF) +ControlFocus("New Java Project", "", "Edit2") +ControlSetText("New Java Project", "", "Edit2", "EHWA" ) +LogWrite(@TAB & "Press Finish button" & @LF) +ControlFocus("New Java Project", "&Finish", "Button27",) +ControlClick("New Java Project", "&Finish", "Button27") +If @error=1 Then + LogWrite(@TAB & "ERROR! Finish button wasn't found. STOP." & @LF) + PrintErrorScreen() + ExitImpl(1) +EndIf +LogWrite(@TAB & "Wait while project is being created ... " & @LF) +WinWaitClose("New Java Project", "", 60) +LogWrite(@TAB & "Project was created" & @LF) + +; 7 +WinWaitImpl("Java - Eclipse SDK", "", 60) +If Not WinActive("Java - Eclipse SDK", "") Then WinActivate("Java - Eclipse SDK","") +WinWaitActiveImpl("Java - Eclipse SDK", "", 30) +LogWrite(@TAB & "Create new Java class" & @LF) +$result=WinMenuSelectItem("Java - Eclipse SDK", "", "&File", "&New", "Class") +if $result=0 Then + LogWrite(@TAB & "ERROR! Menu 'File -> New -> Class' wasn't found. STOP." & @LF) + PrintErrorScreen() + ExitImpl(1) +EndIf +LogWrite(@TAB & "Wait 'New Java Class' window to appear" & @LF) +WinWaitImpl("New Java Class","",60) +If Not WinActive("New Java Class") Then WinActivate("New Java Class") +WinWaitActiveImpl("New Java Class","",30) +LogWrite(@TAB & "window appeared " & @LF) +SleepImpl(1000) + +; 8 +LogWrite(@TAB & "Type EHWA as class name" & @LF) +ControlFocus("New Java Class", "", "Edit4") +ControlSetText("New Java Class", "", "Edit4", "EHWA" ) + +;9 +LogWrite(@TAB & "Select 'public static void main(String[] args)' checkbox" & @LF) +ControlFocus("New Java Class", "", "Button15") +ControlCommand("New Java Class", "", "Button15", "Check", "") + +; 10 +LogWrite(@TAB & "Click Finish button" & @LF) +ControlFocus("New Java Class", "&Finish", "Button19") +ControlClick("New Java Class", "&Finish", "Button19") +If @error=1 Then + LogWrite(@TAB & "ERROR! Finish button wasn't found. STOP." & @LF) + PrintErrorScreen() + ExitImpl(1) +EndIf +LogWrite(@TAB & "Wait while EHWA class is being created ..." & @LF) +WinWaitClose("New Java Class", "", 60) + +; 11 +WinWaitImpl("Java - EHWA.java - Eclipse SDK","",60) +If Not WinActive("New Java Class") Then WinActivate("Java - EHWA.java - Eclipse SDK") +WinWaitActiveImpl("Java - EHWA.java - Eclipse SDK","",30) +LogWrite(@TAB & "EHWA class was successfully created" & @LF) +SleepImpl(3000) +LogWrite(@TAB & "Add System.out.println(""Hello, world!""); string in the main method of EHWA class" & @LF) +WinWaitImpl("Java - EHWA.java - Eclipse SDK","",60) +If Not WinActive("Java - EHWA.java - Eclipse SDK","") Then WinActivate("Java - EHWA.java - Eclipse SDK","") +WinWaitActiveImpl("Java - EHWA.java - Eclipse SDK","",30) +Send("{DOWN 8}{TAB}") +Send("System.out.println(""Hello, world{!}"");") +SleepImpl(3000) + +; 12 +WinWaitImpl("Java - EHWA.java - Eclipse SDK","",60) +If Not WinActive("Java - EHWA.java - Eclipse SDK","") Then WinActivate("Java - EHWA.java - Eclipse SDK","") +WinWaitActiveImpl("Java - EHWA.java - Eclipse SDK","",30) +LogWrite(@TAB & "Save EHWA class " & @LF) +$result=WinMenuSelectItem("Java - EHWA.java - Eclipse SDK", "", "&File", "&Save") +if $result=0 Then + LogWrite(@TAB & "ERROR! Menu 'File->Save' wasn't found. Stop." & @LF) + PrintErrorScreen() + ExitImpl(1) +EndIf +LogWrite(@TAB & "Open console" & @LF) +Send("!w") +Send("v") +Send("c") +SleepImpl(3000) + +; 13 +WinWaitImpl("Java - EHWA.java - Eclipse SDK","",60) +If Not WinActive("Java - EHWA.java - Eclipse SDK","") Then WinActivate("Java - EHWA.java - Eclipse SDK","") +WinWaitActiveImpl("Java - EHWA.java - Eclipse SDK","",30) +LogWrite(@TAB & "Run EHWA class" & @LF) +Send("!r") +Send("n") +LogWrite(@TAB & "Wait 'Run' window to appear " & @LF) +WinWaitImpl("Run","",60) +If Not WinActive("Run") Then WinActivate("Run") +WinWaitActiveImpl("Run","",30) +LogWrite(@TAB & "window appeared " & @LF) + +; 14 +LogWrite(@TAB & "Select Java application " & @LF) +ControlFocus("Run", "", "Edit1") +ControlSend("Run", "", "Edit1", "{ENTER}") +ControlFocus("Run", "", "SysTreeView321") +ControlSend("Run", "", "SysTreeView321", "{j 2}") +LogWrite(@TAB & "Create new run configuration" & @LF) +ControlSend("Run", "", "SysTreeView321", "{ENTER}") + +; 15 +WinWaitImpl("Run","",60) +If Not WinActive("Run","") Then WinActivate("Run","") +WinWaitActiveImpl("Run","",30) +LogWrite(@TAB & "Wait while EHWA run configuration is being created ..." & @LF) +$iter = 0 +While StringInStr(WinGetText("Run"), "EHWA") = 0 + $iter = $iter+1 + Sleep(500) + If $iter = 360 Then + LogWrite(@TAB & "ERROR! Can't create EHWA run configuration diring 3 min. STOP." & @LF) + PrintErrorScreen() + ExitImpl(1) + EndIf +WEnd +LogWrite(@TAB & "Run EHWA class" & @LF) +ControlFocus("Run", "&Run", "Button55") +ControlSend("Run", "&Run", "Button55", "{ENTER}") +WinWaitClose("Run", "", 60) + +; 16 +WinWaitActiveImpl("Java - EHWA.java - Eclipse SDK","",30) +LogWrite(@TAB & "Check Run result" & @LF) +$iter = 0 +While StringInStr(WinGetText("Java - EHWA.java - Eclipse SDK"), "") = 0 + $iter = $iter+1 + Sleep(500) + If $iter = 360 Then + LogWrite(@TAB & "ERROR! EHWA run didn't stop diring 3 min. STOP." & @LF) + PrintErrorScreen() + ExitImpl(1) + EndIf +WEnd +SleepImpl(3000) +If Not WinExists("Java - EHWA.java - Eclipse SDK") Then + LogWrite(@TAB & "ERROR! Window 'Java - EHWA.java - Eclipse SDK' doesn't exists. STOP." & @LF) + PrintErrorScreen() + ExitImpl(1) +EndIf + +; Exit +ExitImpl(0) + +; Auxiliary functions + +Func SleepImpl($sleep_time) + Sleep($sleep_time*$delay_factor) +EndFunc + +Func LogWrite($string) + Dim Const $logfile = $resultsDir & "\EHWA.log" + Local Const $log = FileOpen($logfile, 1) + FileWrite($logfile, $string) + FileClose($log) +EndFunc + +Func WinWaitImpl($wname, $wtext, $wdelay) + Dim $newdelay = 120 + Dim $wreturn = WinWait($wname, $wtext, $wdelay) + If $wreturn=0 Then + LogWrite(@TAB & "WARNING! Window '" & $wname & "' didn't appear during " & $wdelay & "c. Add extra delay for " & $newdelay & "c." & @LF) + $wreturn = WinWait($wname, $wtext, $newdelay) + If $wreturn=0 Then + LogWrite(@TAB & "ERROR! Window '" & $wname & "' didn't appear during additional " & $newdelay & "c. STOP." & @LF) + PrintErrorScreen() + ExitImpl(1) + Else + LogWrite(@TAB & "Window '" & $wname & "' appeared in additional time!" & @LF) + EndIf + EndIf +EndFunc + +Func WinWaitActiveImpl($wname, $wtext, $wdelay) + Dim $newdelay = 120 + Dim $wreturn = WinWaitActive($wname, $wtext, $wdelay) + If $wreturn=0 Then + LogWrite(@TAB & "WARNING! Window '" & $wname & "' didn't become active during " & $wdelay & "c. Add extra delay for " & $newdelay & "c." & @LF) + $wreturn = WinWaitActive($wname, $wtext, $newdelay) + If $wreturn=0 Then + LogWrite(@TAB & "ERROR! Window '" & $wname & "' didn't become active during additional " & $newdelay & "c. STOP." & @LF) + PrintErrorScreen() + ExitImpl(1) + Else + LogWrite(@TAB & "Window '" & $wname & "' became active in additional time!" & @LF) + EndIf + EndIf +EndFunc + +Func WinWaitCloseImpl($wname, $wtext, $wdelay) + Dim $newdelay = 120 + LogWrite(@TAB & "Closing window '" & $wname & "'" & @LF) + Dim $wreturn = WinWaitClose($wname, $wtext, $wdelay) + If $wreturn=0 Then + LogWrite(@TAB & "WARNING! Window '" & $wname & "' didn't close during " & $wdelay & "c. Add extra delay for " & $newdelay & "c." & @LF) + $wreturn = WinWaitClose($wname, $wtext, $newdelay) + If $wreturn=0 Then + LogWrite(@TAB & "ERROR! Window '" & $wname & "' didn't close during additional " & $newdelay & "c. STOP." & @LF) + PrintErrorScreen() + ExitImpl(1) + Else + LogWrite(@TAB & "Window '" & $wname & "' closed in additional time!" & @LF) + EndIf + EndIf +EndFunc + +Func ExitImpl($error_code) + Opt("WinTitleMatchMode",2) + LogWrite(@LF & "Exit Eclipse: " & @LF) + if WinExists("Eclipse SDK") Then + If Not WinActive("Eclipse SDK","") Then WinActivate("Eclipse SDK","") + $wr = WinWaitActive("Eclipse SDK", "", 30) + If $wr=1 Then + $title = WinGetTitle("Eclipse SDK") + $exit = WinMenuSelectItem($title, "", "&File", "E&xit" ) + if $exit=0 Then + LogWrite(@TAB & "Menu """ & $title & "->File->Exit"" wasn't found" & @LF) + Send("!f") + Send("x") + EndIf + WinWaitClose("Progress Information", "", 120) + $wr = WinWaitClose("Eclipse SDK", "", 60) + If $wr=1 Then + LogWrite(@TAB & "Eclipse was found and closed." & @LF) + Else + KillEclipse() + EndIf + Else + KillEclipse() + EndIf + Else + LogWrite(@TAB & "Eclipse wasn't found" & @LF) + $error_code=1 + EndIf + Sleep(5000) + If $error_code=0 Then + LogWrite(@LF & "EHWA PASSED!" & @LF) + Else + LogWrite(@LF & "EHWA FAILED!" & @LF) + EndIf + FileCopy(@WorkingDir & "/workspace/.metadata/.log", $resultsDir & "/workspace.log", 1) + Exit($error_code) +EndFunc + +Func KillEclipse() + LogWrite(@TAB & "Can't exit Eclipse! Trying to kill ..." & @LF) + WinKill("Eclipse SDK") + If Not WinExists("Eclipse SDK") Then + LogWrite(@TAB & "Eclipse window was found and killed" & @LF) + Else + $pid = WinGetProcess("Eclipse SDK") + If ProcessExists($pid) Then + ProcessClose($pid) + EndIf + Sleep(3000) + If ProcessExists($pid) Then + LogWrite(@TAB & "Can't kill Eclipse!" & @LF) + Else + LogWrite(@TAB & "Eclipse was killed!" & @LF) + EndIf + EndIf +EndFunc + +Func PrintErrorScreen() + Opt("WinTitleMatchMode", 2) + LogWrite(@LF & "An ERROR has ocurred!" & @LF) + If Not WinExists("Eclipse SDK") Then + ExitImpl(1) + EndIf + LogWrite(@LF & "Print error screen:" & @LF) + $file = FileOpen($resultsDir & "\error.bmp", 2) + FileClose($file) + Send("{PRINTSCREEN}") + LogWrite(@TAB & "Open mspaint to save errror screen" & @LF) + Run("mspaint " & $resultsDir & "\error.bmp") + LogWrite(@TAB & "Wait for 'error - Paint' window" & @LF) + $result = WinWait(" - Paint", "", 180) + If $result=0 Then + LogWrite(@TAB & "ERROR! Paint window didn't appear during 3 min. Can't save error screen." & @LF) + ExitImpl(1) + EndIf + If Not WinActive(" - Paint") Then WinActivate("- Paint") + WinWaitActive(" - Paint", "", 180) + $result = WinMenuSelectItem(" - Paint", "", "&Edit", "&Paste") + If $result = 0 Then + LogWrite(@TAB & "Mspaint menu 'Edit -> Paste' wasn't found" & @LF) + LogWrite(@TAB & "Can't save error picture!" & @LF) + ExitImpl(1) + EndIf + LogWrite(@TAB & "Save error screen" & @LF) + $result = WinMenuSelectItem(" - Paint", "", "&File", "&Save") + if $result = 0 Then + LogWrite(@TAB & "Mspaint menu 'File -> Save' wasn't found" & @LF) + LogWrite(@TAB & "Can't save error picture!" & @LF) + ExitImpl(1) + EndIf + LogWrite(@TAB & "Exit mspaint" & @LF) + $result = WinMenuSelectItem(" - Paint", "", "&File", "E&xit") + if $result = 0 Then + LogWrite(@TAB & "Mspaint menu 'File -> Exit' wasn't found" & @LF) + LogWrite(@TAB & "Can't save error picture!" & @LF) + Exitimpl(1) + EndIf + WinWaitClose(" - Paint", "", 60) + If WinExists("Eclipse SDK") Then + LogWrite(@TAB & "Switch to Eclipse" & @LF) + If Not WinActive("Eclipse SDK") Then WinActivate("Eclipse SDK") + WinWaitActive("Eclipse SDK", "", 120) + EndIf + Opt("WinTitleMatchMode", 4) +EndFunc + +; +