package cn.com.jautoitx;
import java.awt.Button;
import java.awt.Frame;
import java.awt.Toolkit;
import java.util.List;
import org.junit.Assert;
import org.junit.Test;
import cn.com.jautoitx.Win.WinState;
import com.sun.jna.platform.win32.User32;
import com.sun.jna.platform.win32.WinDef.HWND;
import com.sun.jna.platform.win32.WinUser;
public class WinTest extends BaseTest {
@Test
public void activate() {
Assert.assertFalse(Win.activate((HWND) null));
// run notepad
int pid = runNotepad();
HWND hWnd = Win.getHandle_(NOTEPAD_TITLE);
Assert.assertNotNull(hWnd);
// minimize notepad
Assert.assertTrue(Win.minimize(NOTEPAD_TITLE));
Assert.assertFalse(Win.active(NOTEPAD_TITLE));
// restore notepad
Assert.assertTrue(Win.restore(NOTEPAD_TITLE));
Assert.assertFalse(Win.active(NOTEPAD_TITLE));
// activate notepad
Assert.assertTrue(Win.activate(NOTEPAD_TITLE));
Assert.assertTrue(Win.active(NOTEPAD_TITLE));
// minimize notepad
Assert.assertTrue(Win.minimize(NOTEPAD_TITLE));
Assert.assertFalse(Win.active(NOTEPAD_TITLE));
// activate notepad
Assert.assertTrue(Win.activate(hWnd));
Assert.assertTrue(Win.active(NOTEPAD_TITLE));
// close notepad
closeNotepad(pid);
Assert.assertFalse(Win.activate(NOTEPAD_TITLE));
Assert.assertFalse(Win.activate(hWnd));
}
@Test
public void active() {
Assert.assertFalse(Win.active(NOTEPAD_TITLE));
Assert.assertFalse(Win.active((HWND) null));
// run notepad
int pid = runNotepad();
HWND hWnd = Win.getHandle_(NOTEPAD_TITLE);
Assert.assertNotNull(hWnd);
// maximize notepad
Assert.assertTrue(Win.maximize(NOTEPAD_TITLE));
Assert.assertTrue(Win.active(NOTEPAD_TITLE));
Assert.assertTrue(Win.active(hWnd));
// restore notepad
Assert.assertTrue(Win.restore(NOTEPAD_TITLE));
Assert.assertTrue(Win.active(NOTEPAD_TITLE));
Assert.assertTrue(Win.active(hWnd));
// minimize notepad
Assert.assertTrue(Win.minimize(NOTEPAD_TITLE));
Assert.assertFalse(Win.active(NOTEPAD_TITLE));
Assert.assertFalse(Win.active(hWnd));
// restore notepad
Assert.assertTrue(Win.restore(NOTEPAD_TITLE));
Assert.assertFalse(Win.active(NOTEPAD_TITLE));
Assert.assertFalse(Win.active(hWnd));
// activate notepad
Win.activate(NOTEPAD_TITLE);
Assert.assertTrue(Win.active(NOTEPAD_TITLE));
Assert.assertTrue(Win.active(hWnd));
// hide notepad
Assert.assertTrue(Win.hide(NOTEPAD_TITLE));
Assert.assertTrue(Win.active(NOTEPAD_TITLE));
Assert.assertTrue(Win.active(hWnd));
// close notepad
closeNotepad(pid);
Assert.assertFalse(Win.active(NOTEPAD_TITLE));
Assert.assertFalse(Win.active(hWnd));
}
@Test
public void close() {
Assert.assertFalse(Win.close(NOTEPAD_TITLE));
Assert.assertFalse(Win.close((HWND) null));
// run notepad
runNotepad();
// close notepad
Assert.assertTrue(Win.close(NOTEPAD_TITLE));
Assert.assertFalse(Win.exists(NOTEPAD_TITLE));
// run notepad
runNotepad();
// close notepad
HWND hWnd = Win.getHandle_(NOTEPAD_TITLE);
Assert.assertNotNull(hWnd);
Assert.assertTrue(Win.close(hWnd));
Assert.assertFalse(Win.exists(NOTEPAD_TITLE));
// run notepad
runNotepad();
Keyboard.send("1");
// close notepad
Assert.assertTrue(Win.close(NOTEPAD_TITLE));
Assert.assertTrue(Win.exists(NOTEPAD_TITLE));
// kill notepad
Assert.assertTrue(Win.kill(NOTEPAD_TITLE));
Assert.assertFalse(Win.exists(NOTEPAD_TITLE));
// run notepad
runNotepad();
Keyboard.send("1");
hWnd = Win.getHandle_(NOTEPAD_TITLE);
Assert.assertNotNull(hWnd);
// close notepad
Assert.assertTrue(Win.close(hWnd));
Assert.assertTrue(Win.exists(NOTEPAD_TITLE));
// kill notepad
Assert.assertTrue(Win.kill(NOTEPAD_TITLE));
Assert.assertFalse(Win.exists(NOTEPAD_TITLE));
Assert.assertFalse(Win.close(NOTEPAD_TITLE));
Assert.assertFalse(Win.close(hWnd));
}
@Test
public void exists() {
Assert.assertFalse(Win.exists(NOTEPAD_TITLE));
Assert.assertFalse(Win.exists((HWND) null));
// run notepad
int pid = runNotepad();
HWND hWnd = Win.getHandle_(NOTEPAD_TITLE);
Assert.assertNotNull(hWnd);
Assert.assertTrue(Win.exists(NOTEPAD_TITLE));
Assert.assertTrue(Win.exists(hWnd));
// hide notepad
Assert.assertTrue(Win.hide(NOTEPAD_TITLE));
Assert.assertTrue(Win.exists(NOTEPAD_TITLE));
Assert.assertTrue(Win.exists(hWnd));
// show notepad
Assert.assertTrue(Win.show(NOTEPAD_TITLE));
Assert.assertTrue(Win.exists(NOTEPAD_TITLE));
Assert.assertTrue(Win.exists(hWnd));
// minimize notepad
Assert.assertTrue(Win.minimize(NOTEPAD_TITLE));
Assert.assertTrue(Win.exists(NOTEPAD_TITLE));
Assert.assertTrue(Win.exists(hWnd));
// close notepad
closeNotepad(pid);
Assert.assertFalse(Win.exists(NOTEPAD_TITLE));
Assert.assertFalse(Win.exists(hWnd));
}
@Test
public void getActiveTitle() {
Assert.assertNotEquals(NOTEPAD_TITLE, Win.getActiveTitle());
// run notepad
int pid = runNotepad();
Assert.assertEquals(NOTEPAD_TITLE, Win.getActiveTitle());
// close notepad
closeNotepad(pid);
Assert.assertNotEquals(NOTEPAD_TITLE, Win.getActiveTitle());
}
@Test
public void getCaretPosX() {
// run notepad
int pid = runNotepad();
int caretPosX1 = Win.getCaretPosX();
Keyboard.send("1");
int caretPosX2 = Win.getCaretPosX();
Keyboard.send("2");
int caretPosX3 = Win.getCaretPosX();
Keyboard.send("{BACKSPACE}");
int caretPosX4 = Win.getCaretPosX();
Keyboard.send("{BACKSPACE}");
int caretPosX5 = Win.getCaretPosX();
Keyboard.send("{ENTER}");
int caretPosX6 = Win.getCaretPosX();
Keyboard.send("{BACKSPACE}");
int caretPosX7 = Win.getCaretPosX();
Assert.assertTrue(caretPosX2 > caretPosX1);
Assert.assertTrue(caretPosX3 > caretPosX2);
assertEquals(caretPosX3 - caretPosX2, caretPosX2 - caretPosX1);
assertEquals(caretPosX4, caretPosX2);
assertEquals(caretPosX5, caretPosX1);
assertEquals(caretPosX6, caretPosX1);
assertEquals(caretPosX7, caretPosX1);
// close notepad
closeNotepad(pid);
}
@Test
public void getCaretPosY() {
// run notepad
int pid = runNotepad();
int caretPosY1 = Win.getCaretPosY();
Keyboard.send("1");
int caretPosY2 = Win.getCaretPosY();
Keyboard.send("2");
int caretPosY3 = Win.getCaretPosY();
Keyboard.send("{ENTER}");
int caretPosY4 = Win.getCaretPosY();
Keyboard.send("{ENTER}");
int caretPosY5 = Win.getCaretPosY();
Keyboard.send("{BACKSPACE}");
int caretPosY6 = Win.getCaretPosY();
Keyboard.send("{BACKSPACE}");
int caretPosY7 = Win.getCaretPosY();
assertEquals(caretPosY1, caretPosY2);
assertEquals(caretPosY1, caretPosY3);
Assert.assertTrue(caretPosY4 > caretPosY3);
Assert.assertTrue(caretPosY5 > caretPosY4);
assertEquals(caretPosY5 - caretPosY4, caretPosY4 - caretPosY3);
assertEquals(caretPosY6, caretPosY4);
assertEquals(caretPosY7, caretPosY3);
Keyboard.send("{BACKSPACE}");
assertEquals(caretPosY1, Win.getCaretPosY());
Keyboard.send("{BACKSPACE}");
assertEquals(caretPosY1, Win.getCaretPosY());
// close notepad
closeNotepad(pid);
}
@Test
public void getClassList() {
Assert.assertNull(Win.getClassList(NOTEPAD_TITLE));
Assert.assertNull(Win.getClassList((HWND) null));
// run notepad
int pid = runNotepad();
HWND hWnd = Win.getHandle_(NOTEPAD_TITLE);
Assert.assertNotNull(hWnd);
assertEquals(NOTEPAAD_CLASS_LIST, Win.getClassList(NOTEPAD_TITLE));
assertEquals(NOTEPAAD_CLASS_LIST, Win.getClassList(hWnd));
// hide notepad
Assert.assertTrue(Win.hide(NOTEPAD_TITLE));
assertEquals(NOTEPAAD_CLASS_LIST, Win.getClassList(NOTEPAD_TITLE));
assertEquals(NOTEPAAD_CLASS_LIST, Win.getClassList(hWnd));
// show notepad
Assert.assertTrue(Win.show(NOTEPAD_TITLE));
assertEquals(NOTEPAAD_CLASS_LIST, Win.getClassList(NOTEPAD_TITLE));
assertEquals(NOTEPAAD_CLASS_LIST, Win.getClassList(hWnd));
// minimize notepad
Assert.assertTrue(Win.minimize(NOTEPAD_TITLE));
assertEquals(NOTEPAAD_CLASS_LIST, Win.getClassList(NOTEPAD_TITLE));
assertEquals(NOTEPAAD_CLASS_LIST, Win.getClassList(hWnd));
// close notepad
closeNotepad(pid);
Assert.assertNull(Win.getClassList(NOTEPAD_TITLE));
Assert.assertNull(Win.getClassList(hWnd));
}
@Test
public void getClassList_() {
Assert.assertNull(Win.getClassList_(NOTEPAD_TITLE));
Assert.assertNull(Win.getClassList_((HWND) null));
// run notepad
int pid = runNotepad();
HWND hWnd = Win.getHandle_(NOTEPAD_TITLE);
Assert.assertNotNull(hWnd);
List<String> classList = Win.getClassList_(NOTEPAD_TITLE);
assertEquals(2, classList.size());
assertEquals("Edit", classList.get(0));
assertEquals("msctls_statusbar32", classList.get(1));
classList = Win.getClassList_(hWnd);
assertEquals(2, classList.size());
assertEquals("Edit", classList.get(0));
assertEquals("msctls_statusbar32", classList.get(1));
// hide notepad
Assert.assertTrue(Win.hide(NOTEPAD_TITLE));
classList = Win.getClassList_(NOTEPAD_TITLE);
assertEquals(2, classList.size());
assertEquals("Edit", classList.get(0));
assertEquals("msctls_statusbar32", classList.get(1));
classList = Win.getClassList_(hWnd);
assertEquals(2, classList.size());
assertEquals("Edit", classList.get(0));
assertEquals("msctls_statusbar32", classList.get(1));
// show notepad
Assert.assertTrue(Win.show(NOTEPAD_TITLE));
classList = Win.getClassList_(NOTEPAD_TITLE);
assertEquals(2, classList.size());
assertEquals("Edit", classList.get(0));
assertEquals("msctls_statusbar32", classList.get(1));
classList = Win.getClassList_(hWnd);
assertEquals(2, classList.size());
assertEquals("Edit", classList.get(0));
assertEquals("msctls_statusbar32", classList.get(1));
// minimize notepad
Assert.assertTrue(Win.minimize(NOTEPAD_TITLE));
classList = Win.getClassList_(NOTEPAD_TITLE);
assertEquals(2, classList.size());
assertEquals("Edit", classList.get(0));
assertEquals("msctls_statusbar32", classList.get(1));
classList = Win.getClassList_(hWnd);
assertEquals(2, classList.size());
assertEquals("Edit", classList.get(0));
assertEquals("msctls_statusbar32", classList.get(1));
// close notepad
closeNotepad(pid);
Assert.assertNull(Win.getClassList(NOTEPAD_TITLE));
Assert.assertNull(Win.getClassList_(hWnd));
}
@Test
public void getClassName() {
Assert.assertNull(Win.getClassName(NOTEPAD_TITLE));
Assert.assertNull(Win.getClassName((HWND) null));
// run notepad
int pid = runNotepad();
HWND hWnd = Win.getHandle_(NOTEPAD_TITLE);
Assert.assertNotNull(hWnd);
Assert.assertEquals(NOTEPAAD_CLASS_NAME,
Win.getClassName(NOTEPAD_TITLE));
Assert.assertEquals(NOTEPAAD_CLASS_NAME, Win.getClassName(hWnd));
// close notepad
closeNotepad(pid);
Assert.assertNull(Win.getClassName(NOTEPAD_TITLE));
Assert.assertNull(Win.getClassName(hWnd));
}
@Test
public void getClientHeight() {
// run notepad
int pid = runNotepad();
int height = Win.getHeight(NOTEPAD_TITLE);
Assert.assertTrue(height > 1);
int clientHeight = Win.getClientHeight(NOTEPAD_TITLE);
Assert.assertTrue(clientHeight > 1);
Assert.assertTrue(clientHeight < height);
// change notepad's height
Win.move(NOTEPAD_TITLE, Win.getPosX(NOTEPAD_TITLE),
Win.getPosY(NOTEPAD_TITLE), Win.getWidth(NOTEPAD_TITLE), 200);
assertEquals(200 + clientHeight - height,
Win.getClientHeight(NOTEPAD_TITLE));
Win.move(NOTEPAD_TITLE, Win.getPosX(NOTEPAD_TITLE),
Win.getPosY(NOTEPAD_TITLE), Win.getWidth(NOTEPAD_TITLE), 150);
assertEquals(150 + clientHeight - height,
Win.getClientHeight(NOTEPAD_TITLE));
// restore notepad's height
Assert.assertTrue(Win.move(NOTEPAD_TITLE, Win.getPosX(NOTEPAD_TITLE),
Win.getPosY(NOTEPAD_TITLE), Win.getWidth(NOTEPAD_TITLE), height));
assertEquals(clientHeight, Win.getClientHeight(NOTEPAD_TITLE));
// hide notepad
Assert.assertTrue(Win.hide(NOTEPAD_TITLE));
assertEquals(clientHeight, Win.getClientHeight(NOTEPAD_TITLE));
// show notepad
Assert.assertTrue(Win.show(NOTEPAD_TITLE));
assertEquals(clientHeight, Win.getClientHeight(NOTEPAD_TITLE));
// minimize notepad
Assert.assertTrue(Win.minimize(NOTEPAD_TITLE));
Assert.assertNull(Win.getClientHeight(NOTEPAD_TITLE));
// restore notepad
Assert.assertTrue(Win.restore(NOTEPAD_TITLE));
assertEquals(clientHeight, Win.getClientHeight(NOTEPAD_TITLE));
// close notepad
closeNotepad(pid);
Assert.assertNull(Win.getClientHeight(NOTEPAD_TITLE));
// If the window title "Program Manager" is used, the function will
// return the size of the desktop
assertEquals(Toolkit.getDefaultToolkit().getScreenSize().height,
Win.getClientHeight(Win.PROGRAM_MANAGER));
}
@Test
public void getClientSize() {
// run notepad
int pid = runNotepad();
int[] clientSize = Win.getClientSize(NOTEPAD_TITLE);
Assert.assertArrayEquals(new int[] { Win.getClientWidth(NOTEPAD_TITLE),
Win.getClientHeight(NOTEPAD_TITLE) }, clientSize);
// change notepad's height
Win.move(NOTEPAD_TITLE, Win.getPosX(NOTEPAD_TITLE),
Win.getPosY(NOTEPAD_TITLE), Win.getWidth(NOTEPAD_TITLE), 200);
clientSize = Win.getClientSize(NOTEPAD_TITLE);
Assert.assertArrayEquals(new int[] { Win.getClientWidth(NOTEPAD_TITLE),
Win.getClientHeight(NOTEPAD_TITLE) }, clientSize);
Win.move(NOTEPAD_TITLE, Win.getPosX(NOTEPAD_TITLE),
Win.getPosY(NOTEPAD_TITLE), Win.getWidth(NOTEPAD_TITLE), 150);
clientSize = Win.getClientSize(NOTEPAD_TITLE);
Assert.assertArrayEquals(new int[] { Win.getClientWidth(NOTEPAD_TITLE),
Win.getClientHeight(NOTEPAD_TITLE) }, clientSize);
// hide notepad
Assert.assertTrue(Win.hide(NOTEPAD_TITLE));
clientSize = Win.getClientSize(NOTEPAD_TITLE);
Assert.assertArrayEquals(new int[] { Win.getClientWidth(NOTEPAD_TITLE),
Win.getClientHeight(NOTEPAD_TITLE) }, clientSize);
// show notepad
Assert.assertTrue(Win.show(NOTEPAD_TITLE));
clientSize = Win.getClientSize(NOTEPAD_TITLE);
Assert.assertArrayEquals(new int[] { Win.getClientWidth(NOTEPAD_TITLE),
Win.getClientHeight(NOTEPAD_TITLE) }, clientSize);
// minimize notepad
Assert.assertTrue(Win.minimize(NOTEPAD_TITLE));
Assert.assertNull(Win.getClientSize(NOTEPAD_TITLE));
// restore notepad
Assert.assertTrue(Win.restore(NOTEPAD_TITLE));
clientSize = Win.getClientSize(NOTEPAD_TITLE);
Assert.assertArrayEquals(new int[] { Win.getClientWidth(NOTEPAD_TITLE),
Win.getClientHeight(NOTEPAD_TITLE) }, clientSize);
// close notepad
closeNotepad(pid);
Assert.assertNull(Win.getClientSize(NOTEPAD_TITLE));
// If the window title "Program Manager" is used, the function will
// return the size of the desktop
Assert.assertArrayEquals(new int[] {
Toolkit.getDefaultToolkit().getScreenSize().width,
Toolkit.getDefaultToolkit().getScreenSize().height },
Win.getClientSize(Win.PROGRAM_MANAGER));
}
@Test
public void getClientWidth() {
// run notepad
int pid = runNotepad();
int width = Win.getWidth(NOTEPAD_TITLE);
Assert.assertTrue(width > 1);
int clientWidth = Win.getClientWidth(NOTEPAD_TITLE);
Assert.assertTrue(clientWidth > 1);
Assert.assertTrue(clientWidth < width);
// change notepad's width
Win.move(NOTEPAD_TITLE, Win.getPosX(NOTEPAD_TITLE),
Win.getPosY(NOTEPAD_TITLE), 200, Win.getHeight(NOTEPAD_TITLE));
assertEquals(200 + clientWidth - width,
Win.getClientWidth(NOTEPAD_TITLE));
Win.move(NOTEPAD_TITLE, Win.getPosX(NOTEPAD_TITLE),
Win.getPosY(NOTEPAD_TITLE), 150, Win.getHeight(NOTEPAD_TITLE));
assertEquals(150 + clientWidth - width,
Win.getClientWidth(NOTEPAD_TITLE));
// restore notepad's width
Assert.assertTrue(Win.move(NOTEPAD_TITLE, Win.getPosX(NOTEPAD_TITLE),
Win.getPosY(NOTEPAD_TITLE), width, Win.getHeight(NOTEPAD_TITLE)));
assertEquals(clientWidth, Win.getClientWidth(NOTEPAD_TITLE));
// hide notepad
Assert.assertTrue(Win.hide(NOTEPAD_TITLE));
assertEquals(clientWidth, Win.getClientWidth(NOTEPAD_TITLE));
// show notepad
Assert.assertTrue(Win.show(NOTEPAD_TITLE));
assertEquals(clientWidth, Win.getClientWidth(NOTEPAD_TITLE));
// minimize notepad
Assert.assertTrue(Win.minimize(NOTEPAD_TITLE));
Assert.assertNull(Win.getClientWidth(NOTEPAD_TITLE));
// restore notepad
Assert.assertTrue(Win.restore(NOTEPAD_TITLE));
assertEquals(clientWidth, Win.getClientWidth(NOTEPAD_TITLE));
// close notepad
closeNotepad(pid);
Assert.assertNull(Win.getClientWidth(NOTEPAD_TITLE));
// If the window title "Program Manager" is used, the function will
// return the size of the desktop
assertEquals(Toolkit.getDefaultToolkit().getScreenSize().width,
Win.getClientWidth(Win.PROGRAM_MANAGER));
}
@Test
public void getDesktopHeight() {
assertEquals(Toolkit.getDefaultToolkit().getScreenSize().height,
Win.getDesktopHeight());
}
@Test
public void getDesktopWidth() {
assertEquals(Toolkit.getDefaultToolkit().getScreenSize().width,
Win.getDesktopWidth());
}
@Test
public void getHandle() {
Assert.assertNull(Win.getHandle(NOTEPAD_TITLE));
Assert.assertNull(Win.getHandle((HWND) null));
// run notepad
int pid = runNotepad();
HWND hWnd = Win.getHandle_(NOTEPAD_TITLE);
Assert.assertNotNull(hWnd);
assertEquals(
AutoItX.hwndToHandle(User32.INSTANCE.GetForegroundWindow()),
Win.getHandle(NOTEPAD_TITLE));
assertEquals(
AutoItX.hwndToHandle(User32.INSTANCE.GetForegroundWindow()),
Win.getHandle(hWnd));
// close notepad
closeNotepad(pid);
Assert.assertNull(Win.getHandle(NOTEPAD_TITLE));
Assert.assertNull(Win.getHandle(hWnd));
}
@Test
public void getPosX() {
// run notepad
int pid = runNotepad();
int x = Win.getPosX(NOTEPAD_TITLE);
// change notepad's X coordinate
Win.move(NOTEPAD_TITLE, 200, Win.getCaretPosY(),
Win.getWidth(NOTEPAD_TITLE), Win.getHeight(NOTEPAD_TITLE));
assertEquals(200, Win.getPosX(NOTEPAD_TITLE));
Win.move(NOTEPAD_TITLE, 150, Win.getCaretPosY(),
Win.getWidth(NOTEPAD_TITLE), Win.getHeight(NOTEPAD_TITLE));
assertEquals(150, Win.getPosX(NOTEPAD_TITLE));
Win.move(NOTEPAD_TITLE, -20, Win.getCaretPosY(),
Win.getWidth(NOTEPAD_TITLE), Win.getHeight(NOTEPAD_TITLE));
assertEquals(-20, Win.getPosX(NOTEPAD_TITLE));
// restore notepad's X coordinate
Assert.assertTrue(Win.move(NOTEPAD_TITLE, x, Win.getCaretPosY(),
Win.getWidth(NOTEPAD_TITLE), Win.getHeight(NOTEPAD_TITLE)));
assertEquals(x, Win.getPosX(NOTEPAD_TITLE));
// hide notepad
Assert.assertTrue(Win.hide(NOTEPAD_TITLE));
assertEquals(x, Win.getPosX(NOTEPAD_TITLE));
// show notepad
Assert.assertTrue(Win.show(NOTEPAD_TITLE));
assertEquals(x, Win.getPosX(NOTEPAD_TITLE));
// minimize notepad
Assert.assertTrue(Win.minimize(NOTEPAD_TITLE));
Assert.assertNull(Win.getPosX(NOTEPAD_TITLE));
// restore notepad
Assert.assertTrue(Win.restore(NOTEPAD_TITLE));
assertEquals(x, Win.getPosX(NOTEPAD_TITLE));
// close notepad
Process.close(pid);
sleep(500);
Assert.assertFalse(Process.exists(pid));
Assert.assertNull(Win.getPosX(NOTEPAD_TITLE));
// If the window title "Program Manager" is used, the function will
// return the size of the desktop
assertEquals(0, Win.getPosX(Win.PROGRAM_MANAGER));
}
@Test
public void getPosY() {
// run notepad
int pid = runNotepad();
int y = Win.getPosY(NOTEPAD_TITLE);
// change notepad's Y coordinate
Win.move(NOTEPAD_TITLE, Win.getPosX(NOTEPAD_TITLE), 200,
Win.getWidth(NOTEPAD_TITLE), Win.getHeight(NOTEPAD_TITLE));
assertEquals(200, Win.getPosY(NOTEPAD_TITLE));
Win.move(NOTEPAD_TITLE, Win.getPosX(NOTEPAD_TITLE), 150,
Win.getWidth(NOTEPAD_TITLE), Win.getHeight(NOTEPAD_TITLE));
assertEquals(150, Win.getPosY(NOTEPAD_TITLE));
Win.move(NOTEPAD_TITLE, Win.getPosX(NOTEPAD_TITLE), -20,
Win.getWidth(NOTEPAD_TITLE), Win.getHeight(NOTEPAD_TITLE));
assertEquals(-20, Win.getPosY(NOTEPAD_TITLE));
// restore notepad's Y coordinate
Assert.assertTrue(Win.move(NOTEPAD_TITLE, Win.getPosX(NOTEPAD_TITLE),
y, Win.getWidth(NOTEPAD_TITLE), Win.getHeight(NOTEPAD_TITLE)));
assertEquals(y, Win.getPosY(NOTEPAD_TITLE));
// hide notepad
Assert.assertTrue(Win.hide(NOTEPAD_TITLE));
assertEquals(y, Win.getPosY(NOTEPAD_TITLE));
// show notepad
Assert.assertTrue(Win.show(NOTEPAD_TITLE));
assertEquals(y, Win.getPosY(NOTEPAD_TITLE));
// minimize notepad
Assert.assertTrue(Win.minimize(NOTEPAD_TITLE));
Assert.assertNull(Win.getPosY(NOTEPAD_TITLE));
// restore notepad
Assert.assertTrue(Win.restore(NOTEPAD_TITLE));
assertEquals(y, Win.getPosY(NOTEPAD_TITLE));
// close notepad
Process.close(pid);
sleep(500);
Assert.assertFalse(Process.exists(pid));
Assert.assertNull(Win.getPosY(NOTEPAD_TITLE));
// If the window title "Program Manager" is used, the function will
// return the size of the desktop
assertEquals(0, Win.getPosY(Win.PROGRAM_MANAGER));
}
@Test
public void getHeight() {
// run notepad
int pid = runNotepad();
int height = Win.getHeight(NOTEPAD_TITLE);
Assert.assertTrue(height > 1);
// change notepad's height
Win.move(NOTEPAD_TITLE, Win.getPosX(NOTEPAD_TITLE),
Win.getPosY(NOTEPAD_TITLE), Win.getWidth(NOTEPAD_TITLE), 200);
assertEquals(200, Win.getHeight(NOTEPAD_TITLE));
Win.move(NOTEPAD_TITLE, Win.getPosX(NOTEPAD_TITLE),
Win.getPosY(NOTEPAD_TITLE), Win.getWidth(NOTEPAD_TITLE), 150);
assertEquals(150, Win.getHeight(NOTEPAD_TITLE));
// restore notepad's height
Assert.assertTrue(Win.move(NOTEPAD_TITLE, Win.getPosX(NOTEPAD_TITLE),
Win.getPosY(NOTEPAD_TITLE), Win.getWidth(NOTEPAD_TITLE), height));
assertEquals(height, Win.getHeight(NOTEPAD_TITLE));
// hide notepad
Assert.assertTrue(Win.hide(NOTEPAD_TITLE));
assertEquals(height, Win.getHeight(NOTEPAD_TITLE));
// show notepad
Assert.assertTrue(Win.show(NOTEPAD_TITLE));
assertEquals(height, Win.getHeight(NOTEPAD_TITLE));
// minimize notepad
Assert.assertTrue(Win.minimize(NOTEPAD_TITLE));
Assert.assertNull(Win.getHeight(NOTEPAD_TITLE));
// restore notepad
Assert.assertTrue(Win.restore(NOTEPAD_TITLE));
assertEquals(height, Win.getHeight(NOTEPAD_TITLE));
// close notepad
Process.close(pid);
sleep(500);
Assert.assertFalse(Process.exists(pid));
Assert.assertNull(Win.getHeight(NOTEPAD_TITLE));
// If the window title "Program Manager" is used, the function will
// return the size of the desktop
assertEquals(Toolkit.getDefaultToolkit().getScreenSize().height,
Win.getHeight(Win.PROGRAM_MANAGER));
}
@Test
public void getWidth() {
// run notepad
int pid = runNotepad();
int width = Win.getWidth(NOTEPAD_TITLE);
Assert.assertTrue(width > 1);
// change notepad's width
Win.move(NOTEPAD_TITLE, Win.getPosX(NOTEPAD_TITLE),
Win.getPosY(NOTEPAD_TITLE), 200, Win.getHeight(NOTEPAD_TITLE));
assertEquals(200, Win.getWidth(NOTEPAD_TITLE));
Win.move(NOTEPAD_TITLE, Win.getPosX(NOTEPAD_TITLE),
Win.getPosY(NOTEPAD_TITLE), 150, Win.getHeight(NOTEPAD_TITLE));
assertEquals(150, Win.getWidth(NOTEPAD_TITLE));
// restore notepad's width
Assert.assertTrue(Win.move(NOTEPAD_TITLE, Win.getPosX(NOTEPAD_TITLE),
Win.getPosY(NOTEPAD_TITLE), width, Win.getHeight(NOTEPAD_TITLE)));
assertEquals(width, Win.getWidth(NOTEPAD_TITLE));
// hide notepad
Assert.assertTrue(Win.hide(NOTEPAD_TITLE));
assertEquals(width, Win.getWidth(NOTEPAD_TITLE));
// show notepad
Assert.assertTrue(Win.show(NOTEPAD_TITLE));
assertEquals(width, Win.getWidth(NOTEPAD_TITLE));
// minimize notepad
Assert.assertTrue(Win.minimize(NOTEPAD_TITLE));
Assert.assertNull(Win.getWidth(NOTEPAD_TITLE));
// restore notepad
Assert.assertTrue(Win.restore(NOTEPAD_TITLE));
assertEquals(width, Win.getWidth(NOTEPAD_TITLE));
// close notepad
Process.close(pid);
sleep(500);
Assert.assertFalse(Process.exists(pid));
Assert.assertNull(Win.getWidth(NOTEPAD_TITLE));
// If the window title "Program Manager" is used, the function will
// return the size of the desktop
assertEquals(Toolkit.getDefaultToolkit().getScreenSize().width,
Win.getWidth(Win.PROGRAM_MANAGER));
}
@Test
public void getProcess() {
// run notepad
int pid = runNotepad();
assertEquals(pid, Win.getProcess(NOTEPAD_TITLE));
assertEquals(pid, Win.getProcess((String) null));
assertEquals(pid, Win.getProcess(""));
// close notepad
closeNotepad(pid);
Assert.assertNull(Win.getProcess(NOTEPAD_TITLE));
}
@Test
public void getState() {
// run notepad
int pid = runNotepad();
assertEquals(Win.WIN_STATE_EXISTS + Win.WIN_STATE_VISIBLE
+ Win.WIN_STATE_ENABLED + Win.WIN_STATE_ACTIVE,
Win.getState(NOTEPAD_TITLE));
// maximize notepad
Assert.assertTrue(Win.maximize(NOTEPAD_TITLE));
assertEquals(Win.WIN_STATE_EXISTS + Win.WIN_STATE_VISIBLE
+ Win.WIN_STATE_ENABLED + Win.WIN_STATE_ACTIVE
+ Win.WIN_STATE_MAXIMIZED, Win.getState(NOTEPAD_TITLE));
// restore notepad
Assert.assertTrue(Win.restore(NOTEPAD_TITLE));
assertEquals(Win.WIN_STATE_EXISTS + Win.WIN_STATE_VISIBLE
+ Win.WIN_STATE_ENABLED + Win.WIN_STATE_ACTIVE,
Win.getState(NOTEPAD_TITLE));
// minimize notepad
Assert.assertTrue(Win.minimize(NOTEPAD_TITLE));
assertEquals(Win.WIN_STATE_EXISTS + Win.WIN_STATE_VISIBLE
+ Win.WIN_STATE_ENABLED + Win.WIN_STATE_MINIMIZED,
Win.getState(NOTEPAD_TITLE));
// restore notepad
Assert.assertTrue(Win.restore(NOTEPAD_TITLE));
assertEquals(Win.WIN_STATE_EXISTS + Win.WIN_STATE_VISIBLE
+ Win.WIN_STATE_ENABLED, Win.getState(NOTEPAD_TITLE));
// active notepad
Win.activate(NOTEPAD_TITLE);
assertEquals(Win.WIN_STATE_EXISTS + Win.WIN_STATE_VISIBLE
+ Win.WIN_STATE_ENABLED + Win.WIN_STATE_ACTIVE,
Win.getState(NOTEPAD_TITLE));
// hide notepad
Assert.assertTrue(Win.hide(NOTEPAD_TITLE));
assertEquals(Win.WIN_STATE_EXISTS + Win.WIN_STATE_ENABLED
+ Win.WIN_STATE_ACTIVE, Win.getState(NOTEPAD_TITLE));
// close notepad
Process.close(pid);
sleep(500);
Assert.assertFalse(Process.exists(pid));
// If the window title "Program Manager" is used, the function will
// return the size of the desktop
Assert.assertNull(Win.getState(NOTEPAD_TITLE));
}
@Test
public void getState_() {
// run notepad
int pid = runNotepad();
List<WinState> winStates = Win.getState_(NOTEPAD_TITLE);
Assert.assertTrue(winStates.contains(WinState.EXISTS));
Assert.assertTrue(winStates.contains(WinState.VISIBLE));
Assert.assertTrue(winStates.contains(WinState.ENABLED));
Assert.assertTrue(winStates.contains(WinState.ACTIVE));
Assert.assertFalse(winStates.contains(WinState.MINIMIZED));
Assert.assertFalse(winStates.contains(WinState.MAXIMIZED));
// maximize notepad
Assert.assertTrue(Win.maximize(NOTEPAD_TITLE));
winStates = Win.getState_(NOTEPAD_TITLE);
Assert.assertTrue(winStates.contains(WinState.EXISTS));
Assert.assertTrue(winStates.contains(WinState.VISIBLE));
Assert.assertTrue(winStates.contains(WinState.ENABLED));
Assert.assertTrue(winStates.contains(WinState.ACTIVE));
Assert.assertFalse(winStates.contains(WinState.MINIMIZED));
Assert.assertTrue(winStates.contains(WinState.MAXIMIZED));
// restore notepad
Assert.assertTrue(Win.restore(NOTEPAD_TITLE));
winStates = Win.getState_(NOTEPAD_TITLE);
Assert.assertTrue(winStates.contains(WinState.EXISTS));
Assert.assertTrue(winStates.contains(WinState.VISIBLE));
Assert.assertTrue(winStates.contains(WinState.ENABLED));
Assert.assertTrue(winStates.contains(WinState.ACTIVE));
Assert.assertFalse(winStates.contains(WinState.MINIMIZED));
Assert.assertFalse(winStates.contains(WinState.MAXIMIZED));
// minimize notepad
Assert.assertTrue(Win.minimize(NOTEPAD_TITLE));
winStates = Win.getState_(NOTEPAD_TITLE);
Assert.assertTrue(winStates.contains(WinState.EXISTS));
Assert.assertTrue(winStates.contains(WinState.VISIBLE));
Assert.assertTrue(winStates.contains(WinState.ENABLED));
Assert.assertFalse(winStates.contains(WinState.ACTIVE));
Assert.assertTrue(winStates.contains(WinState.MINIMIZED));
Assert.assertFalse(winStates.contains(WinState.MAXIMIZED));
// restore notepad
Assert.assertTrue(Win.restore(NOTEPAD_TITLE));
winStates = Win.getState_(NOTEPAD_TITLE);
Assert.assertTrue(winStates.contains(WinState.EXISTS));
Assert.assertTrue(winStates.contains(WinState.VISIBLE));
Assert.assertTrue(winStates.contains(WinState.ENABLED));
Assert.assertFalse(winStates.contains(WinState.ACTIVE));
Assert.assertFalse(winStates.contains(WinState.MINIMIZED));
Assert.assertFalse(winStates.contains(WinState.MAXIMIZED));
// active notepad
Win.activate(NOTEPAD_TITLE);
winStates = Win.getState_(NOTEPAD_TITLE);
Assert.assertTrue(winStates.contains(WinState.EXISTS));
Assert.assertTrue(winStates.contains(WinState.VISIBLE));
Assert.assertTrue(winStates.contains(WinState.ENABLED));
Assert.assertTrue(winStates.contains(WinState.ACTIVE));
Assert.assertFalse(winStates.contains(WinState.MINIMIZED));
Assert.assertFalse(winStates.contains(WinState.MAXIMIZED));
// hide notepad
Assert.assertTrue(Win.hide(NOTEPAD_TITLE));
Assert.assertTrue(Win.active(NOTEPAD_TITLE));
winStates = Win.getState_(NOTEPAD_TITLE);
Assert.assertTrue(winStates.contains(WinState.EXISTS));
Assert.assertFalse(winStates.contains(WinState.VISIBLE));
Assert.assertTrue(winStates.contains(WinState.ENABLED));
Assert.assertTrue(winStates.contains(WinState.ACTIVE));
Assert.assertFalse(winStates.contains(WinState.MINIMIZED));
Assert.assertFalse(winStates.contains(WinState.MAXIMIZED));
// close notepad
Process.close(pid);
sleep(500);
Assert.assertFalse(Process.exists(pid));
winStates = Win.getState_(NOTEPAD_TITLE);
Assert.assertNull(winStates);
}
@Test
public void getText() {
// create frame
String title = "getText - " + System.currentTimeMillis();
Frame frame = new Frame(title);
String text1 = "Hello, " + System.currentTimeMillis();
frame.add(new Button(text1));
String text2 = "World, " + System.currentTimeMillis();
frame.add(new Button(text2));
try {
// show frame
frame.setVisible(true);
Assert.assertTrue(Win.active(title));
assertEquals(text1 + "\n" + text2 + "\n", Win.getText(title));
assertEquals(text1 + "\n" + text2 + "\n",
Win.getText((String) null));
assertEquals(text1 + "\n" + text2 + "\n", Win.getText(""));
// minimize frame
Assert.assertTrue(Win.minimize(title));
Assert.assertTrue(Win.minimized(title));
assertEquals(text1 + "\n" + text2 + "\n", Win.getText(title));
// hide frame
Assert.assertTrue(Win.hide(title));
assertEquals("", Win.getText(title));
Opt.setWinDetectHiddenText(true);
assertEquals(text1 + "\n" + text2 + "\n", Win.getText(title));
Opt.setWinDetectHiddenText(false);
assertEquals("", Win.getText(title));
Opt.setWinDetectHiddenText(true);
assertEquals(text1 + "\n" + text2 + "\n", Win.getText(title));
Opt.setWinDetectHiddenText(Opt.DEFAULT_WIN_DETECT_HIDDEN_TEXT);
assertEquals("", Win.getText(title));
} finally {
// destroy frame
frame.setVisible(false);
}
}
@Test
public void getTitle() {
// run notepad
int pid = runNotepad();
assertEquals(NOTEPAD_TITLE, Win.getTitle(NOTEPAD_TITLE_START));
assertEquals(NOTEPAD_TITLE, Win.getTitle(""));
assertEquals(NOTEPAD_TITLE, Win.getTitle((String) null));
Assert.assertNull(Win.getTitle(NOTEPAD_TITLE + currentTimeMillis));
Assert.assertTrue(Win.setTitle(NOTEPAD_TITLE, "0"));
Assert.assertNull(Win.getTitle(NOTEPAD_TITLE_START));
assertEquals("0", Win.getTitle(""));
assertEquals("0", Win.getTitle((String) null));
String handle = Win.getHandle("0");
Assert.assertNotNull(handle);
Assert.assertTrue(Win.setTitle("0", ""));
assertEquals("", Win.getTitle(TitleBuilder.byHandle(handle)));
// close notepad
Process.close(pid);
sleep(500);
Assert.assertFalse(Process.exists(pid));
Assert.assertNull(Win.getTitle(NOTEPAD_TITLE_START));
}
@Test
public void kill() {
// run notepad
int pid = runNotepad();
// kill notepad
Assert.assertTrue(Win.kill(NOTEPAD_TITLE));
sleep(500);
Assert.assertFalse(Process.exists(pid));
Assert.assertFalse(Win.kill(NOTEPAD_TITLE));
}
@Test
public void menuSelectItem() {
// run notepad
int pid = runNotepad();
// select menu item which could not be found
Assert.assertFalse(Win.menuSelectItem(NOTEPAD_TITLE, null, "文件(&F)",
"XXXXX"));
sleep(500);
Assert.assertTrue(Process.exists(pid));
// exit notepad
Assert.assertTrue(Win.menuSelectItem(NOTEPAD_TITLE, null, "文件(&F)",
"退出(&X)"));
sleep(500);
Assert.assertFalse(Process.exists(pid));
}
@Test
public void minimizeAll() {
// run notepad
int pid = runNotepad();
Win.minimizeAll();
sleep(500);
Win.minimizeAllUndo();
// close notepad
Process.close(pid);
sleep(500);
Assert.assertFalse(Process.exists(pid));
}
@Test
public void minimizeAllUndo() {
minimizeAll();
}
@Test
public void move() {
// run notepad
int pid = runNotepad();
final int x = Win.getPosX(NOTEPAD_TITLE);
final int y = Win.getPosY(NOTEPAD_TITLE);
final int width = Win.getWidth(NOTEPAD_TITLE);
final int height = Win.getHeight(NOTEPAD_TITLE);
// move notepad
Assert.assertTrue(Win.move(NOTEPAD_TITLE, x + 40, y + 100, -1, -1));
assertEquals(x + 40, Win.getPosX(NOTEPAD_TITLE));
assertEquals(y + 100, Win.getPosY(NOTEPAD_TITLE));
assertEquals(width, Win.getWidth(NOTEPAD_TITLE));
assertEquals(height, Win.getHeight(NOTEPAD_TITLE));
// resize notepad
Assert.assertTrue(Win.move(NOTEPAD_TITLE, x + 40, y + 100, width + 10,
height + 20));
assertEquals(x + 40, Win.getPosX(NOTEPAD_TITLE));
assertEquals(y + 100, Win.getPosY(NOTEPAD_TITLE));
assertEquals(width + 10, Win.getWidth(NOTEPAD_TITLE));
assertEquals(height + 20, Win.getHeight(NOTEPAD_TITLE));
// move and resize notepad
Assert.assertTrue(Win.move(NOTEPAD_TITLE, x + 50, y + 110, width + 20,
height + 30));
assertEquals(x + 50, Win.getPosX(NOTEPAD_TITLE));
assertEquals(y + 110, Win.getPosY(NOTEPAD_TITLE));
assertEquals(width + 20, Win.getWidth(NOTEPAD_TITLE));
assertEquals(height + 30, Win.getHeight(NOTEPAD_TITLE));
// close notepad
Process.close(pid);
sleep(500);
Assert.assertFalse(Process.exists(pid));
Assert.assertFalse(Win.move(NOTEPAD_PROC_NAME, x + 40, y + 100));
}
@Test
public void setOnTop() {
// run notepad
int pid = runNotepad();
HWND hWnd = User32.INSTANCE.FindWindow(NOTEPAAD_CLASS_NAME,
NOTEPAD_TITLE);
Assert.assertNotNull(hWnd);
assertEquals(0,
User32.INSTANCE.GetWindowLong(hWnd, WinUser.GWL_EXSTYLE)
& User32.WS_EX_TOPMOST);
// set on top
Assert.assertTrue(Win.setOnTop(NOTEPAD_TITLE));
Assert.assertNotEquals(0,
User32.INSTANCE.GetWindowLong(hWnd, WinUser.GWL_EXSTYLE)
& User32.WS_EX_TOPMOST);
// remove on top
Assert.assertTrue(Win.setOnTop(NOTEPAD_TITLE, false));
assertEquals(0,
User32.INSTANCE.GetWindowLong(hWnd, WinUser.GWL_EXSTYLE)
& User32.WS_EX_TOPMOST);
// close notepad
Process.close(pid);
sleep(500);
Assert.assertFalse(Process.exists(pid));
Assert.assertFalse(Win.setOnTop(NOTEPAD_TITLE));
}
@Test
public void show() {
// run notepad
int pid = runNotepad();
Assert.assertTrue(Win.getState_(NOTEPAD_TITLE)
.contains(WinState.ACTIVE));
Assert.assertTrue(Win.getState_(NOTEPAD_TITLE).contains(
WinState.VISIBLE));
Assert.assertTrue(Win.getState_(NOTEPAD_TITLE)
.contains(WinState.EXISTS));
// hide notepad
Win.hide(NOTEPAD_TITLE);
Assert.assertTrue(Win.getState_(NOTEPAD_TITLE)
.contains(WinState.ACTIVE));
Assert.assertFalse(Win.getState_(NOTEPAD_TITLE).contains(
WinState.VISIBLE));
Assert.assertTrue(Win.getState_(NOTEPAD_TITLE)
.contains(WinState.EXISTS));
// show notepad
Win.show(NOTEPAD_TITLE);
Assert.assertTrue(Win.getState_(NOTEPAD_TITLE)
.contains(WinState.ACTIVE));
Assert.assertTrue(Win.getState_(NOTEPAD_TITLE).contains(
WinState.VISIBLE));
Assert.assertTrue(Win.getState_(NOTEPAD_TITLE)
.contains(WinState.EXISTS));
// close notepad
Process.close(pid);
sleep(500);
Assert.assertFalse(Process.exists(pid));
Assert.assertNull(Win.getState_(NOTEPAD_TITLE));
Assert.assertFalse(Win.show(NOTEPAD_TITLE));
}
@Test
public void hide() {
// run notepad
int pid = runNotepad();
Assert.assertTrue(Win.getState_(NOTEPAD_TITLE)
.contains(WinState.ACTIVE));
Assert.assertTrue(Win.getState_(NOTEPAD_TITLE).contains(
WinState.VISIBLE));
Assert.assertTrue(Win.getState_(NOTEPAD_TITLE)
.contains(WinState.EXISTS));
// hide notepad
Win.hide(NOTEPAD_TITLE);
Assert.assertTrue(Win.getState_(NOTEPAD_TITLE)
.contains(WinState.ACTIVE));
Assert.assertFalse(Win.getState_(NOTEPAD_TITLE).contains(
WinState.VISIBLE));
Assert.assertTrue(Win.getState_(NOTEPAD_TITLE)
.contains(WinState.EXISTS));
// show notepad
Win.show(NOTEPAD_TITLE);
Assert.assertTrue(Win.getState_(NOTEPAD_TITLE)
.contains(WinState.ACTIVE));
Assert.assertTrue(Win.getState_(NOTEPAD_TITLE).contains(
WinState.VISIBLE));
Assert.assertTrue(Win.getState_(NOTEPAD_TITLE)
.contains(WinState.EXISTS));
// close notepad
Process.close(pid);
sleep(500);
Assert.assertFalse(Process.exists(pid));
Assert.assertNull(Win.getState_(NOTEPAD_TITLE));
Assert.assertFalse(Win.hide(NOTEPAD_TITLE));
}
@Test
public void minimize() {
// run notepad
int pid = runNotepad();
Assert.assertTrue(Win.getState_(NOTEPAD_TITLE)
.contains(WinState.ACTIVE));
Assert.assertTrue(Win.getState_(NOTEPAD_TITLE).contains(
WinState.VISIBLE));
Assert.assertTrue(Win.getState_(NOTEPAD_TITLE)
.contains(WinState.EXISTS));
Assert.assertFalse(Win.getState_(NOTEPAD_TITLE).contains(
WinState.MINIMIZED));
// minimize notepad
Win.minimize(NOTEPAD_TITLE);
Assert.assertFalse(Win.getState_(NOTEPAD_TITLE).contains(
WinState.ACTIVE));
Assert.assertTrue(Win.getState_(NOTEPAD_TITLE).contains(
WinState.VISIBLE));
Assert.assertTrue(Win.getState_(NOTEPAD_TITLE)
.contains(WinState.EXISTS));
Assert.assertTrue(Win.getState_(NOTEPAD_TITLE).contains(
WinState.MINIMIZED));
// restore notepad
Win.restore(NOTEPAD_TITLE);
Assert.assertFalse(Win.getState_(NOTEPAD_TITLE).contains(
WinState.ACTIVE));
Assert.assertTrue(Win.getState_(NOTEPAD_TITLE).contains(
WinState.VISIBLE));
Assert.assertTrue(Win.getState_(NOTEPAD_TITLE)
.contains(WinState.EXISTS));
Assert.assertFalse(Win.getState_(NOTEPAD_TITLE).contains(
WinState.MINIMIZED));
// close notepad
Process.close(pid);
sleep(500);
Assert.assertFalse(Process.exists(pid));
Assert.assertNull(Win.getState_(NOTEPAD_TITLE));
Assert.assertFalse(Win.minimize(NOTEPAD_TITLE));
}
@Test
public void maximize() {
// run notepad
int pid = runNotepad();
Assert.assertTrue(Win.getState_(NOTEPAD_TITLE)
.contains(WinState.ACTIVE));
Assert.assertTrue(Win.getState_(NOTEPAD_TITLE).contains(
WinState.VISIBLE));
Assert.assertTrue(Win.getState_(NOTEPAD_TITLE)
.contains(WinState.EXISTS));
Assert.assertFalse(Win.getState_(NOTEPAD_TITLE).contains(
WinState.MAXIMIZED));
// maximize notepad
Win.maximize(NOTEPAD_TITLE);
Assert.assertTrue(Win.getState_(NOTEPAD_TITLE)
.contains(WinState.ACTIVE));
Assert.assertTrue(Win.getState_(NOTEPAD_TITLE).contains(
WinState.VISIBLE));
Assert.assertTrue(Win.getState_(NOTEPAD_TITLE)
.contains(WinState.EXISTS));
Assert.assertTrue(Win.getState_(NOTEPAD_TITLE).contains(
WinState.MAXIMIZED));
// restore notepad
Win.restore(NOTEPAD_TITLE);
Assert.assertTrue(Win.getState_(NOTEPAD_TITLE)
.contains(WinState.ACTIVE));
Assert.assertTrue(Win.getState_(NOTEPAD_TITLE).contains(
WinState.VISIBLE));
Assert.assertTrue(Win.getState_(NOTEPAD_TITLE)
.contains(WinState.EXISTS));
Assert.assertFalse(Win.getState_(NOTEPAD_TITLE).contains(
WinState.MAXIMIZED));
// close notepad
Process.close(pid);
sleep(500);
Assert.assertFalse(Process.exists(pid));
Assert.assertNull(Win.getState_(NOTEPAD_TITLE));
Assert.assertFalse(Win.maximize(NOTEPAD_TITLE));
}
@Test
public void restore() {
minimize();
maximize();
}
@Test
public void setTitle() {
final String newNotepadTitle = "----JAutoItX winSetTitle----";
// run notepad
int pid = runNotepad();
// change notepad's title
Assert.assertTrue(Win.setTitle(NOTEPAD_TITLE, newNotepadTitle));
Assert.assertFalse(Win.active(NOTEPAD_TITLE));
Assert.assertTrue(Win.active(newNotepadTitle));
Assert.assertFalse(Win.setTitle(NOTEPAD_TITLE, "hello"));
// restore notepad's title
Assert.assertTrue(Win.setTitle(newNotepadTitle, NOTEPAD_TITLE));
Assert.assertTrue(Win.active(NOTEPAD_TITLE));
Assert.assertFalse(Win.active(newNotepadTitle));
Assert.assertFalse(Win.setTitle(newNotepadTitle, "world"));
// close notepad
Process.close(pid);
sleep(500);
Assert.assertFalse(Process.exists(pid));
}
@Test
public void setTrans() {
// run notepad
int pid = runNotepad();
Assert.assertTrue(Win.setTrans(NOTEPAD_TITLE, 0));
sleep(500);
Assert.assertTrue(Win.setTrans(NOTEPAD_TITLE, 100));
sleep(500);
Assert.assertTrue(Win.setTrans(NOTEPAD_TITLE, 200));
sleep(500);
Assert.assertTrue(Win.setTrans(NOTEPAD_TITLE, 255));
sleep(500);
Assert.assertTrue(Win.setTrans(NOTEPAD_TITLE, 300));
sleep(500);
Assert.assertTrue(Win.setTrans(NOTEPAD_TITLE, 255));
sleep(500);
Assert.assertTrue(Win.setTrans(NOTEPAD_TITLE, 200));
sleep(500);
Assert.assertTrue(Win.setTrans(NOTEPAD_TITLE, 100));
sleep(500);
Assert.assertTrue(Win.setTrans(NOTEPAD_TITLE, 0));
sleep(500);
Assert.assertFalse(Win.setTrans("NotExistWinTitle", 100));
// close notepad
Process.close(pid);
sleep(500);
Assert.assertFalse(Process.exists(pid));
Assert.assertFalse(Win.setTrans("NOTEPAD_TITLE", 100));
}
@Test
public void testWait() {
Assert.assertFalse(Win.exists(NOTEPAD_TITLE));
Assert.assertFalse(Win.wait(NOTEPAD_TITLE, 2));
// Thread thread = new Thread(new Runnable() {
// @Override
// public void run() {
// Win.wait(NOTEPAD_TITLE);
// }
// });
// thread.start();
// sleep(2000);
// Assert.assertTrue(thread.isAlive());
// thread.stop();
Thread thread = new Thread(new Runnable() {
public void run() {
Win.wait(NOTEPAD_TITLE);
}
});
thread.start();
runNotepad();
sleep(4000);
Assert.assertFalse(thread.isAlive());
// close notepad
Win.close(NOTEPAD_TITLE);
Assert.assertFalse(Win.exists(NOTEPAD_TITLE));
}
@SuppressWarnings("deprecation")
@Test
public void waitActive() {
Assert.assertFalse(Win.exists(NOTEPAD_TITLE));
runNotepad();
Assert.assertTrue(Win.exists(NOTEPAD_TITLE));
// minimize notepad
Win.minimize(NOTEPAD_TITLE);
Assert.assertFalse(Win.waitActive(NOTEPAD_TITLE, 2));
Thread thread = new Thread(new Runnable() {
public void run() {
Win.waitActive(NOTEPAD_TITLE);
}
});
thread.start();
sleep(2000);
Assert.assertTrue(thread.isAlive());
thread.stop();
thread = new Thread(new Runnable() {
public void run() {
Win.waitActive(NOTEPAD_TITLE);
}
});
thread.start();
Win.activate(NOTEPAD_TITLE);
sleep(4000);
Assert.assertFalse(thread.isAlive());
// close notepad
Win.close(NOTEPAD_TITLE);
Assert.assertFalse(Win.exists(NOTEPAD_TITLE));
}
@SuppressWarnings("deprecation")
@Test
public void waitClose() {
Assert.assertFalse(Win.exists(NOTEPAD_TITLE));
runNotepad();
Assert.assertTrue(Win.exists(NOTEPAD_TITLE));
Thread thread = new Thread(new Runnable() {
public void run() {
Win.waitClose(NOTEPAD_TITLE);
}
});
thread.start();
sleep(2000);
Assert.assertTrue(thread.isAlive());
thread.stop();
thread = new Thread(new Runnable() {
public void run() {
Win.waitClose(NOTEPAD_TITLE);
}
});
thread.start();
Win.close(NOTEPAD_TITLE);
sleep(4000);
Assert.assertFalse(thread.isAlive());
}
@SuppressWarnings("deprecation")
@Test
public void waitNotActive() {
Assert.assertFalse(Win.exists(NOTEPAD_TITLE));
runNotepad();
Assert.assertTrue(Win.exists(NOTEPAD_TITLE));
// activate notepad
Win.activate(NOTEPAD_TITLE);
Assert.assertFalse(Win.waitNotActive(NOTEPAD_TITLE, 2));
Thread thread = new Thread(new Runnable() {
public void run() {
Win.waitNotActive(NOTEPAD_TITLE);
}
});
thread.start();
sleep(2000);
Assert.assertTrue(thread.isAlive());
thread.stop();
thread = new Thread(new Runnable() {
public void run() {
Win.waitNotActive(NOTEPAD_TITLE);
}
});
thread.start();
Win.minimize(NOTEPAD_TITLE);
sleep(4000);
Assert.assertFalse(thread.isAlive());
// close notepad
Win.close(NOTEPAD_TITLE);
Assert.assertFalse(Win.exists(NOTEPAD_TITLE));
}
}