package cn.com.jautoitx;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Choice;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.TextArea;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.List;
import javax.swing.SwingUtilities;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.junit.Assert;
import org.junit.Test;
import org.omg.CORBA.IntHolder;
import cn.com.jautoitx.Control.ControlClickMouseButton;
import cn.com.jautoitx.Process.RunShowFlag;
import cn.com.jautoitx.Win32.User32Ext;
public class ControlTest extends BaseTest {
@Test
public void click() {
String title = "click - " + currentTimeMillis;
Frame frame = new Frame(title);
frame.setBounds(0, 0, 400, 300);
// add a button to frame
Button button = new Button("Click Me");
frame.add(button);
// add click listener to button
final IntHolder leftMouseClickCount = new IntHolder();
final IntHolder middleMouseClickCount = new IntHolder();
final IntHolder rightMouseClickCount = new IntHolder();
button.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (SwingUtilities.isLeftMouseButton(e)) {
leftMouseClickCount.value++;
} else if (SwingUtilities.isMiddleMouseButton(e)) {
middleMouseClickCount.value++;
} else if (SwingUtilities.isRightMouseButton(e)) {
rightMouseClickCount.value++;
}
}
});
// show frame
frame.setVisible(true);
Assert.assertTrue(Win.wait(title, 3));
try {
// left mouse click 4 times
for (int i = 0; i < 4; i++) {
Assert.assertTrue(Control.click(title, "Button1",
ControlClickMouseButton.LEFT));
sleep(200);
assertEquals(i + 1, leftMouseClickCount.value);
assertEquals(0, middleMouseClickCount.value);
assertEquals(0, rightMouseClickCount.value);
}
// middle mouse click 4 times
for (int i = 0; i < 4; i++) {
Assert.assertTrue(Control.click(title, "Button1",
ControlClickMouseButton.MIDDLE));
sleep(200);
assertEquals(4, leftMouseClickCount.value);
assertEquals(i + 1, middleMouseClickCount.value);
assertEquals(0, rightMouseClickCount.value);
}
// right mouse click 4 times
for (int i = 0; i < 4; i++) {
Assert.assertTrue(Control.click(title, "Button1",
ControlClickMouseButton.RIGHT));
sleep(200);
assertEquals(4, leftMouseClickCount.value);
assertEquals(4, middleMouseClickCount.value);
assertEquals(i + 1, rightMouseClickCount.value);
}
Assert.assertTrue(Control.click(title, null, "Button1", "left", 2));
sleep(200);
assertEquals(6, leftMouseClickCount.value);
assertEquals(4, middleMouseClickCount.value);
assertEquals(4, rightMouseClickCount.value);
Assert.assertTrue(Control
.click(title, null, "Button1", "middle", 3));
sleep(200);
assertEquals(6, leftMouseClickCount.value);
assertEquals(7, middleMouseClickCount.value);
assertEquals(4, rightMouseClickCount.value);
Assert.assertTrue(Control.click(title, null, "Button1", "right", 4));
sleep(200);
assertEquals(6, leftMouseClickCount.value);
assertEquals(7, middleMouseClickCount.value);
assertEquals(8, rightMouseClickCount.value);
Assert.assertTrue(Control.click(title, "Button1"));
sleep(200);
assertEquals(7, leftMouseClickCount.value);
assertEquals(7, middleMouseClickCount.value);
assertEquals(8, rightMouseClickCount.value);
Assert.assertTrue(Control.click(title, null, "Button1",
(String) null));
sleep(200);
assertEquals(8, leftMouseClickCount.value);
assertEquals(7, middleMouseClickCount.value);
assertEquals(8, rightMouseClickCount.value);
Assert.assertTrue(Control.click(title, null, "Button1", ""));
sleep(200);
assertEquals(9, leftMouseClickCount.value);
assertEquals(7, middleMouseClickCount.value);
assertEquals(8, rightMouseClickCount.value);
// invalid mouse buttons
Assert.assertFalse(Control.click(title, null, "Button1", " "));
sleep(200);
assertEquals(9, leftMouseClickCount.value);
assertEquals(7, middleMouseClickCount.value);
assertEquals(8, rightMouseClickCount.value);
// invalid mouse buttons
Assert.assertFalse(Control.click(title, null, "Button1", "xxxx"));
sleep(200);
assertEquals(9, leftMouseClickCount.value);
assertEquals(7, middleMouseClickCount.value);
assertEquals(8, rightMouseClickCount.value);
// click on not exists button
Assert.assertFalse(Control.click(title, null,
"Button1" + System.currentTimeMillis(), "left"));
sleep(200);
assertEquals(9, leftMouseClickCount.value);
assertEquals(7, middleMouseClickCount.value);
assertEquals(8, rightMouseClickCount.value);
} finally {
// destroy frame
frame.setVisible(false);
}
}
@Test
public void isVisible() {
final String title = "isVisible - " + currentTimeMillis;
Thread thread = new Thread(new Runnable() {
public void run() {
User32Ext.INSTANCE.MessageBox(null, "How are you?", title, 0);
}
});
thread.start();
Assert.assertTrue(Win.wait(title, 3));
Assert.assertTrue(Control.isVisible(title, "Button1"));
// hide button
Assert.assertTrue(Control.hide(title, "Button1"));
Assert.assertFalse(Control.isVisible(title, "Button1"));
// show button
Assert.assertTrue(Control.show(title, "Button1"));
Assert.assertTrue(Control.isVisible(title, "Button1"));
Assert.assertFalse(Control.isVisible(title,
"Button1" + System.currentTimeMillis()));
// close message box
Assert.assertTrue(Win.close(title));
Assert.assertFalse(Control.isVisible(title, "Button1"));
}
@Test
public void isEnabled() {
final String title = "isEnabled - " + currentTimeMillis;
Thread thread = new Thread(new Runnable() {
public void run() {
User32Ext.INSTANCE.MessageBox(null, "How are you?", title, 0);
}
});
thread.start();
Assert.assertTrue(Win.wait(title, 3));
Assert.assertTrue(Control.isEnabled(title, "Button1"));
// disable button
Assert.assertTrue(Control.disable(title, "Button1"));
Assert.assertFalse(Control.isEnabled(title, "Button1"));
// enable button
Assert.assertTrue(Control.enable(title, "Button1"));
Assert.assertTrue(Control.isEnabled(title, "Button1"));
Assert.assertFalse(Control.isEnabled(title,
"Button1" + System.currentTimeMillis()));
// close message box
Assert.assertTrue(Win.close(title));
Assert.assertFalse(Control.isEnabled(title, "Button1"));
}
@Test
public void showDropDown() {
String title = "showDropDown - " + currentTimeMillis;
Frame frame = new Frame(title);
frame.setLayout(new FlowLayout());
frame.setBounds(0, 0, 400, 300);
Assert.assertFalse(Control.showDropDown(title, "ComboBox1"));
// add a dropdown-list to frame
Choice choice = new Choice();
choice.add("Java");
choice.add("Lisp");
choice.add("Tcl");
choice.add("Smalltalk");
frame.add(choice);
// show frame
frame.setVisible(true);
Assert.assertTrue(Win.wait(title, 3));
try {
// TOOD:
// show dropdown
// System.out.println(Win.getText(title));
// System.out.println(Control.getText(title, "ComboBox1"));
Assert.assertTrue(Control.showDropDown(title, "ComboBox1"));
// System.out.println(Win.getText(title));
// System.out.println(Control.getText(title, "ComboBox1"));
sleep(200);
// hide dropdown
Assert.assertTrue(Control.hideDropDown(title, "ComboBox1"));
sleep(200);
// show not exists dropdown
Assert.assertFalse(Control.showDropDown(title,
"ComboBox1" + System.currentTimeMillis()));
} finally {
// destroy frame
frame.setVisible(false);
}
}
@Test
public void hideDropDown() {
String title = "hideDropDown - " + currentTimeMillis;
Frame frame = new Frame(title);
frame.setLayout(new FlowLayout());
frame.setBounds(0, 0, 400, 300);
Assert.assertFalse(Control.hideDropDown(title, "ComboBox1"));
// add a dropdown-list to frame
Choice choice = new Choice();
choice.add("Java");
choice.add("Lisp");
choice.add("Tcl");
choice.add("Smalltalk");
frame.add(choice);
// show frame
frame.setVisible(true);
Assert.assertTrue(Win.wait(title, 3));
try {
// TOOD:
// show dropdown
// System.out.println(Win.getText(title));
// System.out.println(Control.getText(title, "ComboBox1"));
Assert.assertTrue(Control.showDropDown(title, "ComboBox1"));
// System.out.println(Win.getText(title));
// System.out.println(Control.getText(title, "ComboBox1"));
sleep(200);
// hide dropdown
Assert.assertTrue(Control.hideDropDown(title, "ComboBox1"));
sleep(200);
// show dropdown
Assert.assertTrue(Control.showDropDown(title, "ComboBox1"));
sleep(200);
// hide not exists dropdown
Assert.assertFalse(Control.hideDropDown(title,
"ComboBox1" + System.currentTimeMillis()));
} finally {
// destroy frame
frame.setVisible(false);
}
}
@Test
public void addString() {
final String title = "addString - " + currentTimeMillis;
Assert.assertFalse(Control.addString(title, "ComboBox1", "Perl"));
final ObjectHolder shellHolder = new ObjectHolder();
Thread thread = new Thread(new Runnable() {
public void run() {
// create frame
Display display = new Display();
Shell shell = new Shell(display);
shell.setText(title);
shell.setLocation(0, 0);
shell.setSize(400, 300);
shellHolder.value = shell;
Combo combo = new Combo(shell, SWT.DROP_DOWN);
combo.setItems(new String[] { "Java", "Lisp", "Tcl",
"Smalltalk" });
combo.setLocation(20, 20);
combo.pack();
// show frame
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
});
// show frame
thread.start();
Assert.assertTrue(Win.wait(title, 3));
try {
Assert.assertArrayEquals(new String[] { "Java", "Lisp", "Tcl",
"Smalltalk" }, Control.getStringList(title, "ComboBox1")
.toArray());
// add string to dropdown
Assert.assertTrue(Control.addString(title, "ComboBox1", "Perl"));
Assert.assertArrayEquals(new String[] { "Java", "Lisp", "Tcl",
"Smalltalk", "Perl" },
Control.getStringList(title, "ComboBox1").toArray());
// add string to dropdown
Assert.assertTrue(Control.addString(title, "ComboBox1", "JAVA"));
Assert.assertArrayEquals(new String[] { "Java", "Lisp", "Tcl",
"Smalltalk", "Perl", "JAVA" },
Control.getStringList(title, "ComboBox1").toArray());
// add string to dropdown
Assert.assertTrue(Control.addString(title, "ComboBox1", "Perl"));
Assert.assertArrayEquals(new String[] { "Java", "Lisp", "Tcl",
"Smalltalk", "Perl", "JAVA", "Perl" }, Control
.getStringList(title, "ComboBox1").toArray());
// add string to not exists dropdown
Assert.assertFalse(Control.addString(title,
"ComboBox1" + System.currentTimeMillis(), "Python"));
Assert.assertArrayEquals(new String[] { "Java", "Lisp", "Tcl",
"Smalltalk", "Perl", "JAVA", "Perl" }, Control
.getStringList(title, "ComboBox1").toArray());
} finally {
destroyDefaultDisplay(title);
}
}
@Test
public void delString() {
final String title = "delString - " + currentTimeMillis;
Assert.assertFalse(Control.delString(title, "ComboBox1", 0));
Thread thread = new Thread(new Runnable() {
public void run() {
// create frame
Display display = new Display();
Shell shell = new Shell(display);
shell.setText(title);
shell.setLocation(0, 0);
shell.setSize(400, 300);
Combo combo = new Combo(shell, SWT.DROP_DOWN);
combo.setItems(new String[] { "Java", "Lisp", "Tcl",
"Smalltalk" });
combo.setLocation(20, 20);
combo.pack();
// show frame
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
});
// show frame
thread.start();
Assert.assertTrue(Win.wait(title, 3));
try {
Assert.assertArrayEquals(new String[] { "Java", "Lisp", "Tcl",
"Smalltalk" }, Control.getStringList(title, "ComboBox1")
.toArray());
// delete string from dropdown
Assert.assertTrue(Control.delString(title, "ComboBox1", 0));
Assert.assertArrayEquals(
new String[] { "Lisp", "Tcl", "Smalltalk" }, Control
.getStringList(title, "ComboBox1").toArray());
// delete string from dropdown
Assert.assertTrue(Control.delString(title, "ComboBox1", 1));
Assert.assertArrayEquals(new String[] { "Lisp", "Smalltalk" },
Control.getStringList(title, "ComboBox1").toArray());
// delete string from dropdown with invalid index
Assert.assertTrue(Control.delString(title, "ComboBox1", 2));
Assert.assertArrayEquals(new String[] { "Lisp", "Smalltalk" },
Control.getStringList(title, "ComboBox1").toArray());
// delete string from not exists dropdown
Assert.assertFalse(Control.delString(title,
"ComboBox1" + System.currentTimeMillis(), 0));
Assert.assertArrayEquals(new String[] { "Lisp", "Smalltalk" },
Control.getStringList(title, "ComboBox1").toArray());
} finally {
destroyDefaultDisplay(title);
}
}
@Test
public void findString() {
final String title = "findString - " + currentTimeMillis;
Assert.assertNull(Control.findString(title, "ComboBox1", "Java"));
Assert.assertNull(Control.findString(title, "ListBox1", "Java"));
Thread thread = new Thread(new Runnable() {
public void run() {
// create frame
Display display = new Display();
Shell shell = new Shell(display);
shell.setText(title);
shell.setLocation(0, 0);
shell.setSize(400, 300);
String[] items = new String[] { "Java", "JAVA", "Lisp", "易语言",
"", "Visual Basic", "Smalltalk" };
Combo combo = new Combo(shell, SWT.DROP_DOWN);
combo.setItems(items);
combo.setLocation(20, 20);
combo.pack();
org.eclipse.swt.widgets.List list = new org.eclipse.swt.widgets.List(
shell, SWT.SINGLE);
list.setItems(items);
list.setLocation(150, 20);
list.pack();
org.eclipse.swt.widgets.Button button = new org.eclipse.swt.widgets.Button(
shell, SWT.PUSH);
button.setText("Button");
button.setLocation(280, 20);
button.pack();
// show frame
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
});
// show frame
thread.start();
Assert.assertTrue(Win.wait(title, 3));
try {
Assert.assertNotNull(Control.getHandle(title, "Button1"));
Assert.assertNull(Control.findString(title, "Button1", "Java"));
for (String control : new String[] { "ComboBox1", "ListBox1" }) {
assertEquals(0, Control.findString(title, control, "Java"));
assertEquals(0, Control.findString(title, control, "JAVA"));
assertEquals(0,
Control.findString(title, control, "Java", true));
assertEquals(0,
Control.findString(title, control, "JAVA", true));
assertEquals(0,
Control.findString(title, control, "Java", false));
assertEquals(1,
Control.findString(title, control, "JAVA", false));
assertEquals(2, Control.findString(title, control, "Lisp"));
assertEquals(3, Control.findString(title, control, "易语言"));
assertEquals(4, Control.findString(title, control, ""));
assertEquals(5,
Control.findString(title, control, "Visual Basic"));
assertEquals(6, Control.findString(title, control, "Smalltalk"));
Assert.assertNull(Control.findString(title, control, "Lua"));
Assert.assertNull(Control.findString(title, control, "Lua",
true));
Assert.assertNull(Control.findString(title, control, "Lua",
false));
// add string to dropdown
Assert.assertTrue(Control.addString(title, control, "Lua"));
assertEquals(0, Control.findString(title, control, "Java"));
assertEquals(0, Control.findString(title, control, "JAVA"));
assertEquals(0,
Control.findString(title, control, "Java", true));
assertEquals(0,
Control.findString(title, control, "JAVA", true));
assertEquals(0,
Control.findString(title, control, "Java", false));
assertEquals(1,
Control.findString(title, control, "JAVA", false));
assertEquals(2, Control.findString(title, control, "Lisp"));
assertEquals(3, Control.findString(title, control, "易语言"));
assertEquals(4, Control.findString(title, control, ""));
assertEquals(5,
Control.findString(title, control, "Visual Basic"));
assertEquals(6, Control.findString(title, control, "Smalltalk"));
assertEquals(7, Control.findString(title, control, "Lua"));
assertEquals(7, Control.findString(title, control, "Lua", true));
assertEquals(7,
Control.findString(title, control, "Lua", false));
Assert.assertNull(Control.findString(title, control, "Python"));
Assert.assertNull(Control.findString(title, control, "Python",
true));
Assert.assertNull(Control.findString(title, control, "Python",
false));
// delete string from dropdown
Assert.assertTrue(Control.delString(title, control, 1));
assertEquals(0, Control.findString(title, control, "Java"));
assertEquals(0, Control.findString(title, control, "JAVA"));
assertEquals(0,
Control.findString(title, control, "Java", true));
assertEquals(0,
Control.findString(title, control, "JAVA", true));
assertEquals(0,
Control.findString(title, control, "Java", false));
Assert.assertNull(Control.findString(title, control, "JAVA",
false));
assertEquals(1, Control.findString(title, control, "Lisp"));
assertEquals(2, Control.findString(title, control, "易语言"));
assertEquals(3, Control.findString(title, control, ""));
assertEquals(4,
Control.findString(title, control, "Visual Basic"));
assertEquals(5, Control.findString(title, control, "Smalltalk"));
assertEquals(6, Control.findString(title, control, "Lua"));
assertEquals(6, Control.findString(title, control, "Lua", true));
assertEquals(6,
Control.findString(title, control, "Lua", false));
Assert.assertNull(Control.findString(title, control, "Python"));
Assert.assertNull(Control.findString(title, control, "Python",
true));
Assert.assertNull(Control.findString(title, control, "Python",
false));
// add string to dropdown
Assert.assertTrue(Control.addString(title, control, "JAVA"));
assertEquals(0, Control.findString(title, control, "Java"));
assertEquals(0, Control.findString(title, control, "JAVA"));
assertEquals(0,
Control.findString(title, control, "Java", true));
assertEquals(0,
Control.findString(title, control, "JAVA", true));
assertEquals(0,
Control.findString(title, control, "Java", false));
assertEquals(7,
Control.findString(title, control, "JAVA", false));
assertEquals(1, Control.findString(title, control, "Lisp"));
assertEquals(2, Control.findString(title, control, "易语言"));
assertEquals(3, Control.findString(title, control, ""));
assertEquals(4,
Control.findString(title, control, "Visual Basic"));
assertEquals(5, Control.findString(title, control, "Smalltalk"));
assertEquals(6, Control.findString(title, control, "Lua"));
assertEquals(6, Control.findString(title, control, "Lua", true));
assertEquals(6,
Control.findString(title, control, "Lua", false));
Assert.assertNull(Control.findString(title, control, "Python"));
Assert.assertNull(Control.findString(title, control, "Python",
true));
Assert.assertNull(Control.findString(title, control, "Python",
false));
// find string from not exists dropdown
Assert.assertNull(Control.findString(title,
control + System.currentTimeMillis(), "Java"));
}
} finally {
destroyDefaultDisplay(title);
}
}
@Test
public void getString() {
final String title = "getString - " + currentTimeMillis;
Assert.assertNull(Control.getString(title, "ComboBox1", 0));
Assert.assertNull(Control.getString(title, "ListBox1", 0));
Thread thread = new Thread(new Runnable() {
public void run() {
// create frame
Display display = new Display();
Shell shell = new Shell(display);
shell.setText(title);
shell.setLocation(0, 0);
shell.setSize(400, 300);
String[] items = new String[] { "Java", "Lisp", "易语言", "",
"Tcl", "Smalltalk" };
Combo combo = new Combo(shell, SWT.DROP_DOWN);
combo.setItems(items);
combo.setLocation(20, 20);
combo.pack();
org.eclipse.swt.widgets.List list = new org.eclipse.swt.widgets.List(
shell, SWT.SINGLE);
list.setItems(items);
list.setLocation(150, 20);
list.pack();
org.eclipse.swt.widgets.Button button = new org.eclipse.swt.widgets.Button(
shell, SWT.PUSH);
button.setText("Button");
button.setLocation(280, 20);
button.pack();
// show frame
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
});
// show frame
thread.start();
Assert.assertTrue(Win.wait(title, 3));
try {
Assert.assertNotNull(Control.getHandle(title, "Button1"));
Assert.assertNull(Control.getString(title, "Button1", 0));
for (String control : new String[] { "ComboBox1", "ListBox1" }) {
Assert.assertNull(Control.getString(title, control, 6));
Assert.assertNull(Control.getString(title, control, -1));
assertEquals("Java", Control.getString(title, control, 0));
assertEquals("Lisp", Control.getString(title, control, 1));
assertEquals("易语言", Control.getString(title, control, 2));
assertEquals("", Control.getString(title, control, 3));
assertEquals("Tcl", Control.getString(title, control, 4));
assertEquals("Smalltalk", Control.getString(title, control, 5));
Assert.assertNull(Control.getString(title, control, 6));
// add string to dropdown
Assert.assertTrue(Control.addString(title, control,
"Visual Basic"));
Assert.assertNull(Control.getString(title, control, -1));
assertEquals("Java", Control.getString(title, control, 0));
assertEquals("Lisp", Control.getString(title, control, 1));
assertEquals("易语言", Control.getString(title, control, 2));
assertEquals("", Control.getString(title, control, 3));
assertEquals("Tcl", Control.getString(title, control, 4));
assertEquals("Smalltalk", Control.getString(title, control, 5));
assertEquals("Visual Basic",
Control.getString(title, control, 6));
Assert.assertNull(Control.getString(title, control, 7));
// delete string from dropdown
Assert.assertTrue(Control.delString(title, control, 1));
Assert.assertNull(Control.getString(title, control, -1));
assertEquals("Java", Control.getString(title, control, 0));
assertEquals("易语言", Control.getString(title, control, 1));
assertEquals("", Control.getString(title, control, 2));
assertEquals("Tcl", Control.getString(title, control, 3));
assertEquals("Smalltalk", Control.getString(title, control, 4));
assertEquals("Visual Basic",
Control.getString(title, control, 5));
Assert.assertNull(Control.getString(title, control, 6));
// get item from not exists dropdown
Assert.assertNull(Control.getString(title,
control + System.currentTimeMillis(), 0));
}
} finally {
destroyDefaultDisplay(title);
}
}
@Test
public void getStringList() {
final String title = "getStringList - " + currentTimeMillis;
Assert.assertNull(Control.getStringList(title, "ComboBox1"));
Assert.assertNull(Control.getStringList(title, "ListBox1"));
Thread thread = new Thread(new Runnable() {
public void run() {
// create frame
Display display = new Display();
Shell shell = new Shell(display);
shell.setText(title);
shell.setLocation(0, 0);
shell.setSize(400, 300);
String[] items = new String[] { "Java", "Lisp", "易语言", "",
"Tcl", "Smalltalk" };
Combo combo = new Combo(shell, SWT.DROP_DOWN);
combo.setItems(items);
combo.setLocation(20, 20);
combo.pack();
org.eclipse.swt.widgets.List list = new org.eclipse.swt.widgets.List(
shell, SWT.SINGLE);
list.setItems(items);
list.setLocation(150, 20);
list.pack();
org.eclipse.swt.widgets.Button button = new org.eclipse.swt.widgets.Button(
shell, SWT.PUSH);
button.setText("Button");
button.setLocation(280, 20);
button.pack();
// show frame
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
});
// show frame
thread.start();
Assert.assertTrue(Win.wait(title, 3));
try {
Assert.assertNotNull(Control.getHandle(title, "Button1"));
Assert.assertNull(Control.getStringList(title, "Button1"));
for (String control : new String[] { "ComboBox1", "ListBox1" }) {
List<String> list = Control.getStringList(title, control);
Assert.assertNotNull(list);
assertEquals(6, list.size());
assertEquals("Java", list.get(0));
assertEquals("Lisp", list.get(1));
assertEquals("易语言", list.get(2));
assertEquals("", list.get(3));
assertEquals("Tcl", list.get(4));
assertEquals("Smalltalk", list.get(5));
// add string to dropdown
Assert.assertTrue(Control.addString(title, control,
"Visual Basic"));
list = Control.getStringList(title, control);
Assert.assertNotNull(list);
assertEquals(7, list.size());
assertEquals("Java", list.get(0));
assertEquals("Lisp", list.get(1));
assertEquals("易语言", list.get(2));
assertEquals("", list.get(3));
assertEquals("Tcl", list.get(4));
assertEquals("Smalltalk", list.get(5));
assertEquals("Visual Basic", list.get(6));
// delete string from dropdown
Assert.assertTrue(Control.delString(title, control, 1));
list = Control.getStringList(title, control);
Assert.assertNotNull(list);
assertEquals(6, list.size());
assertEquals("Java", list.get(0));
assertEquals("易语言", list.get(1));
assertEquals("", list.get(2));
assertEquals("Tcl", list.get(3));
assertEquals("Smalltalk", list.get(4));
assertEquals("Visual Basic", list.get(5));
// get item from not exists dropdown
Assert.assertNull(Control.getStringList(title,
control + System.currentTimeMillis()));
}
} finally {
destroyDefaultDisplay(title);
}
}
@Test
public void getStringCount() {
final String title = "getStringCount - " + currentTimeMillis;
Assert.assertNull(Control.getStringCount(title, "ComboBox1"));
Assert.assertNull(Control.getStringCount(title, "ListBox1"));
Thread thread = new Thread(new Runnable() {
public void run() {
// create frame
Display display = new Display();
Shell shell = new Shell(display);
shell.setText(title);
shell.setLocation(0, 0);
shell.setSize(400, 300);
String[] items = new String[] { "Java", "Lisp", "易语言", "",
"Tcl", "Smalltalk" };
Combo combo = new Combo(shell, SWT.DROP_DOWN);
combo.setItems(items);
combo.setLocation(20, 20);
combo.pack();
org.eclipse.swt.widgets.List list = new org.eclipse.swt.widgets.List(
shell, SWT.SINGLE);
list.setItems(items);
list.setLocation(150, 20);
list.pack();
org.eclipse.swt.widgets.Button button = new org.eclipse.swt.widgets.Button(
shell, SWT.PUSH);
button.setText("Button");
button.setLocation(280, 20);
button.pack();
// show frame
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
});
// show frame
thread.start();
Assert.assertTrue(Win.wait(title, 3));
try {
Assert.assertNotNull(Control.getHandle(title, "Button1"));
Assert.assertNull(Control.getStringCount(title, "Button1"));
for (String control : new String[] { "ComboBox1", "ListBox1" }) {
assertEquals(6, Control.getStringCount(title, control));
// add string to dropdown
Assert.assertTrue(Control.addString(title, control,
"Visual Basic"));
assertEquals(7, Control.getStringCount(title, control));
// delete string from dropdown
Assert.assertTrue(Control.delString(title, control, 1));
assertEquals(6, Control.getStringCount(title, control));
// get item from not exists dropdown
Assert.assertNull(Control.getStringCount(title, control
+ System.currentTimeMillis()));
}
} finally {
destroyDefaultDisplay(title);
}
}
@Test
public void setCurrentSelection() {
final String title = "setCurrentSelection - " + currentTimeMillis;
Assert.assertFalse(Control.setCurrentSelection(title, "ComboBox1", 0));
Assert.assertFalse(Control.setCurrentSelection(title, "ListBox1", 0));
Thread thread = new Thread(new Runnable() {
public void run() {
// create frame
Display display = new Display();
Shell shell = new Shell(display);
shell.setText(title);
shell.setLocation(0, 0);
shell.setSize(400, 300);
String[] items = new String[] { "Java", "Lisp", "易语言", "",
"Tcl", "Smalltalk" };
Combo combo = new Combo(shell, SWT.DROP_DOWN);
combo.setItems(items);
combo.setLocation(20, 20);
combo.pack();
org.eclipse.swt.widgets.List list = new org.eclipse.swt.widgets.List(
shell, SWT.SINGLE);
list.setItems(items);
list.setLocation(150, 20);
list.pack();
org.eclipse.swt.widgets.Button button = new org.eclipse.swt.widgets.Button(
shell, SWT.PUSH);
button.setText("Button");
button.setLocation(280, 20);
button.pack();
// show frame
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
});
// show frame
thread.start();
Assert.assertTrue(Win.wait(title, 3));
try {
Assert.assertNotNull(Control.getHandle(title, "Button1"));
Assert.assertFalse(Control.setCurrentSelection(title, "Button1", 0));
for (String control : new String[] { "ComboBox1", "ListBox1" }) {
int count = Control.getStringCount(title, control);
assertEquals(6, count);
Assert.assertTrue(Control
.setCurrentSelection(title, control, 0));
assertEquals("Java",
Control.getCurrentSelection(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 1));
assertEquals("Lisp",
Control.getCurrentSelection(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 2));
assertEquals("易语言", Control.getCurrentSelection(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 3));
assertEquals("", Control.getCurrentSelection(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 4));
assertEquals("Tcl", Control.getCurrentSelection(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 5));
assertEquals("Smalltalk",
Control.getCurrentSelection(title, control));
Assert.assertFalse(Control.setCurrentSelection(title, control,
6));
assertEquals("Smalltalk",
Control.getCurrentSelection(title, control));
Assert.assertFalse(Control.setCurrentSelection(title, control,
-2));
assertEquals("Smalltalk",
Control.getCurrentSelection(title, control));
Assert.assertFalse(Control.setCurrentSelection(title, control,
-1));
assertEquals("Smalltalk",
Control.getCurrentSelection(title, control));
// add string to dropdown
Assert.assertTrue(Control.addString(title, control,
"Visual Basic"));
assertEquals(7, Control.getStringCount(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 0));
assertEquals("Java",
Control.getCurrentSelection(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 1));
assertEquals("Lisp",
Control.getCurrentSelection(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 2));
assertEquals("易语言", Control.getCurrentSelection(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 3));
assertEquals("", Control.getCurrentSelection(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 4));
assertEquals("Tcl", Control.getCurrentSelection(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 5));
assertEquals("Smalltalk",
Control.getCurrentSelection(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 6));
assertEquals("Visual Basic",
Control.getCurrentSelection(title, control));
Assert.assertFalse(Control.setCurrentSelection(title, control,
7));
assertEquals("Visual Basic",
Control.getCurrentSelection(title, control));
Assert.assertFalse(Control.setCurrentSelection(title, control,
-2));
assertEquals("Visual Basic",
Control.getCurrentSelection(title, control));
Assert.assertFalse(Control.setCurrentSelection(title, control,
-1));
assertEquals("Visual Basic",
Control.getCurrentSelection(title, control));
// delete string from dropdown
Assert.assertTrue(Control.delString(title, control, 1));
assertEquals(6, Control.getStringCount(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 0));
assertEquals("Java",
Control.getCurrentSelection(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 1));
assertEquals("易语言", Control.getCurrentSelection(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 2));
assertEquals("", Control.getCurrentSelection(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 3));
assertEquals("Tcl", Control.getCurrentSelection(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 4));
assertEquals("Smalltalk",
Control.getCurrentSelection(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 5));
assertEquals("Visual Basic",
Control.getCurrentSelection(title, control));
Assert.assertFalse(Control.setCurrentSelection(title, control,
6));
assertEquals("Visual Basic",
Control.getCurrentSelection(title, control));
Assert.assertFalse(Control.setCurrentSelection(title, control,
-2));
assertEquals("Visual Basic",
Control.getCurrentSelection(title, control));
Assert.assertFalse(Control.setCurrentSelection(title, control,
-1));
assertEquals("Visual Basic",
Control.getCurrentSelection(title, control));
// select item from not exists dropdown
Assert.assertFalse(Control.setCurrentSelection(title, control
+ System.currentTimeMillis(), 0));
}
} finally {
destroyDefaultDisplay(title);
}
}
@Test
public void selectString() {
final String title = "selectString - " + currentTimeMillis;
Assert.assertNull(Control.selectString(title, "ComboBox1", "Java"));
Assert.assertNull(Control.selectString(title, "ListBox1", "Java"));
final String[] items = new String[] { "Java", "Lisp", "易语言", "", "Tcl",
"Smalltalk" };
Thread thread = new Thread(new Runnable() {
public void run() {
// create frame
Display display = new Display();
Shell shell = new Shell(display);
shell.setText(title);
shell.setLocation(0, 0);
shell.setSize(400, 300);
Combo combo = new Combo(shell, SWT.DROP_DOWN);
combo.setItems(items);
combo.setLocation(20, 20);
combo.pack();
org.eclipse.swt.widgets.List list = new org.eclipse.swt.widgets.List(
shell, SWT.SINGLE);
list.setItems(items);
list.setLocation(150, 20);
list.pack();
org.eclipse.swt.widgets.Button button = new org.eclipse.swt.widgets.Button(
shell, SWT.PUSH);
button.setText("Button");
button.setLocation(280, 20);
button.pack();
// show frame
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
});
// show frame
thread.start();
Assert.assertTrue(Win.wait(title, 3));
try {
Assert.assertNotNull(Control.getHandle(title, "Button1"));
Assert.assertNull(Control.selectString(title, "Button1", "Button"));
for (String control : new String[] { "ComboBox1", "ListBox1" }) {
int count = Control.getStringCount(title, control);
assertEquals(6, count);
for (int i = 0; i < count; i++) {
assertEquals(i,
Control.selectString(title, control, items[i]));
assertEquals(items[i],
Control.getCurrentSelection(title, control));
}
Assert.assertNull(Control.selectString(title, control, null));
assertEquals(items[items.length - 1],
Control.getCurrentSelection(title, control));
Assert.assertNull(Control.selectString(title, control,
"NotExistItem"));
assertEquals(items[items.length - 1],
Control.getCurrentSelection(title, control));
// add string to dropdown
Assert.assertTrue(Control.addString(title, control,
"Visual Basic"));
count = Control.getStringCount(title, control);
assertEquals(7, count);
for (int i = 0; i < count; i++) {
assertEquals(i, Control.selectString(title, control,
(i == count - 1) ? "Visual Basic" : items[i]));
assertEquals((i == count - 1) ? "Visual Basic" : items[i],
Control.getCurrentSelection(title, control));
}
Assert.assertNull(Control.selectString(title, control, null));
assertEquals("Visual Basic",
Control.getCurrentSelection(title, control));
Assert.assertNull(Control.selectString(title, control,
"NotExistItem"));
assertEquals("Visual Basic",
Control.getCurrentSelection(title, control));
// delete string from dropdown
Assert.assertTrue(Control.delString(title, control, 1));
count = Control.getStringCount(title, control);
assertEquals(6, count);
for (int i = 0; i < count; i++) {
if (i == 1) {
Assert.assertNull(Control.selectString(title, control,
items[i]));
assertEquals(items[0],
Control.getCurrentSelection(title, control));
} else {
assertEquals((i == 0) ? i : (i - 1),
Control.selectString(title, control, items[i]));
assertEquals(items[i],
Control.getCurrentSelection(title, control));
}
}
Assert.assertNull(Control.selectString(title, control, null));
assertEquals("Smalltalk",
Control.getCurrentSelection(title, control));
Assert.assertNull(Control.selectString(title, control,
"NotExistItem"));
assertEquals("Smalltalk",
Control.getCurrentSelection(title, control));
// select item from not exists dropdown
Assert.assertNull(Control.selectString(title,
control + System.currentTimeMillis(), items[0]));
assertEquals("Smalltalk",
Control.getCurrentSelection(title, control));
}
} finally {
destroyDefaultDisplay(title);
}
}
@Test
public void isChecked() {
final String title = "isChecked - " + currentTimeMillis;
Assert.assertFalse(Control.isChecked(title, "Button1"));
Thread thread = new Thread(new Runnable() {
public void run() {
// create frame
Display display = new Display();
Shell shell = new Shell(display);
shell.setText(title);
shell.setLocation(0, 0);
shell.setSize(400, 300);
org.eclipse.swt.widgets.Button button = new org.eclipse.swt.widgets.Button(
shell, SWT.CHECK);
button.setText("CheckBox");
button.setLocation(280, 20);
button.pack();
// show frame
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
});
// show frame
thread.start();
Assert.assertTrue(Win.wait(title, 3));
try {
Assert.assertFalse(Control.isChecked(title, "Button1"));
// check checkbox
Assert.assertTrue(Control.check(title, "Button1"));
Assert.assertTrue(Control.isChecked(title, "Button1"));
// uncheck checkbox
Assert.assertTrue(Control.uncheck(title, "Button1"));
Assert.assertFalse(Control.isChecked(title, "Button1"));
// check checkbox
Assert.assertTrue(Control.check(title, "Button1"));
Assert.assertTrue(Control.isChecked(title, "Button1"));
// uncheck checkbox
Assert.assertTrue(Control.uncheck(title, "Button1"));
Assert.assertFalse(Control.isChecked(title, "Button1"));
// check checkbox
Assert.assertTrue(Control.check(title, "Button1"));
Assert.assertTrue(Control.isChecked(title, "Button1"));
Assert.assertFalse(Control.isChecked(title,
"Button1" + System.currentTimeMillis()));
} finally {
destroyDefaultDisplay(title);
}
}
@Test
public void check() {
final String title = "check - " + currentTimeMillis;
Assert.assertFalse(Control.check(title, "Button1"));
Thread thread = new Thread(new Runnable() {
public void run() {
// create frame
Display display = new Display();
Shell shell = new Shell(display);
shell.setText(title);
shell.setLocation(0, 0);
shell.setSize(400, 300);
org.eclipse.swt.widgets.Button button = new org.eclipse.swt.widgets.Button(
shell, SWT.CHECK);
button.setText("CheckBox");
button.setLocation(280, 20);
button.pack();
// show frame
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
});
// show frame
thread.start();
Assert.assertTrue(Win.wait(title, 3));
try {
Assert.assertFalse(Control.isChecked(title, "Button1"));
// check checkbox
Assert.assertTrue(Control.check(title, "Button1"));
Assert.assertTrue(Control.isChecked(title, "Button1"));
// uncheck checkbox
Assert.assertTrue(Control.uncheck(title, "Button1"));
Assert.assertFalse(Control.isChecked(title, "Button1"));
// check checkbox
Assert.assertTrue(Control.check(title, "Button1"));
Assert.assertTrue(Control.isChecked(title, "Button1"));
// uncheck checkbox
Assert.assertTrue(Control.uncheck(title, "Button1"));
Assert.assertFalse(Control.isChecked(title, "Button1"));
// check not exists checkbox
Assert.assertFalse(Control.check(title,
"Button1" + System.currentTimeMillis()));
Assert.assertFalse(Control.isChecked(title, "Button1"));
} finally {
destroyDefaultDisplay(title);
}
}
@Test
public void uncheck() {
final String title = "uncheck - " + currentTimeMillis;
Assert.assertFalse(Control.uncheck(title, "Button1"));
Thread thread = new Thread(new Runnable() {
public void run() {
// create frame
Display display = new Display();
Shell shell = new Shell(display);
shell.setText(title);
shell.setLocation(0, 0);
shell.setSize(400, 300);
org.eclipse.swt.widgets.Button button = new org.eclipse.swt.widgets.Button(
shell, SWT.CHECK);
button.setText("CheckBox");
button.setLocation(280, 20);
button.pack();
// show frame
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
});
// show frame
thread.start();
Assert.assertTrue(Win.wait(title, 3));
try {
Assert.assertFalse(Control.isChecked(title, "Button1"));
// check checkbox
Assert.assertTrue(Control.check(title, "Button1"));
Assert.assertTrue(Control.isChecked(title, "Button1"));
// uncheck checkbox
Assert.assertTrue(Control.uncheck(title, "Button1"));
Assert.assertFalse(Control.isChecked(title, "Button1"));
// check checkbox
Assert.assertTrue(Control.check(title, "Button1"));
Assert.assertTrue(Control.isChecked(title, "Button1"));
// uncheck checkbox
Assert.assertTrue(Control.uncheck(title, "Button1"));
Assert.assertFalse(Control.isChecked(title, "Button1"));
// check checkbox
Assert.assertTrue(Control.check(title, "Button1"));
Assert.assertTrue(Control.isChecked(title, "Button1"));
// uncheck not exists checkbox
Assert.assertFalse(Control.uncheck(title,
"Button1" + System.currentTimeMillis()));
Assert.assertTrue(Control.isChecked(title, "Button1"));
} finally {
destroyDefaultDisplay(title);
}
}
@Test
public void getCurrentLine() {
final String title = "getCurrentLine - " + currentTimeMillis;
Assert.assertNull(Control.getCurrentLine(title, "Edit1"));
Thread thread = new Thread(new Runnable() {
public void run() {
// create frame
Display display = new Display();
Shell shell = new Shell(display);
shell.setText(title);
shell.setLocation(0, 0);
shell.setSize(400, 300);
org.eclipse.swt.widgets.Text text = new org.eclipse.swt.widgets.Text(
shell, SWT.MULTI);
text.setLocation(20, 20);
text.setSize(200, 100);
// show frame
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
});
// show frame
thread.start();
Assert.assertTrue(Win.wait(title, 3));
Assert.assertTrue(Win.activate(title));
try {
assertEquals(1, Control.getCurrentLine(title, "Edit1"));
Assert.assertTrue(Control.focus(title, "Edit1"));
Keyboard.send("{ENTER}");
assertEquals(2, Control.getCurrentLine(title, "Edit1"));
Keyboard.send("{ENTER}");
assertEquals(3, Control.getCurrentLine(title, "Edit1"));
Keyboard.send("{ENTER}");
assertEquals(4, Control.getCurrentLine(title, "Edit1"));
Keyboard.send("{BACKSPACE}");
assertEquals(3, Control.getCurrentLine(title, "Edit1"));
Keyboard.send("{BACKSPACE}");
assertEquals(2, Control.getCurrentLine(title, "Edit1"));
Keyboard.send("{BACKSPACE}");
assertEquals(1, Control.getCurrentLine(title, "Edit1"));
Keyboard.send("{BACKSPACE}");
assertEquals(1, Control.getCurrentLine(title, "Edit1"));
// get current line for not exists edit
Assert.assertNull(Control.getCurrentLine(title,
"Edit1" + System.currentTimeMillis()));
} finally {
destroyDefaultDisplay(title);
}
}
@Test
public void getCurrentCol() {
final String title = "getCurrentCol - " + currentTimeMillis;
Assert.assertNull(Control.getCurrentLine(title, "Edit1"));
Thread thread = new Thread(new Runnable() {
public void run() {
// create frame
Display display = new Display();
Shell shell = new Shell(display);
shell.setText(title);
shell.setLocation(0, 0);
shell.setSize(400, 300);
org.eclipse.swt.widgets.Text text = new org.eclipse.swt.widgets.Text(
shell, SWT.MULTI);
text.setLocation(20, 20);
text.setSize(200, 100);
// show frame
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
});
// show frame
thread.start();
Assert.assertTrue(Win.wait(title, 3));
Assert.assertTrue(Win.activate(title));
try {
assertEquals(1, Control.getCurrentCol(title, "Edit1"));
Assert.assertTrue(Control.focus(title, "Edit1"));
Keyboard.send("1");
assertEquals(2, Control.getCurrentCol(title, "Edit1"));
Keyboard.send("2");
assertEquals(3, Control.getCurrentCol(title, "Edit1"));
Keyboard.send("3");
assertEquals(4, Control.getCurrentCol(title, "Edit1"));
Keyboard.send("{BACKSPACE}");
assertEquals(3, Control.getCurrentCol(title, "Edit1"));
Keyboard.send("{BACKSPACE}");
assertEquals(2, Control.getCurrentCol(title, "Edit1"));
Keyboard.send("{BACKSPACE}");
assertEquals(1, Control.getCurrentCol(title, "Edit1"));
Keyboard.send("{BACKSPACE}");
assertEquals(1, Control.getCurrentCol(title, "Edit1"));
// get current line for not exists edit
Assert.assertNull(Control.getCurrentCol(title,
"Edit1" + System.currentTimeMillis()));
} finally {
destroyDefaultDisplay(title);
}
}
@Test
public void getCurrentSelection() {
final String title = "getCurrentSelection - " + currentTimeMillis;
Assert.assertNull(Control.getCurrentSelection(title, "ComboBox1"));
Assert.assertNull(Control.getCurrentSelection(title, "ListBox1"));
Thread thread = new Thread(new Runnable() {
public void run() {
// create frame
Display display = new Display();
Shell shell = new Shell(display);
shell.setText(title);
shell.setLocation(0, 0);
shell.setSize(400, 300);
String[] items = new String[] { "Java", "Lisp", "易语言", "",
"Tcl", "Smalltalk" };
Combo combo = new Combo(shell, SWT.DROP_DOWN);
combo.setItems(items);
combo.setLocation(20, 20);
combo.pack();
org.eclipse.swt.widgets.List list = new org.eclipse.swt.widgets.List(
shell, SWT.SINGLE);
list.setItems(items);
list.setLocation(150, 20);
list.pack();
org.eclipse.swt.widgets.Button button = new org.eclipse.swt.widgets.Button(
shell, SWT.PUSH);
button.setText("Button");
button.setLocation(280, 20);
button.pack();
// show frame
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
});
// show frame
thread.start();
Assert.assertTrue(Win.wait(title, 3));
try {
Assert.assertNotNull(Control.getHandle(title, "Button1"));
Assert.assertNull(Control.getCurrentSelection(title, "Button1"));
for (String control : new String[] { "ComboBox1", "ListBox1" }) {
int count = Control.getStringCount(title, control);
assertEquals(6, count);
Assert.assertTrue(Control
.setCurrentSelection(title, control, 0));
assertEquals("Java",
Control.getCurrentSelection(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 1));
assertEquals("Lisp",
Control.getCurrentSelection(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 2));
assertEquals("易语言", Control.getCurrentSelection(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 3));
assertEquals("", Control.getCurrentSelection(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 4));
assertEquals("Tcl", Control.getCurrentSelection(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 5));
assertEquals("Smalltalk",
Control.getCurrentSelection(title, control));
Assert.assertFalse(Control.setCurrentSelection(title, control,
6));
assertEquals("Smalltalk",
Control.getCurrentSelection(title, control));
Assert.assertFalse(Control.setCurrentSelection(title, control,
-2));
assertEquals("Smalltalk",
Control.getCurrentSelection(title, control));
Assert.assertFalse(Control.setCurrentSelection(title, control,
-1));
assertEquals("Smalltalk",
Control.getCurrentSelection(title, control));
// add string to dropdown
Assert.assertTrue(Control.addString(title, control,
"Visual Basic"));
assertEquals(7, Control.getStringCount(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 0));
assertEquals("Java",
Control.getCurrentSelection(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 1));
assertEquals("Lisp",
Control.getCurrentSelection(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 2));
assertEquals("易语言", Control.getCurrentSelection(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 3));
assertEquals("", Control.getCurrentSelection(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 4));
assertEquals("Tcl", Control.getCurrentSelection(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 5));
assertEquals("Smalltalk",
Control.getCurrentSelection(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 6));
assertEquals("Visual Basic",
Control.getCurrentSelection(title, control));
Assert.assertFalse(Control.setCurrentSelection(title, control,
7));
assertEquals("Visual Basic",
Control.getCurrentSelection(title, control));
Assert.assertFalse(Control.setCurrentSelection(title, control,
-2));
assertEquals("Visual Basic",
Control.getCurrentSelection(title, control));
Assert.assertFalse(Control.setCurrentSelection(title, control,
-1));
assertEquals("Visual Basic",
Control.getCurrentSelection(title, control));
// delete string from dropdown
Assert.assertTrue(Control.delString(title, control, 1));
assertEquals(6, Control.getStringCount(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 0));
assertEquals("Java",
Control.getCurrentSelection(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 1));
assertEquals("易语言", Control.getCurrentSelection(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 2));
assertEquals("", Control.getCurrentSelection(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 3));
assertEquals("Tcl", Control.getCurrentSelection(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 4));
assertEquals("Smalltalk",
Control.getCurrentSelection(title, control));
Assert.assertTrue(Control
.setCurrentSelection(title, control, 5));
assertEquals("Visual Basic",
Control.getCurrentSelection(title, control));
Assert.assertFalse(Control.setCurrentSelection(title, control,
6));
assertEquals("Visual Basic",
Control.getCurrentSelection(title, control));
Assert.assertFalse(Control.setCurrentSelection(title, control,
-2));
assertEquals("Visual Basic",
Control.getCurrentSelection(title, control));
Assert.assertFalse(Control.setCurrentSelection(title, control,
-1));
assertEquals("Visual Basic",
Control.getCurrentSelection(title, control));
// get item from not exists dropdown
Assert.assertNull(Control.getCurrentSelection(title, control
+ System.currentTimeMillis()));
}
} finally {
destroyDefaultDisplay(title);
}
}
@Test
public void getLineCount() {
final String title = "getLineCount - " + currentTimeMillis;
Assert.assertNull(Control.getLineCount(title, "Edit1"));
Thread thread = new Thread(new Runnable() {
public void run() {
// create frame
Display display = new Display();
Shell shell = new Shell(display);
shell.setText(title);
shell.setLocation(0, 0);
shell.setSize(400, 300);
org.eclipse.swt.widgets.Text text = new org.eclipse.swt.widgets.Text(
shell, SWT.MULTI);
text.setLocation(20, 20);
text.setSize(200, 100);
// show frame
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
});
// show frame
thread.start();
Assert.assertTrue(Win.wait(title, 3));
Assert.assertTrue(Win.activate(title));
try {
assertEquals(1, Control.getLineCount(title, "Edit1"));
Assert.assertTrue(Control.focus(title, "Edit1"));
Keyboard.send("{ENTER}");
assertEquals(2, Control.getLineCount(title, "Edit1"));
Keyboard.send("{ENTER}");
assertEquals(3, Control.getLineCount(title, "Edit1"));
Keyboard.send("{ENTER}");
assertEquals(4, Control.getLineCount(title, "Edit1"));
Keyboard.send("{BACKSPACE}");
assertEquals(3, Control.getLineCount(title, "Edit1"));
Keyboard.send("{BACKSPACE}");
assertEquals(2, Control.getLineCount(title, "Edit1"));
Keyboard.send("{BACKSPACE}");
assertEquals(1, Control.getLineCount(title, "Edit1"));
Keyboard.send("{BACKSPACE}");
assertEquals(1, Control.getCurrentLine(title, "Edit1"));
Keyboard.send("{ENTER}");
assertEquals(2, Control.getLineCount(title, "Edit1"));
Keyboard.send("{ENTER}");
assertEquals(3, Control.getLineCount(title, "Edit1"));
Keyboard.send("{ENTER}");
assertEquals(4, Control.getLineCount(title, "Edit1"));
Keyboard.send("{LEFT}");
assertEquals(4, Control.getLineCount(title, "Edit1"));
assertEquals(3, Control.getCurrentLine(title, "Edit1"));
Keyboard.send("{LEFT}");
assertEquals(4, Control.getLineCount(title, "Edit1"));
assertEquals(2, Control.getCurrentLine(title, "Edit1"));
Keyboard.send("{LEFT}");
assertEquals(4, Control.getLineCount(title, "Edit1"));
assertEquals(1, Control.getCurrentLine(title, "Edit1"));
// get current line for not exists edit
Assert.assertNull(Control.getLineCount(title,
"Edit1" + System.currentTimeMillis()));
} finally {
destroyDefaultDisplay(title);
}
}
@Test
public void getLine() {
final String title = "getLine - " + currentTimeMillis;
Assert.assertNull(Control.getLine(title, "Edit1", 1));
Thread thread = new Thread(new Runnable() {
public void run() {
// create frame
Display display = new Display();
Shell shell = new Shell(display);
shell.setText(title);
shell.setLocation(0, 0);
shell.setSize(400, 300);
org.eclipse.swt.widgets.Text text = new org.eclipse.swt.widgets.Text(
shell, SWT.MULTI);
text.setLocation(20, 20);
text.setSize(200, 100);
// show frame
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
});
// show frame
thread.start();
Assert.assertTrue(Win.wait(title, 3));
Assert.assertTrue(Win.activate(title));
try {
Assert.assertTrue(Control.focus(title, "Edit1"));
assertEquals(1, Control.getLineCount(title, "Edit1"));
assertEquals("", Control.getLine(title, "Edit1", 1));
Keyboard.send("12");
assertEquals("12", Control.getLine(title, "Edit1", 1));
Keyboard.send("{ENTER}");
assertEquals(2, Control.getLineCount(title, "Edit1"));
assertEquals("12", Control.getLine(title, "Edit1", 1));
assertEquals("", Control.getLine(title, "Edit1", 2));
Keyboard.send("34");
assertEquals("34", Control.getLine(title, "Edit1", 2));
Keyboard.send("{ENTER}");
assertEquals(3, Control.getLineCount(title, "Edit1"));
assertEquals("12", Control.getLine(title, "Edit1", 1));
assertEquals("34", Control.getLine(title, "Edit1", 2));
assertEquals("", Control.getLine(title, "Edit1", 3));
Keyboard.send("56");
assertEquals("56", Control.getLine(title, "Edit1", 3));
Keyboard.send("{BACKSPACE}");
assertEquals(3, Control.getLineCount(title, "Edit1"));
assertEquals("5", Control.getLine(title, "Edit1", 3));
Keyboard.send("{BACKSPACE}");
assertEquals(3, Control.getLineCount(title, "Edit1"));
assertEquals("", Control.getLine(title, "Edit1", 3));
Keyboard.send("{BACKSPACE}");
assertEquals(2, Control.getLineCount(title, "Edit1"));
assertEquals("34", Control.getLine(title, "Edit1", 2));
Keyboard.send("{BACKSPACE}");
assertEquals(2, Control.getLineCount(title, "Edit1"));
assertEquals("3", Control.getLine(title, "Edit1", 2));
Keyboard.send("{BACKSPACE}");
assertEquals(2, Control.getLineCount(title, "Edit1"));
assertEquals("", Control.getLine(title, "Edit1", 2));
assertEquals(null, Control.getLine(title, "Edit1", 0));
assertEquals("12", Control.getLine(title, "Edit1", 1));
assertEquals(null, Control.getLine(title, "Edit1", 3));
// get line 1 for not exists edit
assertEquals(null, Control.getLine(title,
"Edit1" + System.currentTimeMillis(), 1));
} finally {
destroyDefaultDisplay(title);
}
}
@Test
public void getSelected() {
final String title = "getSelected - " + currentTimeMillis;
Assert.assertNull(Control.getSelected(title, "Edit1"));
final ObjectHolder textHolder = new ObjectHolder();
Thread thread = new Thread(new Runnable() {
public void run() {
// create frame
Display display = new Display();
Shell shell = new Shell(display);
shell.setText(title);
shell.setLocation(0, 0);
shell.setSize(400, 300);
org.eclipse.swt.widgets.Text text = new org.eclipse.swt.widgets.Text(
shell, SWT.MULTI);
text.setLocation(20, 20);
text.setSize(200, 100);
textHolder.value = text;
// show frame
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
});
// show frame
thread.start();
Assert.assertTrue(Win.wait(title, 3));
try {
final org.eclipse.swt.widgets.Text text = (org.eclipse.swt.widgets.Text) textHolder.value;
assertEquals("", Control.getSelected(title, "Edit1"));
Assert.assertTrue(Control.focus(title, "Edit1"));
assertEquals("", Control.getSelected(title, "Edit1"));
Keyboard.send("12345");
assertEquals("12345", Control.getLine(title, "Edit1", 1));
assertEquals("", Control.getSelected(title, "Edit1"));
Keyboard.send("{ENTER}");
assertEquals(2, Control.getLineCount(title, "Edit1"));
Keyboard.send("67890");
assertEquals("67890", Control.getLine(title, "Edit1", 2));
assertEquals("", Control.getSelected(title, "Edit1"));
Display display = Display.getDefault();
display.syncExec(new Runnable() {
public void run() {
text.setSelection(0, 3);
}
});
sleep(500);
assertEquals("123", Control.getSelected(title, "Edit1"));
display.syncExec(new Runnable() {
public void run() {
text.setSelection(1, 3);
}
});
sleep(500);
assertEquals("23", Control.getSelected(title, "Edit1"));
display.syncExec(new Runnable() {
public void run() {
text.setSelection(-1, 3);
}
});
sleep(500);
assertEquals("", Control.getSelected(title, "Edit1"));
display.syncExec(new Runnable() {
public void run() {
text.setSelection(1, 30);
}
});
sleep(500);
assertEquals("2345\r\n67890", Control.getSelected(title, "Edit1"));
display.syncExec(new Runnable() {
public void run() {
text.setSelection(1, 4);
}
});
sleep(500);
assertEquals("234", Control.getSelected(title, "Edit1"));
display.syncExec(new Runnable() {
public void run() {
text.setSelection(1, 5);
}
});
sleep(500);
assertEquals("2345", Control.getSelected(title, "Edit1"));
display.syncExec(new Runnable() {
public void run() {
text.setSelection(1, 6);
}
});
sleep(500);
assertEquals("2345\r", Control.getSelected(title, "Edit1"));
display.syncExec(new Runnable() {
public void run() {
text.setSelection(1, 7);
}
});
sleep(500);
assertEquals("2345\r\n", Control.getSelected(title, "Edit1"));
display.syncExec(new Runnable() {
public void run() {
text.setSelection(1, 8);
}
});
sleep(500);
assertEquals("2345\r\n6", Control.getSelected(title, "Edit1"));
// get selected text for not exists edit
assertEquals(
null,
Control.getSelected(title,
"Edit1" + System.currentTimeMillis()));
} finally {
destroyDefaultDisplay(title);
}
}
@Test
public void editPaste() {
final String title = "editPaste - " + currentTimeMillis;
Assert.assertFalse(Control.editPaste(title, "Edit1", "Hello"));
Thread thread = new Thread(new Runnable() {
public void run() {
// create frame
Display display = new Display();
Shell shell = new Shell(display);
shell.setText(title);
shell.setLocation(0, 0);
shell.setSize(400, 300);
org.eclipse.swt.widgets.Text text = new org.eclipse.swt.widgets.Text(
shell, SWT.MULTI);
text.setLocation(20, 20);
text.setSize(200, 100);
// show frame
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
});
// show frame
thread.start();
Assert.assertTrue(Win.wait(title, 3));
Assert.assertTrue(Win.activate(title));
try {
Assert.assertTrue(Control.focus(title, "Edit1"));
assertEquals("", Control.getSelected(title, "Edit1"));
Keyboard.send("12345");
assertEquals(1, Control.getLineCount(title, "Edit1"));
assertEquals("12345", Control.getLine(title, "Edit1", 1));
Assert.assertTrue(Control.editPaste(title, "Edit1",
"Hello\r\nWorld"));
assertEquals(2, Control.getLineCount(title, "Edit1"));
assertEquals("12345Hello", Control.getLine(title, "Edit1", 1));
assertEquals("World", Control.getLine(title, "Edit1", 2));
Assert.assertTrue(Control.editPaste(title, "Edit1", "123"));
assertEquals(2, Control.getLineCount(title, "Edit1"));
assertEquals("12345Hello", Control.getLine(title, "Edit1", 1));
assertEquals("World123", Control.getLine(title, "Edit1", 2));
Keyboard.send("{LEFT}");
Keyboard.send("{LEFT}");
Keyboard.send("{LEFT}");
Assert.assertTrue(Control.editPaste(title, "Edit1", "aBc"));
assertEquals(2, Control.getLineCount(title, "Edit1"));
assertEquals("12345Hello", Control.getLine(title, "Edit1", 1));
assertEquals("WorldaBc123", Control.getLine(title, "Edit1", 2));
Assert.assertTrue(Control.editPaste(title, "Edit1", null));
assertEquals(2, Control.getLineCount(title, "Edit1"));
assertEquals("12345Hello", Control.getLine(title, "Edit1", 1));
assertEquals("WorldaBc123", Control.getLine(title, "Edit1", 2));
Assert.assertTrue(Control.editPaste(title, "Edit1", ""));
assertEquals(2, Control.getLineCount(title, "Edit1"));
assertEquals("12345Hello", Control.getLine(title, "Edit1", 1));
assertEquals("WorldaBc123", Control.getLine(title, "Edit1", 2));
Assert.assertTrue(Control.editPaste(title, "Edit1", " "));
assertEquals(2, Control.getLineCount(title, "Edit1"));
assertEquals("12345Hello", Control.getLine(title, "Edit1", 1));
assertEquals("WorldaBc 123", Control.getLine(title, "Edit1", 2));
// past text to not exists edit
Assert.assertFalse(Control.editPaste(title,
"Edit1" + System.currentTimeMillis(), "xxx"));
} finally {
destroyDefaultDisplay(title);
}
}
@Test
public void currentTab() {
final String title = "currentTab - " + currentTimeMillis;
Assert.assertNull(Control.currentTab(title, "SysTabControl321"));
Thread thread = new Thread(new Runnable() {
public void run() {
// create frame
Display display = new Display();
Shell shell = new Shell(display);
shell.setText(title);
shell.setLocation(0, 0);
shell.setSize(400, 300);
org.eclipse.swt.widgets.TabFolder tabFolder = new org.eclipse.swt.widgets.TabFolder(
shell, SWT.NULL);
tabFolder.setLocation(20, 20);
tabFolder.setSize(300, 200);
// tab 1
org.eclipse.swt.widgets.TabItem tabItem1 = new org.eclipse.swt.widgets.TabItem(
tabFolder, SWT.NULL);
tabItem1.setText("Tab 1");
org.eclipse.swt.widgets.Text text1 = new org.eclipse.swt.widgets.Text(
tabFolder, SWT.BORDER);
text1.setText("This is tab 1.");
tabItem1.setControl(text1);
// tab 2
org.eclipse.swt.widgets.TabItem tabItem2 = new org.eclipse.swt.widgets.TabItem(
tabFolder, SWT.NULL);
tabItem2.setText("标签 2");
org.eclipse.swt.widgets.Text text2 = new org.eclipse.swt.widgets.Text(
tabFolder, SWT.BORDER);
text2.setText("This is tab 2.");
tabItem2.setControl(text2);
// tab 3
org.eclipse.swt.widgets.TabItem tabItem3 = new org.eclipse.swt.widgets.TabItem(
tabFolder, SWT.NULL);
tabItem3.setText("");
org.eclipse.swt.widgets.Text text3 = new org.eclipse.swt.widgets.Text(
tabFolder, SWT.BORDER);
text3.setText("This is tab 3.");
tabItem3.setControl(text3);
// tab 3
org.eclipse.swt.widgets.TabItem tabItem4 = new org.eclipse.swt.widgets.TabItem(
tabFolder, SWT.NULL);
tabItem4.setText("Tab 4");
org.eclipse.swt.widgets.Text text4 = new org.eclipse.swt.widgets.Text(
tabFolder, SWT.BORDER);
text4.setText("This is tab 4.");
tabItem4.setControl(text4);
// show frame
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
});
// show frame
thread.start();
Assert.assertTrue(Win.wait(title, 3));
try {
assertEquals(1, Control.currentTab(title, "SysTabControl321"));
Assert.assertTrue(Control.tabRight(title, "SysTabControl321"));
assertEquals(2, Control.currentTab(title, "SysTabControl321"));
Assert.assertTrue(Control.tabRight(title, "SysTabControl321"));
assertEquals(3, Control.currentTab(title, "SysTabControl321"));
Assert.assertTrue(Control.tabRight(title, "SysTabControl321"));
assertEquals(4, Control.currentTab(title, "SysTabControl321"));
Assert.assertTrue(Control.tabRight(title, "SysTabControl321"));
assertEquals(4, Control.currentTab(title, "SysTabControl321"));
Assert.assertTrue(Control.tabLeft(title, "SysTabControl321"));
assertEquals(3, Control.currentTab(title, "SysTabControl321"));
Assert.assertTrue(Control.tabLeft(title, "SysTabControl321"));
assertEquals(2, Control.currentTab(title, "SysTabControl321"));
Assert.assertTrue(Control.tabLeft(title, "SysTabControl321"));
assertEquals(1, Control.currentTab(title, "SysTabControl321"));
Assert.assertTrue(Control.tabLeft(title, "SysTabControl321"));
assertEquals(1, Control.currentTab(title, "SysTabControl321"));
// get current tab for not exists SysTabControl32
Assert.assertNull(Control.currentTab(title, "SysTabControl321"
+ System.currentTimeMillis()));
} finally {
destroyDefaultDisplay(title);
}
}
@Test
public void tabRight() {
final String title = "tabRight - " + currentTimeMillis;
Assert.assertFalse(Control.tabRight(title, "SysTabControl321"));
Thread thread = new Thread(new Runnable() {
public void run() {
// create frame
Display display = new Display();
Shell shell = new Shell(display);
shell.setText(title);
shell.setLocation(0, 0);
shell.setSize(400, 300);
org.eclipse.swt.widgets.TabFolder tabFolder = new org.eclipse.swt.widgets.TabFolder(
shell, SWT.NULL);
tabFolder.setLocation(20, 20);
tabFolder.setSize(300, 200);
// tab 1
org.eclipse.swt.widgets.TabItem tabItem1 = new org.eclipse.swt.widgets.TabItem(
tabFolder, SWT.NULL);
tabItem1.setText("Tab 1");
org.eclipse.swt.widgets.Text text1 = new org.eclipse.swt.widgets.Text(
tabFolder, SWT.BORDER);
text1.setText("This is tab 1.");
tabItem1.setControl(text1);
// tab 2
org.eclipse.swt.widgets.TabItem tabItem2 = new org.eclipse.swt.widgets.TabItem(
tabFolder, SWT.NULL);
tabItem2.setText("标签 2");
org.eclipse.swt.widgets.Text text2 = new org.eclipse.swt.widgets.Text(
tabFolder, SWT.BORDER);
text2.setText("This is tab 2.");
tabItem2.setControl(text2);
// tab 3
org.eclipse.swt.widgets.TabItem tabItem3 = new org.eclipse.swt.widgets.TabItem(
tabFolder, SWT.NULL);
tabItem3.setText("");
org.eclipse.swt.widgets.Text text3 = new org.eclipse.swt.widgets.Text(
tabFolder, SWT.BORDER);
text3.setText("This is tab 3.");
tabItem3.setControl(text3);
// tab 3
org.eclipse.swt.widgets.TabItem tabItem4 = new org.eclipse.swt.widgets.TabItem(
tabFolder, SWT.NULL);
tabItem4.setText("Tab 4");
org.eclipse.swt.widgets.Text text4 = new org.eclipse.swt.widgets.Text(
tabFolder, SWT.BORDER);
text4.setText("This is tab 4.");
tabItem4.setControl(text4);
// show frame
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
});
// show frame
thread.start();
Assert.assertTrue(Win.wait(title, 3));
try {
assertEquals(1, Control.currentTab(title, "SysTabControl321"));
Assert.assertTrue(Control.tabRight(title, "SysTabControl321"));
assertEquals(2, Control.currentTab(title, "SysTabControl321"));
Assert.assertTrue(Control.tabRight(title, "SysTabControl321"));
assertEquals(3, Control.currentTab(title, "SysTabControl321"));
Assert.assertTrue(Control.tabRight(title, "SysTabControl321"));
assertEquals(4, Control.currentTab(title, "SysTabControl321"));
Assert.assertTrue(Control.tabRight(title, "SysTabControl321"));
assertEquals(4, Control.currentTab(title, "SysTabControl321"));
Assert.assertTrue(Control.tabLeft(title, "SysTabControl321"));
assertEquals(3, Control.currentTab(title, "SysTabControl321"));
Assert.assertTrue(Control.tabLeft(title, "SysTabControl321"));
assertEquals(2, Control.currentTab(title, "SysTabControl321"));
Assert.assertTrue(Control.tabLeft(title, "SysTabControl321"));
assertEquals(1, Control.currentTab(title, "SysTabControl321"));
Assert.assertTrue(Control.tabLeft(title, "SysTabControl321"));
assertEquals(1, Control.currentTab(title, "SysTabControl321"));
// Moves to the next tab to the right of a not exists
// SysTabControl32
Assert.assertFalse(Control.tabRight(title, "SysTabControl321"
+ System.currentTimeMillis()));
} finally {
destroyDefaultDisplay(title);
}
}
@Test
public void tabLeft() {
final String title = "tabLeft - " + currentTimeMillis;
Assert.assertFalse(Control.tabLeft(title, "SysTabControl321"));
Thread thread = new Thread(new Runnable() {
public void run() {
// create frame
Display display = new Display();
Shell shell = new Shell(display);
shell.setText(title);
shell.setLocation(0, 0);
shell.setSize(400, 300);
org.eclipse.swt.widgets.TabFolder tabFolder = new org.eclipse.swt.widgets.TabFolder(
shell, SWT.NULL);
tabFolder.setLocation(20, 20);
tabFolder.setSize(300, 200);
// tab 1
org.eclipse.swt.widgets.TabItem tabItem1 = new org.eclipse.swt.widgets.TabItem(
tabFolder, SWT.NULL);
tabItem1.setText("Tab 1");
org.eclipse.swt.widgets.Text text1 = new org.eclipse.swt.widgets.Text(
tabFolder, SWT.BORDER);
text1.setText("This is tab 1.");
tabItem1.setControl(text1);
// tab 2
org.eclipse.swt.widgets.TabItem tabItem2 = new org.eclipse.swt.widgets.TabItem(
tabFolder, SWT.NULL);
tabItem2.setText("标签 2");
org.eclipse.swt.widgets.Text text2 = new org.eclipse.swt.widgets.Text(
tabFolder, SWT.BORDER);
text2.setText("This is tab 2.");
tabItem2.setControl(text2);
// tab 3
org.eclipse.swt.widgets.TabItem tabItem3 = new org.eclipse.swt.widgets.TabItem(
tabFolder, SWT.NULL);
tabItem3.setText("");
org.eclipse.swt.widgets.Text text3 = new org.eclipse.swt.widgets.Text(
tabFolder, SWT.BORDER);
text3.setText("This is tab 3.");
tabItem3.setControl(text3);
// tab 3
org.eclipse.swt.widgets.TabItem tabItem4 = new org.eclipse.swt.widgets.TabItem(
tabFolder, SWT.NULL);
tabItem4.setText("Tab 4");
org.eclipse.swt.widgets.Text text4 = new org.eclipse.swt.widgets.Text(
tabFolder, SWT.BORDER);
text4.setText("This is tab 4.");
tabItem4.setControl(text4);
// show frame
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
});
// show frame
thread.start();
Assert.assertTrue(Win.wait(title, 3));
try {
assertEquals(1, Control.currentTab(title, "SysTabControl321"));
Assert.assertTrue(Control.tabRight(title, "SysTabControl321"));
assertEquals(2, Control.currentTab(title, "SysTabControl321"));
Assert.assertTrue(Control.tabRight(title, "SysTabControl321"));
assertEquals(3, Control.currentTab(title, "SysTabControl321"));
Assert.assertTrue(Control.tabRight(title, "SysTabControl321"));
assertEquals(4, Control.currentTab(title, "SysTabControl321"));
Assert.assertTrue(Control.tabRight(title, "SysTabControl321"));
assertEquals(4, Control.currentTab(title, "SysTabControl321"));
Assert.assertTrue(Control.tabLeft(title, "SysTabControl321"));
assertEquals(3, Control.currentTab(title, "SysTabControl321"));
Assert.assertTrue(Control.tabLeft(title, "SysTabControl321"));
assertEquals(2, Control.currentTab(title, "SysTabControl321"));
Assert.assertTrue(Control.tabLeft(title, "SysTabControl321"));
assertEquals(1, Control.currentTab(title, "SysTabControl321"));
Assert.assertTrue(Control.tabLeft(title, "SysTabControl321"));
assertEquals(1, Control.currentTab(title, "SysTabControl321"));
// Moves to the next tab to the left of a not exists SysTabControl32
Assert.assertFalse(Control.tabLeft(title, "SysTabControl321"
+ System.currentTimeMillis()));
} finally {
destroyDefaultDisplay(title);
}
}
@Test
public void disable() {
// run notepad
int pid = runNotepad();
Assert.assertTrue(Control.isEnabled(NOTEPAD_TITLE, "Edit1"));
// disable notepad
Assert.assertTrue(Control.disable(NOTEPAD_TITLE, "Edit1"));
Assert.assertFalse(Control.isEnabled(NOTEPAD_TITLE, "Edit1"));
// enable notepad
Assert.assertTrue(Control.enable(NOTEPAD_TITLE, "Edit1"));
Assert.assertTrue(Control.isEnabled(NOTEPAD_TITLE, "Edit1"));
// disable not exists control
Assert.assertFalse(Control.disable(NOTEPAD_TITLE,
"Edit1" + System.currentTimeMillis()));
Assert.assertTrue(Control.isEnabled(NOTEPAD_TITLE, "Edit1"));
// close process by pid
closeNotepad(pid);
// disable not exists control
Assert.assertFalse(Control.disable(NOTEPAD_TITLE, "Edit1"));
}
@Test
public void enable() {
// run notepad
int pid = runNotepad();
Assert.assertTrue(Control.isEnabled(NOTEPAD_TITLE, "Edit1"));
// disable notepad
Assert.assertTrue(Control.disable(NOTEPAD_TITLE, "Edit1"));
Assert.assertFalse(Control.isEnabled(NOTEPAD_TITLE, "Edit1"));
// enable notepad
Assert.assertTrue(Control.enable(NOTEPAD_TITLE, "Edit1"));
Assert.assertTrue(Control.isEnabled(NOTEPAD_TITLE, "Edit1"));
// disable notepad
Assert.assertTrue(Control.disable(NOTEPAD_TITLE, "Edit1"));
// enable not exists control
Assert.assertFalse(Control.enable(NOTEPAD_TITLE,
"Edit1" + System.currentTimeMillis()));
Assert.assertFalse(Control.isEnabled(NOTEPAD_TITLE, "Edit1"));
// close process by pid
closeNotepad(pid);
// enable not exists control
Assert.assertFalse(Control.enable(NOTEPAD_TITLE, "Edit1"));
}
@Test
public void focus() {
String title = "controlFocus - " + currentTimeMillis;
Frame frame = new Frame(title);
frame.setLayout(new BorderLayout());
frame.setBounds(0, 0, 400, 300);
TextArea textArea1 = new TextArea();
frame.add(textArea1, BorderLayout.NORTH);
TextArea textArea2 = new TextArea();
frame.add(textArea2, BorderLayout.CENTER);
// show frame
frame.setVisible(true);
Assert.assertTrue(Win.wait(title, 3));
Assert.assertTrue(Win.activate(title));
try {
Assert.assertTrue(Control.focus(title, "RichEdit20W1"));
assertEquals("RichEdit20W1", Control.getFocus(title));
Assert.assertTrue(Control.focus(title, "RichEdit20W2"));
assertEquals("RichEdit20W2", Control.getFocus(title));
Assert.assertTrue(Control.focus(title, "RichEdit20W1"));
assertEquals("RichEdit20W1", Control.getFocus(title));
Assert.assertFalse(Control.focus(title,
"RichEdit20W2" + System.currentTimeMillis()));
assertEquals("RichEdit20W1", Control.getFocus(title));
} finally {
// destroy frame
destroyFrame(frame);
}
sleep(1000);
Assert.assertFalse(Control.focus(title, "RichEdit20W2"));
// run notepad
int pid = runNotepad();
Assert.assertTrue(Control.focus(NOTEPAD_TITLE, "Edit1"));
// minimize notepad
Assert.assertTrue(Win.minimize(NOTEPAD_TITLE));
Assert.assertTrue(Win.minimized(NOTEPAD_TITLE));
// focus notepad
Assert.assertFalse(Control.focus(NOTEPAD_TITLE, "Edit1"));
Assert.assertTrue(Win.minimized(NOTEPAD_TITLE));
// restore notepad
Assert.assertTrue(Win.restore(NOTEPAD_TITLE));
Assert.assertFalse(Win.minimized(NOTEPAD_TITLE));
// focus notepad
Assert.assertFalse(Control.focus(NOTEPAD_TITLE, "Edit1"));
// activate notepad
Assert.assertTrue(Win.activate(NOTEPAD_TITLE));
Assert.assertTrue(Control.focus(NOTEPAD_TITLE, "Edit1"));
// focus not exists control
Assert.assertFalse(Control.focus(NOTEPAD_TITLE,
"Edit1" + System.currentTimeMillis()));
// close process by pid
closeNotepad(pid);
// focus not exists control
Assert.assertFalse(Control.focus(NOTEPAD_TITLE, "Edit1"));
}
@Test
public void getFocus() {
// run notepad
int pid = runNotepad();
assertEquals("Edit1", Control.getFocus(NOTEPAD_TITLE));
// get focus control for not exists window
Assert.assertNull(Control.getFocus(NOTEPAD_TITLE
+ System.currentTimeMillis()));
// close process by pid
closeNotepad(pid);
// get focus control for not exists window
Assert.assertNull(Control.getFocus(NOTEPAD_TITLE));
}
@Test
public void getHandle() {
// run notepad
int pid = runNotepad();
// get handle
Assert.assertTrue(StringUtils.isNotBlank(Control.getHandle(
NOTEPAD_TITLE, "Edit1")));
// get handle for not exists control
Assert.assertNull(Control.getHandle(NOTEPAD_TITLE,
"Edit1" + System.currentTimeMillis()));
// close process by pid
closeNotepad(pid);
// get handle for not exists control
Assert.assertNull(Control.getHandle(NOTEPAD_TITLE, "Edit1"));
}
@Test
public void getHeight() {
final String title = "getHeight - " + currentTimeMillis;
Thread thread = new Thread(new Runnable() {
public void run() {
User32Ext.INSTANCE.MessageBox(null, "How are you?", title, 0);
}
});
thread.start();
Assert.assertTrue(Win.wait(title, 3));
int width = Control.getWidth(title, "Button1");
int height = Control.getHeight(title, "Button1");
Assert.assertTrue(width > 0);
Assert.assertTrue(height > 0);
// move button to (10, 0)
Assert.assertTrue(Control.move(title, "Button1", 10, 0));
assertEquals(10, Control.getPosX(title, "Button1").intValue());
assertEquals(0, Control.getPosY(title, "Button1").intValue());
assertEquals(width, Control.getWidth(title, "Button1"));
assertEquals(height, Control.getHeight(title, "Button1"));
// move button to (20, 10)
Assert.assertTrue(Control.move(title, "Button1", 20, 10, width + 10,
height + 5));
assertEquals(20, Control.getPosX(title, "Button1").intValue());
assertEquals(10, Control.getPosY(title, "Button1").intValue());
assertEquals(width + 10, Control.getWidth(title, "Button1"));
assertEquals(height + 5, Control.getHeight(title, "Button1"));
// move button to (-100, -50)
Assert.assertTrue(Control.move(title, "Button1", -100, -50));
assertEquals(-100, Control.getPosX(title, "Button1").intValue());
assertEquals(-50, Control.getPosY(title, "Button1").intValue());
assertEquals(width + 10, Control.getWidth(title, "Button1"));
assertEquals(height + 5, Control.getHeight(title, "Button1"));
// get not exists button's height
Assert.assertNull(Control.getHeight(title,
"Button1" + System.currentTimeMillis()));
// close message box
Assert.assertTrue(Win.close(title));
// get not exists button's height
Assert.assertNull(Control.getHeight(title, "Button1"));
}
@Test
public void getWidth() {
final String title = "getWidth - " + currentTimeMillis;
Thread thread = new Thread(new Runnable() {
public void run() {
User32Ext.INSTANCE.MessageBox(null, "How are you?", title, 0);
}
});
thread.start();
Assert.assertTrue(Win.wait(title, 3));
int width = Control.getWidth(title, "Button1");
int height = Control.getHeight(title, "Button1");
Assert.assertTrue(width > 0);
Assert.assertTrue(height > 0);
// move button to (10, 0)
Assert.assertTrue(Control.move(title, "Button1", 10, 0));
assertEquals(10, Control.getPosX(title, "Button1").intValue());
assertEquals(0, Control.getPosY(title, "Button1").intValue());
assertEquals(width, Control.getWidth(title, "Button1"));
assertEquals(height, Control.getHeight(title, "Button1"));
// move button to (20, 10)
Assert.assertTrue(Control.move(title, "Button1", 20, 10, width + 10,
height + 5));
assertEquals(20, Control.getPosX(title, "Button1").intValue());
assertEquals(10, Control.getPosY(title, "Button1").intValue());
assertEquals(width + 10, Control.getWidth(title, "Button1"));
assertEquals(height + 5, Control.getHeight(title, "Button1"));
// move button to (-100, -50)
Assert.assertTrue(Control.move(title, "Button1", -100, -50));
assertEquals(-100, Control.getPosX(title, "Button1").intValue());
assertEquals(-50, Control.getPosY(title, "Button1").intValue());
assertEquals(width + 10, Control.getWidth(title, "Button1"));
assertEquals(height + 5, Control.getHeight(title, "Button1"));
// get not exists button's width
Assert.assertNull(Control.getWidth(title,
"Button1" + System.currentTimeMillis()));
// close message box
Assert.assertTrue(Win.close(title));
// get not exists button's width
Assert.assertNull(Control.getWidth(title, "Button1"));
}
@Test
public void getPosX() {
final String title = "getPosX - " + currentTimeMillis;
Thread thread = new Thread(new Runnable() {
public void run() {
User32Ext.INSTANCE.MessageBox(null, "How are you?", title, 0);
}
});
thread.start();
Assert.assertTrue(Win.wait(title, 3));
int width = Control.getWidth(title, "Button1");
int height = Control.getHeight(title, "Button1");
Assert.assertTrue(width > 0);
Assert.assertTrue(height > 0);
// move button to (10, 0)
Assert.assertTrue(Control.move(title, "Button1", 10, 0));
assertEquals(10, Control.getPosX(title, "Button1").intValue());
assertEquals(0, Control.getPosY(title, "Button1").intValue());
assertEquals(width, Control.getWidth(title, "Button1"));
assertEquals(height, Control.getHeight(title, "Button1"));
// move button to (20, 10)
Assert.assertTrue(Control.move(title, "Button1", 20, 10));
assertEquals(20, Control.getPosX(title, "Button1").intValue());
assertEquals(10, Control.getPosY(title, "Button1").intValue());
assertEquals(width, Control.getWidth(title, "Button1"));
assertEquals(height, Control.getHeight(title, "Button1"));
// move button to (-100, -50)
Assert.assertTrue(Control.move(title, "Button1", -100, -50));
assertEquals(-100, Control.getPosX(title, "Button1").intValue());
assertEquals(-50, Control.getPosY(title, "Button1").intValue());
assertEquals(width, Control.getWidth(title, "Button1"));
assertEquals(height, Control.getHeight(title, "Button1"));
// get not exists button's position
Assert.assertNull(Control.getPosX(title,
"Button1" + System.currentTimeMillis()));
// close message box
Assert.assertTrue(Win.close(title));
// get not exists button's position
Assert.assertNull(Control.getPosX(title, "Button1"));
}
@Test
public void getPosY() {
final String title = "getPosY - " + currentTimeMillis;
Thread thread = new Thread(new Runnable() {
public void run() {
User32Ext.INSTANCE.MessageBox(null, "How are you?", title, 0);
}
});
thread.start();
Assert.assertTrue(Win.wait(title, 3));
int width = Control.getWidth(title, "Button1");
int height = Control.getHeight(title, "Button1");
Assert.assertTrue(width > 0);
Assert.assertTrue(height > 0);
// move button to (10, 0)
Assert.assertTrue(Control.move(title, "Button1", 10, 0));
assertEquals(10, Control.getPosX(title, "Button1").intValue());
assertEquals(0, Control.getPosY(title, "Button1").intValue());
assertEquals(width, Control.getWidth(title, "Button1"));
assertEquals(height, Control.getHeight(title, "Button1"));
// move button to (20, 10)
Assert.assertTrue(Control.move(title, "Button1", 20, 10));
assertEquals(20, Control.getPosX(title, "Button1").intValue());
assertEquals(10, Control.getPosY(title, "Button1").intValue());
assertEquals(width, Control.getWidth(title, "Button1"));
assertEquals(height, Control.getHeight(title, "Button1"));
// move button to (-100, -50)
Assert.assertTrue(Control.move(title, "Button1", -100, -50));
assertEquals(-100, Control.getPosX(title, "Button1").intValue());
assertEquals(-50, Control.getPosY(title, "Button1").intValue());
assertEquals(width, Control.getWidth(title, "Button1"));
assertEquals(height, Control.getHeight(title, "Button1"));
// get not exists button's position
Assert.assertNull(Control.getPosY(title,
"Button1" + System.currentTimeMillis()));
// close message box
Assert.assertTrue(Win.close(title));
// get not exists button's position
Assert.assertNull(Control.getPosY(title, "Button1"));
}
@Test
public void getText() {
// run notepad
int pid = runNotepad();
assertEquals("", Control.getText(NOTEPAD_TITLE, "", "Edit1"));
Assert.assertTrue(Control.setText(NOTEPAD_TITLE, "Edit1", "Hello"));
assertEquals("Hello", Control.getText(NOTEPAD_TITLE, "Edit1"));
Assert.assertTrue(Control.setText(NOTEPAD_TITLE, "Edit1", "World"));
assertEquals("World", Control.getText(NOTEPAD_TITLE, "Edit1"));
Assert.assertTrue(Control.setText(NOTEPAD_TITLE, "Edit1", ""));
assertEquals("", Control.getText(NOTEPAD_TITLE, "Edit1"));
Assert.assertNull(Control.getText(NOTEPAD_TITLE,
"Edit1" + System.currentTimeMillis()));
// close process by pid
closeNotepad(pid);
}
@Test
public void hide() {
final String title = "Control.hide - " + currentTimeMillis;
Thread thread = new Thread(new Runnable() {
public void run() {
User32Ext.INSTANCE.MessageBox(null, "How are you?", title, 0);
}
});
thread.start();
Assert.assertTrue(Win.wait(title, 3));
assertEquals(MESSAGE_BOX_OK_BUTTON_TEXT + "\nHow are you?\n",
Win.getText(title));
// hide button
Assert.assertTrue(Control.hide(title, "Button1"));
assertEquals("How are you?\n", Win.getText(title));
// hide button
Assert.assertTrue(Control.hide(title, "Button1"));
assertEquals("How are you?\n", Win.getText(title));
// show button
Assert.assertTrue(Control.show(title, "Button1"));
assertEquals(MESSAGE_BOX_OK_BUTTON_TEXT + "\nHow are you?\n",
Win.getText(title));
// hide not exists button
Assert.assertFalse(Control.hide(title,
"Button1" + System.currentTimeMillis()));
assertEquals(MESSAGE_BOX_OK_BUTTON_TEXT + "\nHow are you?\n",
Win.getText(title));
// close message box
Assert.assertTrue(Win.close(title));
// hide not exists button
Assert.assertFalse(Control.hide(title, "Button1"));
}
@Test
public void move() {
final String title = "move - " + currentTimeMillis;
Thread thread = new Thread(new Runnable() {
public void run() {
User32Ext.INSTANCE.MessageBox(null, "How are you?", title, 0);
}
});
thread.start();
Assert.assertTrue(Win.wait(title, 3));
int width = Control.getWidth(title, "Button1");
int height = Control.getHeight(title, "Button1");
Assert.assertTrue(width > 0);
Assert.assertTrue(height > 0);
// move button to (10, 0)
Assert.assertTrue(Control.move(title, "Button1", 10, 0));
assertEquals(10, Control.getPosX(title, "Button1").intValue());
assertEquals(0, Control.getPosY(title, "Button1").intValue());
assertEquals(width, Control.getWidth(title, "Button1"));
assertEquals(height, Control.getHeight(title, "Button1"));
// move button to (20, 10)
Assert.assertTrue(Control.move(title, "Button1", 20, 10));
assertEquals(20, Control.getPosX(title, "Button1").intValue());
assertEquals(10, Control.getPosY(title, "Button1").intValue());
assertEquals(width, Control.getWidth(title, "Button1"));
assertEquals(height, Control.getHeight(title, "Button1"));
// move button to (30, 15)
Assert.assertTrue(Control.move(title, "Button1", 30, 15));
assertEquals(30, Control.getPosX(title, "Button1").intValue());
assertEquals(15, Control.getPosY(title, "Button1").intValue());
assertEquals(width, Control.getWidth(title, "Button1"));
assertEquals(height, Control.getHeight(title, "Button1"));
// move not exists button
Assert.assertFalse(Control.move(title,
"Button1" + System.currentTimeMillis(), 30, 15));
assertEquals(30, Control.getPosX(title, "Button1").intValue());
assertEquals(15, Control.getPosY(title, "Button1").intValue());
assertEquals(width, Control.getWidth(title, "Button1"));
assertEquals(height, Control.getHeight(title, "Button1"));
// move button to (-100, -50)
Assert.assertTrue(Control.move(title, "Button1", -100, -50));
assertEquals(-100, Control.getPosX(title, "Button1").intValue());
assertEquals(-50, Control.getPosY(title, "Button1").intValue());
assertEquals(width, Control.getWidth(title, "Button1"));
assertEquals(height, Control.getHeight(title, "Button1"));
// move and change button's width
Assert.assertTrue(Control.move(title, "Button1", 10, 5, width + 20,
null));
assertEquals(10, Control.getPosX(title, "Button1").intValue());
assertEquals(5, Control.getPosY(title, "Button1").intValue());
assertEquals(width + 20, Control.getWidth(title, "Button1"));
assertEquals(height, Control.getHeight(title, "Button1"));
// move and change button's height
Assert.assertTrue(Control.move(title, "Button1", 20, 10, null,
height + 10));
assertEquals(20, Control.getPosX(title, "Button1").intValue());
assertEquals(10, Control.getPosY(title, "Button1").intValue());
assertEquals(width + 20, Control.getWidth(title, "Button1"));
assertEquals(height + 10, Control.getHeight(title, "Button1"));
// close message box
Assert.assertTrue(Win.close(title));
// move not exists button
Assert.assertFalse(Control.move(title, "Button1", 30, 15));
}
@Test
public void send() {
// run notepad
int pid = runNotepad();
assertEquals("", Control.getText(NOTEPAD_TITLE, "", "Edit1"));
// send text
Assert.assertTrue(Control.send(NOTEPAD_TITLE, "Edit1", "Hello"));
assertEquals("Hello", Control.getText(NOTEPAD_TITLE, "Edit1"));
Assert.assertTrue(Control.send(NOTEPAD_TITLE, "Edit1", "World"));
assertEquals("HelloWorld", Control.getText(NOTEPAD_TITLE, "Edit1"));
// send empty text
Assert.assertTrue(Control.send(NOTEPAD_TITLE, "Edit1", ""));
assertEquals("HelloWorld", Control.getText(NOTEPAD_TITLE, "Edit1"));
Assert.assertTrue(Control.send(NOTEPAD_TITLE, "Edit1", "\n+hello"));
assertEquals("HelloWorld\r\nHello",
Control.getText(NOTEPAD_TITLE, "Edit1"));
Assert.assertTrue(Control.send(NOTEPAD_TITLE, "Edit1", "{LEFT}{LEFT}"));
assertEquals("HelloWorld\r\nHello",
Control.getText(NOTEPAD_TITLE, "Edit1"));
Assert.assertTrue(Control.send(NOTEPAD_TITLE, "Edit1", "world"));
assertEquals("HelloWorld\r\nHelworldlo",
Control.getText(NOTEPAD_TITLE, "Edit1"));
// send text to not exists control
Assert.assertFalse(Control.send(NOTEPAD_TITLE,
"Edit1" + System.currentTimeMillis(), "world"));
assertEquals("HelloWorld\r\nHelworldlo",
Control.getText(NOTEPAD_TITLE, "Edit1"));
// clear notepad text
Assert.assertTrue(Control.setText(NOTEPAD_TITLE, "Edit1", ""));
assertEquals("", Control.getText(NOTEPAD_TITLE, "Edit1"));
// send text
Assert.assertTrue(Control.send(NOTEPAD_TITLE, "Edit1", "Hello", true));
assertEquals("Hello", Control.getText(NOTEPAD_TITLE, "Edit1"));
Assert.assertTrue(Control.send(NOTEPAD_TITLE, "Edit1", "World", true));
assertEquals("HelloWorld", Control.getText(NOTEPAD_TITLE, "Edit1"));
// send empty text
Assert.assertTrue(Control.send(NOTEPAD_TITLE, "Edit1", "", true));
assertEquals("HelloWorld", Control.getText(NOTEPAD_TITLE, "Edit1"));
Assert.assertTrue(Control
.send(NOTEPAD_TITLE, "Edit1", "\n+hello", true));
assertEquals("HelloWorld\r\n+hello",
Control.getText(NOTEPAD_TITLE, "Edit1"));
Assert.assertTrue(Control.send(NOTEPAD_TITLE, "Edit1", "{LEFT}{LEFT}",
true));
assertEquals("HelloWorld\r\n+hello{LEFT}{LEFT}",
Control.getText(NOTEPAD_TITLE, "Edit1"));
Assert.assertTrue(Control.send(NOTEPAD_TITLE, "Edit1", "world", true));
assertEquals("HelloWorld\r\n+hello{LEFT}{LEFT}world",
Control.getText(NOTEPAD_TITLE, "Edit1"));
// send text to not exists control
Assert.assertFalse(Control.send(NOTEPAD_TITLE,
"Edit1" + System.currentTimeMillis(), "world", true));
assertEquals("HelloWorld\r\n+hello{LEFT}{LEFT}world",
Control.getText(NOTEPAD_TITLE, "Edit1"));
// close process by pid
closeNotepad(pid);
// send text to not exists control
Assert.assertFalse(Control.send(NOTEPAD_TITLE, "Edit1", "world", true));
}
@Test
public void setText() {
final String title = "controlSetText - " + currentTimeMillis;
Thread thread = new Thread(new Runnable() {
public void run() {
User32Ext.INSTANCE.MessageBox(null, "How are you?", title, 0);
}
});
thread.start();
Assert.assertTrue(Win.wait(title, 3));
// change button text
Assert.assertTrue(Control.setText(title, "[CLASS:Button; INSTANCE:1]",
"Fine, thank you."));
assertEquals("Fine, thank you.", Control.getText(title, "Button1"));
Assert.assertTrue(Control.setText(title, "[CLASS:Button; INSTANCE:1]",
""));
assertEquals("", Control.getText(title, "Button1"));
Assert.assertTrue(Control.setText(title, "[CLASS:Button; INSTANCE:1]",
"Fine, thank you."));
assertEquals("Fine, thank you.", Control.getText(title, "Button1"));
Assert.assertTrue(Control.setText(title, "[CLASS:Button; INSTANCE:1]",
null));
assertEquals("", Control.getText(title, "Button1"));
Assert.assertFalse(Control.setText(title,
"[CLASS:Buttonxxx; INSTANCE:1]", "Fine, thank you."));
assertEquals("", Control.getText(title, "Button1"));
// close message box
Assert.assertTrue(Win.close(title));
Assert.assertFalse(Control.setText(title, "[CLASS:Button; INSTANCE:1]",
"Fine, thank you."));
}
@Test
public void show() {
final String title = "controlShow - " + currentTimeMillis;
Thread thread = new Thread(new Runnable() {
public void run() {
User32Ext.INSTANCE.MessageBox(null, "How are you?", title, 0);
}
});
thread.start();
Assert.assertTrue(Win.wait(title, 3));
assertEquals(MESSAGE_BOX_OK_BUTTON_TEXT + "\nHow are you?\n",
Win.getText(title));
// hide button
Assert.assertTrue(Control.hide(title, "Button1"));
assertEquals("How are you?\n", Win.getText(title));
// show not exists button
Assert.assertFalse(Control.show(title,
"Button1" + System.currentTimeMillis()));
assertEquals("How are you?\n", Win.getText(title));
// show button
Assert.assertTrue(Control.show(title, "Button1"));
assertEquals(MESSAGE_BOX_OK_BUTTON_TEXT + "\nHow are you?\n",
Win.getText(title));
// show button
Assert.assertTrue(Control.show(title, "Button1"));
assertEquals(MESSAGE_BOX_OK_BUTTON_TEXT + "\nHow are you?\n",
Win.getText(title));
// close message box
Assert.assertTrue(Win.close(title));
// show not exists button
Assert.assertFalse(Control.show(title, "Button1"));
}
@Test
public void statusbarGetText() {
// run task manager
int pid = Process.run(TASK_MANAGER, "", RunShowFlag.MAXIMIZE);
Assert.assertTrue(pid > 0);
Assert.assertTrue(Win.waitActive(TASK_MANAGER_TITLE, 5));
String processes = Control.statusbarGetText(TASK_MANAGER_TITLE);
Assert.assertTrue(processes.startsWith(STATUS_BAR_TEXT_PROCESSES));
assertEquals(processes, Control.statusbarGetText(TASK_MANAGER_TITLE, 1));
String cpuUsage = Control.statusbarGetText(TASK_MANAGER_TITLE, 2);
Assert.assertTrue(String.format(
"Expected start with %s, but actual is %s.",
STATUS_BAR_TEXT_CPU_USAGE, cpuUsage), cpuUsage
.startsWith(STATUS_BAR_TEXT_CPU_USAGE));
String commitCharge = Control.statusbarGetText(TASK_MANAGER_TITLE,
null, 3);
Assert.assertTrue(commitCharge
.startsWith(STATUS_BAR_TEXT_COMMIT_CHARGE)
|| commitCharge.startsWith(STATUS_BAR_TEXT_PHYSICAL_MEMORY)
|| commitCharge.startsWith(STATUS_BAR_TEXT_MEMORY_USAGE));
// minimize task manager
Assert.assertTrue(Win.minimize(TASK_MANAGER_TITLE));
assertEquals(processes, Control.statusbarGetText(TASK_MANAGER_TITLE, 1));
Assert.assertTrue(cpuUsage.startsWith(STATUS_BAR_TEXT_CPU_USAGE));
commitCharge = Control.statusbarGetText(TASK_MANAGER_TITLE, null, 3);
Assert.assertTrue(commitCharge
.startsWith(STATUS_BAR_TEXT_COMMIT_CHARGE)
|| commitCharge.startsWith(STATUS_BAR_TEXT_PHYSICAL_MEMORY)
|| commitCharge.startsWith(STATUS_BAR_TEXT_MEMORY_USAGE));
// hide task manager
Assert.assertTrue(Win.minimize(TASK_MANAGER_TITLE));
assertEquals(processes, Control.statusbarGetText(TASK_MANAGER_TITLE, 1));
Assert.assertTrue(cpuUsage.startsWith(STATUS_BAR_TEXT_CPU_USAGE));
commitCharge = Control.statusbarGetText(TASK_MANAGER_TITLE, null, 3);
Assert.assertTrue(commitCharge
.startsWith(STATUS_BAR_TEXT_COMMIT_CHARGE)
|| commitCharge.startsWith(STATUS_BAR_TEXT_PHYSICAL_MEMORY)
|| commitCharge.startsWith(STATUS_BAR_TEXT_MEMORY_USAGE));
// close task manager
Process.close(pid);
sleep(1000);
Assert.assertFalse(Process.exists(pid));
Assert.assertNull(Control.statusbarGetText(TASK_MANAGER_TITLE));
Assert.assertNull(Control.statusbarGetText(TASK_MANAGER_TITLE, 1));
Assert.assertNull(Control.statusbarGetText(TASK_MANAGER_TITLE, 2));
Assert.assertNull(Control.statusbarGetText(TASK_MANAGER_TITLE, 3));
}
}