/*
* This file is part of LCMC written by Rasto Levrinc.
*
* Copyright (C) 2013, Rastislav Levrinc.
*
* The LCMC is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published
* by the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* The LCMC is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with LCMC; see the file COPYING. If not, write to
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
*/
package lcmc.robotest;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import lcmc.Exceptions;
import lcmc.cluster.domain.Cluster;
import lcmc.cluster.ui.widget.GenericWidget.MTextField;
import lcmc.cluster.ui.widget.MComboBox;
import static lcmc.robotest.RoboTest.CONFIRM_REMOVE;
import lcmc.logger.Logger;
import lcmc.logger.LoggerFactory;
import lcmc.common.domain.util.Tools;
import javax.inject.Inject;
import javax.inject.Named;
import javax.inject.Singleton;
/**
* This class is used to test the GUI.
*/
@Named
@Singleton
final class PcmkTest1 {
@Inject
private RoboTest roboTest;
private static final Logger LOG = LoggerFactory.getLogger(PcmkTest1.class);
void start(final Cluster cluster) {
roboTest.setSlowFactor(0.4f);
roboTest.setAborted(false);
/* create IPaddr2 with 192.168.100.100 ip */
String testName = "test1";
final String pmV = cluster.getHostsArray()[0].getHostParser().getPacemakerVersion();
try {
if (pmV != null && Tools.compareVersions(pmV, "1.1.6") < 0) {
testName = "test1-1.0";
}
} catch (final Exceptions.IllegalVersionException e) {
LOG.appWarning("start: " + e.getMessage(), e);
}
roboTest.disableStonith();
roboTest.checkTest(testName, 1);
roboTest.enableStonith();
roboTest.checkTest(testName, 1.1);
roboTest.disableStonith();
roboTest.checkTest(testName, 1);
final int ipX = 235;
final int ipY = 207;
roboTest.moveTo(ipX, ipY + 200);
roboTest.rightClick(); /* popup */
roboTest.moveTo(Tools.getString("ClusterBrowser.Hb.AddService"));
roboTest.moveTo("Filesystem + Linbit:DRBD");
roboTest.moveTo("OCF Resource Agents");
roboTest.press(KeyEvent.VK_D);
roboTest.press(KeyEvent.VK_R);
roboTest.press(KeyEvent.VK_B);
roboTest.press(KeyEvent.VK_D);
roboTest.press(KeyEvent.VK_ENTER);
roboTest.removeResource(ipX, ipY + 200, !CONFIRM_REMOVE);
roboTest.moveTo(ipX, ipY + 200);
roboTest.rightClick(); /* popup */
roboTest.moveTo(Tools.getString("ClusterBrowser.Hb.AddService"));
roboTest.moveTo("Filesystem + Linbit:DRBD");
roboTest.moveTo("IPaddr2");
roboTest.leftClick();
roboTest.moveTo(ipX, ipY);
roboTest.rightClick(); /* popup */
roboTest.moveTo(Tools.getString("ClusterBrowser.Hb.AddService"));
roboTest.moveTo("Filesystem + Linbit:DRBD");
roboTest.moveTo("IPaddr2");
roboTest.leftClick();
final float savedSlowFactor = roboTest.getSlowFactor();
roboTest.setSlowFactor(0.00001f);
for (final Integer pos1 : new Integer[]{850, 900, 1000}) {
for (final Integer pos2 : new Integer[]{850, 900, 1000}) {
if (pos1 == pos2) {
continue;
}
for (int i = 0; i < 70; i++) {
roboTest.moveTo(pos1, RoboTest.CLONE_RADIO_Y);
roboTest.getRobot().mousePress(InputEvent.BUTTON1_MASK);
Tools.sleep(20);
roboTest.getRobot().mouseRelease(InputEvent.BUTTON1_MASK);
roboTest.moveTo(pos2, RoboTest.CLONE_RADIO_Y);
roboTest.getRobot().mousePress(InputEvent.BUTTON1_MASK);
Tools.sleep(20);
roboTest.getRobot().mouseRelease(InputEvent.BUTTON1_MASK);
}
}
}
roboTest.setSlowFactor(savedSlowFactor);
roboTest.removeResource(ipX, ipY + 200, !RoboTest.CONFIRM_REMOVE);
roboTest.removeResource(ipX, ipY, !RoboTest.CONFIRM_REMOVE);
/* again */
roboTest.moveTo(ipX, ipY);
roboTest.rightClick(); /* popup */
roboTest.moveTo(Tools.getString("ClusterBrowser.Hb.AddService"));
roboTest.moveTo("Filesystem + Linbit:DRBD");
roboTest.moveTo("IPaddr2");
roboTest.leftClick();
roboTest.moveTo("IPv4 ", MComboBox.class);
roboTest.leftClick();
roboTest.press(KeyEvent.VK_DOWN);
roboTest.press(KeyEvent.VK_DOWN);
roboTest.press(KeyEvent.VK_ENTER);
roboTest.press(KeyEvent.VK_1);
roboTest.press(KeyEvent.VK_0);
roboTest.press(KeyEvent.VK_0);
roboTest.setTimeouts(false);
roboTest.moveTo(Tools.getString("Browser.ApplyResource"));
roboTest.leftClick(); /* apply */
/* CIDR netmask 24 */
roboTest.moveTo("CIDR netmask", MTextField.class); /* CIDR */
roboTest.leftClick();
roboTest.press(KeyEvent.VK_2);
roboTest.press(KeyEvent.VK_4);
roboTest.moveTo(Tools.getString("Browser.ApplyResource"));
roboTest.leftClick(); /* apply */
roboTest.checkTest(testName, 2); /* 2 */
/* pingd */
roboTest.moveScrollBar(true);
roboTest.moveTo("pingd", MComboBox.class);
roboTest.leftClick();
roboTest.press(KeyEvent.VK_DOWN); /* no ping */
roboTest.press(KeyEvent.VK_DOWN); /* no ping */
roboTest.press(KeyEvent.VK_ENTER); /* no ping */
roboTest.moveTo(Tools.getString("Browser.ApplyResource"));
roboTest.leftClick();
roboTest.checkTest(testName, 2.1); /* 2.1 */
roboTest.moveTo("pingd", MComboBox.class);
roboTest.leftClick();
roboTest.press(KeyEvent.VK_UP); /* no ping */
roboTest.press(KeyEvent.VK_UP); /* no ping */
roboTest.press(KeyEvent.VK_ENTER); /* no ping */
roboTest.moveTo(Tools.getString("Browser.ApplyResource"));
roboTest.leftClick();
roboTest.moveScrollBar(false);
/* group with dummy resources */
final int gx = 230;
final int gy = 305;
roboTest.moveTo(gx, gy);
roboTest.rightClick(); /* popup */
roboTest.moveTo(gx + 46, gy + 11);
roboTest.leftClick(); /* choose group */
/* remove it */
roboTest.removeResource(gx, gy, !RoboTest.CONFIRM_REMOVE);
roboTest.moveTo(gx, gy);
roboTest.rightClick(); /* popup */
roboTest.moveTo(Tools.getString("ClusterBrowser.Hb.AddGroup"));
roboTest.leftClick();
roboTest.rightClick(); /* group popup */
roboTest.moveTo(Tools.getString("ClusterBrowser.Hb.AddGroupService"));
roboTest.moveTo("OCF Resource Agents");
roboTest.typeDummy();
/* remove it */
roboTest.removeResource(gx, gy, !RoboTest.CONFIRM_REMOVE);
/* group with dummy resources, once again */
roboTest.moveTo(gx, gy);
roboTest.rightClick(); /* popup */
roboTest.moveTo(Tools.getString("ClusterBrowser.Hb.AddGroup"));
roboTest.leftClick();
roboTest.rightClick(); /* group popup */
roboTest.moveTo(Tools.getString("ClusterBrowser.Hb.AddGroupService"));
roboTest.moveTo("OCF Resource Agents");
roboTest.typeDummy();
roboTest.moveToMenu("Dummy (1)");
roboTest.rightClick();
roboTest.moveTo(Tools.getString("ClusterBrowser.Hb.RemoveService"));
roboTest.leftClick(); /* menu remove service */
roboTest.removeResource(gx, gy, !RoboTest.CONFIRM_REMOVE);
/* group with dummy resources, once again */
roboTest.moveTo(gx, gy);
roboTest.rightClick(); /* popup */
roboTest.moveTo(Tools.getString("ClusterBrowser.Hb.AddGroup"));
roboTest.leftClick();
roboTest.rightClick(); /* group popup */
roboTest.moveTo(Tools.getString("ClusterBrowser.Hb.AddGroupService"));
roboTest.moveTo("OCF Resource Agents");
roboTest.typeDummy();
roboTest.removeResource(gx, gy, !RoboTest.CONFIRM_REMOVE);
/* once again */
roboTest.moveTo(gx, gy);
roboTest.rightClick(); /* popup */
roboTest.moveTo(Tools.getString("ClusterBrowser.Hb.AddGroup"));
roboTest.leftClick();
roboTest.checkTest(testName, 2); /* 2 */
roboTest.rightClick(); /* group popup */
roboTest.moveTo(Tools.getString("ClusterBrowser.Hb.AddGroupService"));
roboTest.moveTo("OCF Resource Agents");
roboTest.typeDummy();
roboTest.setTimeouts(true);
roboTest.moveTo(Tools.getString("Browser.ApplyResource"));
roboTest.leftClick();
for (int i = 0; i < 2; i++) {
/* another group resource */
roboTest.moveTo(gx + 10, gy - 25);
roboTest.rightClick(); /* popup */
roboTest.moveTo(Tools.getString("ClusterBrowser.Hb.AddGroupService"));
roboTest.moveTo("OCF Resource Agents");
roboTest.typeDummy();
roboTest.setTimeouts(true);
roboTest.moveTo(Tools.getString("Browser.ApplyResource"));
roboTest.leftClick();
}
roboTest.checkTest(testName, 3); /* 3 */
/* constraints */
roboTest.moveTo(gx + 10, gy - 25);
roboTest.addConstraint(1);
roboTest.checkTest(testName, 3.1); /* 3.1 */
try {
if (false && pmV != null && Tools.compareVersions(pmV, "1.0.8") > 0) {
/* move up, move down */
for (int i = 0; i < 2; i++) {
roboTest.moveToMenu("Dummy (3)");
roboTest.rightClick();
roboTest.moveTo(Tools.getString("ClusterBrowser.Hb.ResGrpMoveUp"));
roboTest.leftClick(); /* move res 3 up */
roboTest.checkTest(testName, 3.11); /* 3.11 */
roboTest.moveToMenu("Dummy (3)");
roboTest.rightClick();
roboTest.moveTo(Tools.getString("ClusterBrowser.Hb.ResGrpMoveDown"));
roboTest.leftClick();
roboTest.checkTest(testName, 3.12); /* 3.12 */
}
}
} catch (final Exceptions.IllegalVersionException e) {
LOG.appWarning("start: " + e.getMessage(), e);
}
roboTest.moveToMenu("Dummy (3)");
roboTest.leftClick();
roboTest.moveScrollBar(true);
for (int i = 0; i < 2; i++) {
roboTest.moveTo(Tools.getString("ClusterBrowser.SameAs"), 2, MComboBox.class);
roboTest.leftClick();
roboTest.press(KeyEvent.VK_DOWN); /* choose another dummy */
roboTest.press(KeyEvent.VK_DOWN);
roboTest.press(KeyEvent.VK_ENTER);
roboTest.moveTo(Tools.getString("Browser.ApplyResource"));
roboTest.leftClick();
roboTest.checkTest(testName, 3.2); /* 3.2 */
roboTest.moveTo(Tools.getString("ClusterBrowser.SameAs"), 2, MComboBox.class);
roboTest.leftClick();
roboTest.press(KeyEvent.VK_PAGE_UP); /* choose "nothing selected */
roboTest.press(KeyEvent.VK_ENTER);
roboTest.moveTo(Tools.getString("Browser.ApplyResource"));
roboTest.leftClick();
roboTest.checkTest(testName, 4); /* 4 */
roboTest.sleep(500);
}
roboTest.moveScrollBar(false);
/* locations */
roboTest.moveTo(ipX + 20, ipY);
roboTest.leftClick(); /* choose ip */
roboTest.setLocation(new Integer[]{KeyEvent.VK_I});
roboTest.checkTest(testName, 4.1); /* 4.1 */
roboTest.setLocation(new Integer[]{KeyEvent.VK_END,
KeyEvent.VK_BACK_SPACE,
KeyEvent.VK_BACK_SPACE,
KeyEvent.VK_BACK_SPACE,
KeyEvent.VK_BACK_SPACE,
KeyEvent.VK_BACK_SPACE,
KeyEvent.VK_BACK_SPACE,
KeyEvent.VK_BACK_SPACE,
KeyEvent.VK_BACK_SPACE,
KeyEvent.VK_MINUS,
KeyEvent.VK_I});
roboTest.checkTest(testName, 4.2); /* 4.2 */
roboTest.setLocation(new Integer[]{KeyEvent.VK_END,
KeyEvent.VK_BACK_SPACE,
KeyEvent.VK_BACK_SPACE,
KeyEvent.VK_BACK_SPACE,
KeyEvent.VK_BACK_SPACE,
KeyEvent.VK_BACK_SPACE,
KeyEvent.VK_BACK_SPACE,
KeyEvent.VK_BACK_SPACE,
KeyEvent.VK_BACK_SPACE,
KeyEvent.VK_BACK_SPACE,
KeyEvent.VK_PLUS});
roboTest.checkTest(testName, 4.3); /* 4.3 */
roboTest.setLocation(new Integer[]{KeyEvent.VK_END,
KeyEvent.VK_BACK_SPACE,
KeyEvent.VK_BACK_SPACE,
KeyEvent.VK_BACK_SPACE,
KeyEvent.VK_BACK_SPACE,
KeyEvent.VK_BACK_SPACE,
KeyEvent.VK_BACK_SPACE,
KeyEvent.VK_BACK_SPACE,
KeyEvent.VK_BACK_SPACE,
KeyEvent.VK_BACK_SPACE});
roboTest.checkTest(testName, 4.4); /* 4.4 */
final int popX = 340;
final int popY = 257;
roboTest.removeConstraint(popX, popY);
roboTest.checkTest(testName, 5); /* 5 */
roboTest.moveTo(gx + 10, gy - 25);
roboTest.addConstraint(1);
roboTest.checkTest(testName, 5.1); /* 4.4 */
roboTest.removeConstraint(popX, popY);
roboTest.checkTest(testName, 5.2); /* 5 */
roboTest.moveTo(gx + 10, gy - 25);
roboTest.addConstraint(1);
roboTest.checkTest(testName, 6); /* 6 */
roboTest.removeOrder(popX, popY);
roboTest.checkTest(testName, 7);
roboTest.addOrder(popX, popY);
roboTest.checkTest(testName, 8);
roboTest.removeColocation(popX, popY);
roboTest.checkTest(testName, 9);
roboTest.addColocation(popX, popY);
roboTest.checkTest(testName, 10);
roboTest.removeColocation(popX, popY);
roboTest.checkTest(testName, 10.1);
roboTest.removeOrder(popX, popY);
roboTest.checkTest(testName, 10.2);
roboTest.addConstraintOrderOnly(gx, gy - 25, 2);
roboTest.checkTest(testName, 10.3);
roboTest.addColocation(popX, popY);
roboTest.checkTest(testName, 10.4);
roboTest.removeOrder(popX, popY);
roboTest.checkTest(testName, 10.5);
roboTest.removeColocation(popX, popY);
roboTest.checkTest(testName, 10.6);
roboTest.addConstraintColocationOnly(gx, gy - 25, 2);
roboTest.checkTest(testName, 10.7);
roboTest.addOrder(popX, popY);
roboTest.checkTest(testName, 10.8);
roboTest.removeConstraint(popX, popY);
roboTest.checkTest(testName, 10.9);
roboTest.moveTo(ipX, ipY);
roboTest.addConstraint(1);
roboTest.checkTest(testName, 10.91);
roboTest.removeOrder(popX, popY);
roboTest.checkTest(testName, 10.92);
roboTest.addOrder(popX, popY);
roboTest.checkTest(testName, 10.93);
roboTest.removeColocation(popX, popY);
roboTest.checkTest(testName, 10.94);
roboTest.addColocation(popX, popY);
roboTest.checkTest(testName, 10.95);
roboTest.removeColocation(popX, popY);
roboTest.checkTest(testName, 10.96);
roboTest.removeOrder(popX, popY);
roboTest.checkTest(testName, 10.97);
roboTest.addConstraintColocationOnly(ipX, ipY, 1);
roboTest.checkTest(testName, 10.98);
roboTest.removeColocation(popX, popY);
roboTest.checkTest(testName, 10.99);
roboTest.addConstraintOrderOnly(ipX, ipY, 1);
roboTest.checkTest(testName, 11);
roboTest.addColocation(popX, popY);
roboTest.checkTest(testName, 11.1);
roboTest.removeConstraint(popX, popY);
roboTest.checkTest(testName, 11.2);
roboTest.moveTo(ipX, ipY);
roboTest.addConstraint(3);
roboTest.checkTest(testName, 11.3);
roboTest.stopResource(ipX, ipY);
roboTest.checkTest(testName, 11.4);
roboTest.resetStartStopResource(ipX, ipY);
roboTest.checkTest(testName, 11.5);
roboTest.moveTo(ipX + 20, ipY + 10);
roboTest.leftClick(); /* choose ip */
roboTest.moveTo(Tools.getString("Browser.ActionsMenu"));
roboTest.rightClick();
roboTest.moveTo(Tools.getString("ClusterBrowser.Hb.StopResource"));
roboTest.leftClick();
roboTest.checkTest(testName, 11.501);
roboTest.moveTo(ipX + 20, ipY + 10);
roboTest.leftClick(); /* choose ip */
roboTest.moveTo(Tools.getString("Browser.ActionsMenu"));
roboTest.rightClick(); /* popup */
roboTest.moveTo(Tools.getString("ClusterBrowser.Hb.StartResource").substring(1));
/* actions menu start */
roboTest.leftClick();
roboTest.checkTest(testName, 11.502);
roboTest.resetStartStopResource(ipX, ipY);
roboTest.checkTest(testName, 11.5);
roboTest.removeColocation(popX, popY);
roboTest.checkTest(testName, 11.51);
roboTest.addColocation(popX, popY);
roboTest.checkTest(testName, 11.52);
roboTest.removeOrder(popX, popY);
roboTest.checkTest(testName, 11.53);
roboTest.addOrder(popX, popY);
roboTest.checkTest(testName, 11.54);
roboTest.removeColocation(popX, popY);
roboTest.checkTest(testName, 11.55);
roboTest.removeOrder(popX, popY);
roboTest.checkTest(testName, 11.56);
roboTest.addConstraintOrderOnly(ipX, ipY, 3);
roboTest.checkTest(testName, 11.57);
roboTest.removeOrder(popX, popY);
roboTest.checkTest(testName, 11.58);
roboTest.addConstraintColocationOnly(ipX, ipY, 3);
roboTest.checkTest(testName, 11.59);
roboTest.addOrder(popX, popY);
roboTest.checkTest(testName, 11.6);
roboTest.removeConstraint(popX, popY);
roboTest.checkTest(testName, 11.7);
roboTest.moveTo(gx + 10, gy - 25);
roboTest.addConstraint(1);
roboTest.checkTest(testName, 11.8);
/** Add m/s Stateful resource */
final int statefulX = 500;
final int statefulY = 207;
roboTest.moveTo(statefulX, statefulY);
roboTest.rightClick();
roboTest.moveTo(Tools.getString("ClusterBrowser.Hb.AddService"));
roboTest.moveTo("Filesystem + Linbit:DRBD");
roboTest.moveTo("OCF Resource Agents");
roboTest.press(KeyEvent.VK_S);
roboTest.press(KeyEvent.VK_T);
roboTest.press(KeyEvent.VK_A);
roboTest.press(KeyEvent.VK_T);
roboTest.press(KeyEvent.VK_E);
roboTest.press(KeyEvent.VK_F);
roboTest.press(KeyEvent.VK_ENTER); /* choose Stateful */
Tools.sleep(400);
roboTest.moveTo(Tools.getString("Browser.ApplyResource"));
roboTest.leftClick();
roboTest.checkTest(testName, 11.9);
/* set clone max to 1 */
roboTest.moveTo("Clone Max", MComboBox.class);
roboTest.leftClick();
roboTest.leftClick();
roboTest.press(KeyEvent.VK_BACK_SPACE);
roboTest.press(KeyEvent.VK_1);
roboTest.setTimeouts(false);
roboTest.moveTo(Tools.getString("Browser.ApplyResource"));
roboTest.leftClick();
roboTest.checkTest(testName, 12);
roboTest.stopResource(statefulX, statefulY);
roboTest.checkTest(testName, 13);
roboTest.startResource(statefulX, statefulY);
roboTest.checkTest(testName, 14);
roboTest.unmanageResource(statefulX, statefulY);
roboTest.checkTest(testName, 15);
roboTest.manageResource(statefulX, statefulY);
roboTest.checkTest(testName, 16);
/* IP addr cont. */
roboTest.stopResource(ipX, ipY);
roboTest.checkTest(testName, 17);
roboTest.startResource(ipX, ipY);
roboTest.checkTest(testName, 18);
roboTest.unmanageResource(ipX, ipY);
roboTest.checkTest(testName, 19);
roboTest.manageResource(ipX, ipY);
roboTest.checkTest(testName, 20);
roboTest.migrateResource(ipX, ipY);
roboTest.checkTest(testName, 21);
roboTest.unmigrateResource(ipX, ipY);
roboTest.checkTest(testName, 22);
/* Group cont. */
roboTest.stopResource(gx, gy - 25);
roboTest.checkTest(testName, 23);
roboTest.startResource(gx, gy - 25);
roboTest.checkTest(testName, 24);
roboTest.unmanageResource(gx, gy - 25);
roboTest.checkTest(testName, 25);
roboTest.manageResource(gx, gy - 25);
roboTest.checkTest(testName, 26);
roboTest.migrateResource(gx, gy - 25);
roboTest.moveTo(gx, gy);
roboTest.leftClick();
roboTest.checkTest(testName, 27);
roboTest.moveTo(Tools.getString("Browser.ActionsMenu"));
roboTest.rightClick(); /* popup */
roboTest.moveTo(Tools.getString("ClusterBrowser.Hb.UnmigrateResource"));
roboTest.leftClick(); /* stop */
roboTest.checkTest(testName, 28);
roboTest.moveTo(700, 450); /* rectangle */
roboTest.leftPress();
roboTest.moveTo(220, 65);
roboTest.leftRelease();
roboTest.moveTo(ipX, ipY);
roboTest.rightClick();
roboTest.moveTo(ipX + 30, ipY); /* ptest */
roboTest.moveToSlowly(ipX + 30, ipY + 350);
roboTest.moveTo(ipX, ipY);
roboTest.press(KeyEvent.VK_DOWN);
roboTest.press(KeyEvent.VK_ENTER); /* standby selected hosts */
roboTest.checkTest(testName, 28.1);
roboTest.moveTo(700, 450);
roboTest.leftPress();
roboTest.moveTo(220, 65);
roboTest.leftRelease();
roboTest.moveTo(ipX, ipY);
roboTest.rightClick();
roboTest.press(KeyEvent.VK_DOWN);
roboTest.press(KeyEvent.VK_ENTER); /* online selected hosts */
roboTest.checkTest(testName, 28.2);
roboTest.moveTo(700, 450);
roboTest.leftPress();
roboTest.moveTo(220, 65);
roboTest.leftRelease();
roboTest.moveTo(ipX, ipY);
roboTest.rightClick();
roboTest.moveTo(Tools.getString("PcmkMultiSelectionInfo.StopSelectedResources"));
roboTest.leftClick();
roboTest.checkTest(testName, 28.3);
roboTest.moveTo(700, 450);
roboTest.leftPress();
roboTest.moveTo(220, 65);
roboTest.leftRelease();
roboTest.moveTo(ipX, ipY);
roboTest.rightClick();
roboTest.moveTo(Tools.getString("PcmkMultiSelectionInfo.StartSelectedResources"));
roboTest.leftClick();
roboTest.checkTest(testName, 28.4);
roboTest.moveTo(700, 520); /* reset selection */
roboTest.leftClick();
roboTest.stopResource(ipX, ipY);
roboTest.moveTo(gx, gy);
roboTest.leftClick();
roboTest.moveTo(Tools.getString("Browser.ActionsMenu"));
roboTest.stopGroup();
roboTest.moveTo(statefulX, statefulY);
roboTest.stopGroup();
roboTest.checkTest(testName, 29);
roboTest.removeResource(ipX, ipY, RoboTest.CONFIRM_REMOVE);
roboTest.removeGroup(gx, gy - 20);
roboTest.removeGroup(statefulX, statefulY);
roboTest.checkTest(testName, 1);
}
}