/** * Copyright (C) 2008 Ovea <dev@testatoo.org> * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.testatoo.input; import org.junit.BeforeClass; import org.junit.Test; import org.testatoo.WebTest; import org.testatoo.cartridge.html4.element.Div; import org.testatoo.core.input.KeyModifier; import org.testatoo.core.input.Keyboard; import static org.hamcrest.Matchers.*; import static org.testatoo.core.ComponentFactory.*; import static org.testatoo.core.Language.assertThat; import static org.testatoo.core.input.Key.*; import static org.testatoo.core.input.KeyModifier.*; public class FullKeyboardTest extends WebTest { @BeforeClass public static void setUp() { page().open("AllKeysTest.html"); } @Test public void can_test_CONTROL_key_modifier() { Keyboard.keyDown(KeyModifier.CONTROL); assertThat(component(Div.class, "_Ctrl_a").classname(), not(containsString("dirty"))); Keyboard.type("a"); assertThat(component(Div.class, "_Ctrl_a").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_b").classname(), not(containsString("dirty"))); Keyboard.type("b"); assertThat(component(Div.class, "_Ctrl_b").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_c").classname(), not(containsString("dirty"))); Keyboard.type("c"); assertThat(component(Div.class, "_Ctrl_c").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_d").classname(), not(containsString("dirty"))); Keyboard.type("d"); assertThat(component(Div.class, "_Ctrl_d").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_e").classname(), not(containsString("dirty"))); Keyboard.type("e"); assertThat(component(Div.class, "_Ctrl_e").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_f").classname(), not(containsString("dirty"))); Keyboard.type("f"); assertThat(component(Div.class, "_Ctrl_f").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_g").classname(), not(containsString("dirty"))); Keyboard.type("g"); assertThat(component(Div.class, "_Ctrl_g").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_h").classname(), not(containsString("dirty"))); Keyboard.type("h"); assertThat(component(Div.class, "_Ctrl_h").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_i").classname(), not(containsString("dirty"))); Keyboard.type("i"); assertThat(component(Div.class, "_Ctrl_i").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_j").classname(), not(containsString("dirty"))); Keyboard.type("j"); assertThat(component(Div.class, "_Ctrl_j").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_k").classname(), not(containsString("dirty"))); Keyboard.type("k"); assertThat(component(Div.class, "_Ctrl_k").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_l").classname(), not(containsString("dirty"))); Keyboard.type("l"); assertThat(component(Div.class, "_Ctrl_l").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_m").classname(), not(containsString("dirty"))); Keyboard.type("m"); assertThat(component(Div.class, "_Ctrl_m").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_n").classname(), not(containsString("dirty"))); Keyboard.type("n"); assertThat(component(Div.class, "_Ctrl_n").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_o").classname(), not(containsString("dirty"))); Keyboard.type("o"); assertThat(component(Div.class, "_Ctrl_o").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_p").classname(), not(containsString("dirty"))); Keyboard.type("p"); assertThat(component(Div.class, "_Ctrl_p").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_q").classname(), not(containsString("dirty"))); Keyboard.type("q"); assertThat(component(Div.class, "_Ctrl_q").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_r").classname(), not(containsString("dirty"))); Keyboard.type("r"); assertThat(component(Div.class, "_Ctrl_r").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_s").classname(), not(containsString("dirty"))); Keyboard.type("s"); assertThat(component(Div.class, "_Ctrl_s").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_t").classname(), not(containsString("dirty"))); Keyboard.type("t"); assertThat(component(Div.class, "_Ctrl_t").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_u").classname(), not(containsString("dirty"))); Keyboard.type("u"); assertThat(component(Div.class, "_Ctrl_u").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_v").classname(), not(containsString("dirty"))); Keyboard.type("v"); assertThat(component(Div.class, "_Ctrl_v").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_w").classname(), not(containsString("dirty"))); Keyboard.type("w"); assertThat(component(Div.class, "_Ctrl_w").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_x").classname(), not(containsString("dirty"))); Keyboard.type("x"); assertThat(component(Div.class, "_Ctrl_x").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_y").classname(), not(containsString("dirty"))); Keyboard.type("y"); assertThat(component(Div.class, "_Ctrl_y").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_z").classname(), not(containsString("dirty"))); Keyboard.type("z"); assertThat(component(Div.class, "_Ctrl_z").classname(), containsString("dirty")); Keyboard.release(); } @Test public void can_test_SHIFT_key_modifier() { Keyboard.keyDown(SHIFT); assertThat(component(Div.class, "_Shift_a").classname(), not(containsString("dirty"))); Keyboard.type("a"); assertThat(component(Div.class, "_Shift_a").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_b").classname(), not(containsString("dirty"))); Keyboard.type("b"); assertThat(component(Div.class, "_Shift_b").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_c").classname(), not(containsString("dirty"))); Keyboard.type("c"); assertThat(component(Div.class, "_Shift_c").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_d").classname(), not(containsString("dirty"))); Keyboard.type("d"); assertThat(component(Div.class, "_Shift_d").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_e").classname(), not(containsString("dirty"))); Keyboard.type("e"); assertThat(component(Div.class, "_Shift_e").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_f").classname(), not(containsString("dirty"))); Keyboard.type("f"); assertThat(component(Div.class, "_Shift_f").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_g").classname(), not(containsString("dirty"))); Keyboard.type("g"); assertThat(component(Div.class, "_Shift_g").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_h").classname(), not(containsString("dirty"))); Keyboard.type("h"); assertThat(component(Div.class, "_Shift_h").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_i").classname(), not(containsString("dirty"))); Keyboard.type("i"); assertThat(component(Div.class, "_Shift_i").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_j").classname(), not(containsString("dirty"))); Keyboard.type("j"); assertThat(component(Div.class, "_Shift_j").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_k").classname(), not(containsString("dirty"))); Keyboard.type("k"); assertThat(component(Div.class, "_Shift_k").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_l").classname(), not(containsString("dirty"))); Keyboard.type("l"); assertThat(component(Div.class, "_Shift_l").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_m").classname(), not(containsString("dirty"))); Keyboard.type("m"); assertThat(component(Div.class, "_Shift_m").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_n").classname(), not(containsString("dirty"))); Keyboard.type("n"); assertThat(component(Div.class, "_Shift_n").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_o").classname(), not(containsString("dirty"))); Keyboard.type("o"); assertThat(component(Div.class, "_Shift_o").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_p").classname(), not(containsString("dirty"))); Keyboard.type("p"); assertThat(component(Div.class, "_Shift_p").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_q").classname(), not(containsString("dirty"))); Keyboard.type("q"); assertThat(component(Div.class, "_Shift_q").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_r").classname(), not(containsString("dirty"))); Keyboard.type("r"); assertThat(component(Div.class, "_Shift_r").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_s").classname(), not(containsString("dirty"))); Keyboard.type("s"); assertThat(component(Div.class, "_Shift_s").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_t").classname(), not(containsString("dirty"))); Keyboard.type("t"); assertThat(component(Div.class, "_Shift_t").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_u").classname(), not(containsString("dirty"))); Keyboard.type("u"); assertThat(component(Div.class, "_Shift_u").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_v").classname(), not(containsString("dirty"))); Keyboard.type("v"); assertThat(component(Div.class, "_Shift_v").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_w").classname(), not(containsString("dirty"))); Keyboard.type("w"); assertThat(component(Div.class, "_Shift_w").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_x").classname(), not(containsString("dirty"))); Keyboard.type("x"); assertThat(component(Div.class, "_Shift_x").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_y").classname(), not(containsString("dirty"))); Keyboard.type("y"); assertThat(component(Div.class, "_Shift_y").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_z").classname(), not(containsString("dirty"))); Keyboard.type("z"); assertThat(component(Div.class, "_Shift_z").classname(), containsString("dirty")); Keyboard.release(); } @Test public void can_test_ALT_key_modifier() { Keyboard.keyDown(ALT); assertThat(component(Div.class, "_Alt_a").classname(), not(containsString("dirty"))); Keyboard.type("a"); assertThat(component(Div.class, "_Alt_a").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_b").classname(), not(containsString("dirty"))); Keyboard.type("b"); assertThat(component(Div.class, "_Alt_b").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_c").classname(), not(containsString("dirty"))); Keyboard.type("c"); assertThat(component(Div.class, "_Alt_c").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_d").classname(), not(containsString("dirty"))); Keyboard.type("d"); assertThat(component(Div.class, "_Alt_d").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_e").classname(), not(containsString("dirty"))); Keyboard.type("e"); assertThat(component(Div.class, "_Alt_e").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_f").classname(), not(containsString("dirty"))); Keyboard.type("f"); assertThat(component(Div.class, "_Alt_f").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_g").classname(), not(containsString("dirty"))); Keyboard.type("g"); assertThat(component(Div.class, "_Alt_g").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_h").classname(), not(containsString("dirty"))); Keyboard.type("h"); assertThat(component(Div.class, "_Alt_h").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_i").classname(), not(containsString("dirty"))); Keyboard.type("i"); assertThat(component(Div.class, "_Alt_i").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_j").classname(), not(containsString("dirty"))); Keyboard.type("j"); assertThat(component(Div.class, "_Alt_j").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_k").classname(), not(containsString("dirty"))); Keyboard.type("k"); assertThat(component(Div.class, "_Alt_k").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_l").classname(), not(containsString("dirty"))); Keyboard.type("l"); assertThat(component(Div.class, "_Alt_l").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_m").classname(), not(containsString("dirty"))); Keyboard.type("m"); assertThat(component(Div.class, "_Alt_m").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_n").classname(), not(containsString("dirty"))); Keyboard.type("n"); assertThat(component(Div.class, "_Alt_n").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_o").classname(), not(containsString("dirty"))); Keyboard.type("o"); assertThat(component(Div.class, "_Alt_o").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_p").classname(), not(containsString("dirty"))); Keyboard.type("p"); assertThat(component(Div.class, "_Alt_p").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_q").classname(), not(containsString("dirty"))); Keyboard.type("q"); assertThat(component(Div.class, "_Alt_q").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_r").classname(), not(containsString("dirty"))); Keyboard.type("r"); assertThat(component(Div.class, "_Alt_r").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_s").classname(), not(containsString("dirty"))); Keyboard.type("s"); assertThat(component(Div.class, "_Alt_s").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_t").classname(), not(containsString("dirty"))); Keyboard.type("t"); assertThat(component(Div.class, "_Alt_t").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_u").classname(), not(containsString("dirty"))); Keyboard.type("u"); assertThat(component(Div.class, "_Alt_u").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_v").classname(), not(containsString("dirty"))); Keyboard.type("v"); assertThat(component(Div.class, "_Alt_v").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_w").classname(), not(containsString("dirty"))); Keyboard.type("w"); assertThat(component(Div.class, "_Alt_w").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_x").classname(), not(containsString("dirty"))); Keyboard.type("x"); assertThat(component(Div.class, "_Alt_x").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_y").classname(), not(containsString("dirty"))); Keyboard.type("y"); assertThat(component(Div.class, "_Alt_y").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_z").classname(), not(containsString("dirty"))); Keyboard.type("z"); assertThat(component(Div.class, "_Alt_z").classname(), containsString("dirty")); Keyboard.release(); } @Test public void generalKeyTest() { assertThat(component(Div.class, "_a").classname(), not(containsString("dirty"))); Keyboard.type("a"); assertThat(component(Div.class, "_a").classname(), containsString("dirty")); assertThat(component(Div.class, "_b").classname(), not(containsString("dirty"))); Keyboard.type("b"); assertThat(component(Div.class, "_b").classname(), containsString("dirty")); assertThat(component(Div.class, "_c").classname(), not(containsString("dirty"))); Keyboard.type("c"); assertThat(component(Div.class, "_c").classname(), containsString("dirty")); assertThat(component(Div.class, "_d").classname(), not(containsString("dirty"))); Keyboard.type("d"); assertThat(component(Div.class, "_d").classname(), containsString("dirty")); assertThat(component(Div.class, "_e").classname(), not(containsString("dirty"))); Keyboard.type("e"); assertThat(component(Div.class, "_e").classname(), containsString("dirty")); assertThat(component(Div.class, "_f").classname(), not(containsString("dirty"))); Keyboard.type("f"); assertThat(component(Div.class, "_f").classname(), containsString("dirty")); assertThat(component(Div.class, "_g").classname(), not(containsString("dirty"))); Keyboard.type("g"); assertThat(component(Div.class, "_g").classname(), containsString("dirty")); assertThat(component(Div.class, "_h").classname(), not(containsString("dirty"))); Keyboard.type("h"); assertThat(component(Div.class, "_h").classname(), containsString("dirty")); assertThat(component(Div.class, "_i").classname(), not(containsString("dirty"))); Keyboard.type("i"); assertThat(component(Div.class, "_i").classname(), containsString("dirty")); assertThat(component(Div.class, "_j").classname(), not(containsString("dirty"))); Keyboard.type("j"); assertThat(component(Div.class, "_j").classname(), containsString("dirty")); assertThat(component(Div.class, "_k").classname(), not(containsString("dirty"))); Keyboard.type("k"); assertThat(component(Div.class, "_k").classname(), containsString("dirty")); assertThat(component(Div.class, "_l").classname(), not(containsString("dirty"))); Keyboard.type("l"); assertThat(component(Div.class, "_l").classname(), containsString("dirty")); assertThat(component(Div.class, "_m").classname(), not(containsString("dirty"))); Keyboard.type("m"); assertThat(component(Div.class, "_m").classname(), containsString("dirty")); assertThat(component(Div.class, "_n").classname(), not(containsString("dirty"))); Keyboard.type("n"); assertThat(component(Div.class, "_n").classname(), containsString("dirty")); assertThat(component(Div.class, "_o").classname(), not(containsString("dirty"))); Keyboard.type("o"); assertThat(component(Div.class, "_o").classname(), containsString("dirty")); assertThat(component(Div.class, "_p").classname(), not(containsString("dirty"))); Keyboard.type("p"); assertThat(component(Div.class, "_p").classname(), containsString("dirty")); assertThat(component(Div.class, "_q").classname(), not(containsString("dirty"))); Keyboard.type("q"); assertThat(component(Div.class, "_q").classname(), containsString("dirty")); assertThat(component(Div.class, "_r").classname(), not(containsString("dirty"))); Keyboard.type("r"); assertThat(component(Div.class, "_r").classname(), containsString("dirty")); assertThat(component(Div.class, "_s").classname(), not(containsString("dirty"))); Keyboard.type("s"); assertThat(component(Div.class, "_s").classname(), containsString("dirty")); assertThat(component(Div.class, "_t").classname(), not(containsString("dirty"))); Keyboard.type("t"); assertThat(component(Div.class, "_t").classname(), containsString("dirty")); assertThat(component(Div.class, "_u").classname(), not(containsString("dirty"))); Keyboard.type("u"); assertThat(component(Div.class, "_u").classname(), containsString("dirty")); assertThat(component(Div.class, "_v").classname(), not(containsString("dirty"))); Keyboard.type("v"); assertThat(component(Div.class, "_v").classname(), containsString("dirty")); assertThat(component(Div.class, "_w").classname(), not(containsString("dirty"))); Keyboard.type("w"); assertThat(component(Div.class, "_w").classname(), containsString("dirty")); assertThat(component(Div.class, "_x").classname(), not(containsString("dirty"))); Keyboard.type("x"); assertThat(component(Div.class, "_x").classname(), containsString("dirty")); assertThat(component(Div.class, "_y").classname(), not(containsString("dirty"))); Keyboard.type("y"); assertThat(component(Div.class, "_y").classname(), containsString("dirty")); assertThat(component(Div.class, "_z").classname(), not(containsString("dirty"))); Keyboard.type("z"); assertThat(component(Div.class, "_z").classname(), containsString("dirty")); assertThat(component(Div.class, "_f1").classname(), not(containsString("dirty"))); Keyboard.press(F1); assertThat(component(Div.class, "_f1").classname(), containsString("dirty")); assertThat(component(Div.class, "_f2").classname(), not(containsString("dirty"))); Keyboard.press(F2); assertThat(component(Div.class, "_f2").classname(), containsString("dirty")); assertThat(component(Div.class, "_f3").classname(), not(containsString("dirty"))); Keyboard.press(F3); assertThat(component(Div.class, "_f3").classname(), containsString("dirty")); assertThat(component(Div.class, "_f4").classname(), not(containsString("dirty"))); Keyboard.press(F4); assertThat(component(Div.class, "_f4").classname(), containsString("dirty")); assertThat(component(Div.class, "_f5").classname(), not(containsString("dirty"))); Keyboard.press(F5); assertThat(component(Div.class, "_f5").classname(), containsString("dirty")); assertThat(component(Div.class, "_f6").classname(), not(containsString("dirty"))); Keyboard.press(F6); assertThat(component(Div.class, "_f6").classname(), containsString("dirty")); assertThat(component(Div.class, "_f7").classname(), not(containsString("dirty"))); Keyboard.press(F7); assertThat(component(Div.class, "_f7").classname(), containsString("dirty")); assertThat(component(Div.class, "_f8").classname(), not(containsString("dirty"))); Keyboard.press(F8); assertThat(component(Div.class, "_f8").classname(), containsString("dirty")); assertThat(component(Div.class, "_f9").classname(), not(containsString("dirty"))); Keyboard.press(F9); assertThat(component(Div.class, "_f9").classname(), containsString("dirty")); assertThat(component(Div.class, "_f10").classname(), not(containsString("dirty"))); Keyboard.press(F10); assertThat(component(Div.class, "_f10").classname(), containsString("dirty")); assertThat(component(Div.class, "_f11").classname(), not(containsString("dirty"))); Keyboard.press(F11); assertThat(component(Div.class, "_f11").classname(), containsString("dirty")); assertThat(component(Div.class, "_f12").classname(), not(containsString("dirty"))); Keyboard.press(F12); assertThat(component(Div.class, "_f12").classname(), containsString("dirty")); assertThat(component(Div.class, "_0").classname(), not(containsString("dirty"))); Keyboard.press(NUMPAD0); assertThat(component(Div.class, "_0").classname(), containsString("dirty")); assertThat(component(Div.class, "_1").classname(), not(containsString("dirty"))); Keyboard.press(NUMPAD1); assertThat(component(Div.class, "_1").classname(), containsString("dirty")); assertThat(component(Div.class, "_2").classname(), not(containsString("dirty"))); Keyboard.press(NUMPAD2); assertThat(component(Div.class, "_2").classname(), containsString("dirty")); assertThat(component(Div.class, "_3").classname(), not(containsString("dirty"))); Keyboard.press(NUMPAD3); assertThat(component(Div.class, "_3").classname(), containsString("dirty")); assertThat(component(Div.class, "_4").classname(), not(containsString("dirty"))); Keyboard.press(NUMPAD4); assertThat(component(Div.class, "_4").classname(), containsString("dirty")); assertThat(component(Div.class, "_5").classname(), not(containsString("dirty"))); Keyboard.press(NUMPAD5); assertThat(component(Div.class, "_5").classname(), containsString("dirty")); assertThat(component(Div.class, "_6").classname(), not(containsString("dirty"))); Keyboard.press(NUMPAD6); assertThat(component(Div.class, "_6").classname(), containsString("dirty")); assertThat(component(Div.class, "_7").classname(), not(containsString("dirty"))); Keyboard.press(NUMPAD7); assertThat(component(Div.class, "_7").classname(), containsString("dirty")); assertThat(component(Div.class, "_8").classname(), not(containsString("dirty"))); Keyboard.press(NUMPAD8); assertThat(component(Div.class, "_8").classname(), containsString("dirty")); assertThat(component(Div.class, "_9").classname(), not(containsString("dirty"))); Keyboard.press(NUMPAD9); assertThat(component(Div.class, "_9").classname(), containsString("dirty")); assertThat(component(Div.class, "_backspace").classname(), not(containsString("dirty"))); Keyboard.press(BACKSPACE); assertThat(component(Div.class, "_backspace").classname(), containsString("dirty")); assertThat(component(Div.class, "_tab").classname(), not(containsString("dirty"))); Keyboard.press(TAB); assertThat(component(Div.class, "_tab").classname(), containsString("dirty")); assertThat(component(Div.class, "_return").classname(), not(containsString("dirty"))); Keyboard.press(ENTER); assertThat(component(Div.class, "_return").classname(), containsString("dirty")); assertThat(component(Div.class, "_pause").classname(), not(containsString("dirty"))); Keyboard.press(PAUSE); assertThat(component(Div.class, "_pause").classname(), containsString("dirty")); assertThat(component(Div.class, "_esc").classname(), not(containsString("dirty"))); Keyboard.press(ESCAPE); assertThat(component(Div.class, "_esc").classname(), containsString("dirty")); assertThat(component(Div.class, "_space").classname(), not(containsString("dirty"))); Keyboard.press(SPACE); assertThat(component(Div.class, "_space").classname(), containsString("dirty")); assertThat(component(Div.class, "_pageup").classname(), not(containsString("dirty"))); Keyboard.press(PAGE_UP); assertThat(component(Div.class, "_pageup").classname(), containsString("dirty")); assertThat(component(Div.class, "_pagedown").classname(), not(containsString("dirty"))); Keyboard.press(PAGE_DOWN); assertThat(component(Div.class, "_pagedown").classname(), containsString("dirty")); assertThat(component(Div.class, "_end").classname(), not(containsString("dirty"))); Keyboard.press(END); assertThat(component(Div.class, "_end").classname(), containsString("dirty")); assertThat(component(Div.class, "_home").classname(), not(containsString("dirty"))); Keyboard.press(HOME); assertThat(component(Div.class, "_home").classname(), containsString("dirty")); assertThat(component(Div.class, "_left").classname(), not(containsString("dirty"))); Keyboard.press(LEFT_ARROW); assertThat(component(Div.class, "_left").classname(), containsString("dirty")); assertThat(component(Div.class, "_up").classname(), not(containsString("dirty"))); Keyboard.press(UP_ARROW); assertThat(component(Div.class, "_up").classname(), containsString("dirty")); assertThat(component(Div.class, "_right").classname(), not(containsString("dirty"))); Keyboard.press(RIGHT_ARROW); assertThat(component(Div.class, "_right").classname(), containsString("dirty")); assertThat(component(Div.class, "_down").classname(), not(containsString("dirty"))); Keyboard.press(DOWN_ARROW); assertThat(component(Div.class, "_down").classname(), containsString("dirty")); assertThat(component(Div.class, "_insert").classname(), not(containsString("dirty"))); Keyboard.press(INSERT); assertThat(component(Div.class, "_insert").classname(), containsString("dirty")); assertThat(component(Div.class, "_del").classname(), not(containsString("dirty"))); Keyboard.press(DELETE); assertThat(component(Div.class, "_del").classname(), containsString("dirty")); assertThat(component(Div.class, "_scroll").classname(), not(containsString("dirty"))); Keyboard.press(SCROLL_LOCK); assertThat(component(Div.class, "_scroll").classname(), containsString("dirty")); assertThat(component(Div.class, "_capslock").classname(), not(containsString("dirty"))); Keyboard.press(CAPS_LOCK); assertThat(component(Div.class, "_capslock").classname(), containsString("dirty")); assertThat(component(Div.class, "_numlock").classname(), not(containsString("dirty"))); Keyboard.press(NUM_LOCK); assertThat(component(Div.class, "_numlock").classname(), containsString("dirty")); // ADD, // MULTIPLY, // SUBTRACT, // DIVIDE, } @Test public void can_test_CONTROL_Key() { Keyboard.keyDown(CONTROL); assertThat(component(Div.class, "_Ctrl_esc").classname(), not(containsString("dirty"))); Keyboard.press(ESCAPE); assertThat(component(Div.class, "_Ctrl_esc").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_tab").classname(), not(containsString("dirty"))); Keyboard.press(TAB); assertThat(component(Div.class, "_Ctrl_tab").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_space").classname(), not(containsString("dirty"))); Keyboard.press(SPACE); assertThat(component(Div.class, "_Ctrl_space").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_return").classname(), not(containsString("dirty"))); Keyboard.press(ENTER); assertThat(component(Div.class, "_Ctrl_return").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_backspace").classname(), not(containsString("dirty"))); Keyboard.press(BACKSPACE); assertThat(component(Div.class, "_Ctrl_backspace").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_scroll").classname(), not(containsString("dirty"))); Keyboard.press(SCROLL_LOCK); assertThat(component(Div.class, "_Ctrl_scroll").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_capslock").classname(), not(containsString("dirty"))); Keyboard.press(CAPS_LOCK); assertThat(component(Div.class, "_Ctrl_capslock").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_numlock").classname(), not(containsString("dirty"))); Keyboard.press(NUM_LOCK); assertThat(component(Div.class, "_Ctrl_numlock").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_pause").classname(), not(containsString("dirty"))); Keyboard.press(PAUSE); assertThat(component(Div.class, "_Ctrl_pause").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_insert").classname(), not(containsString("dirty"))); Keyboard.press(INSERT); assertThat(component(Div.class, "_Ctrl_insert").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_home").classname(), not(containsString("dirty"))); Keyboard.press(HOME); assertThat(component(Div.class, "_Ctrl_home").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_del").classname(), not(containsString("dirty"))); Keyboard.press(DELETE); assertThat(component(Div.class, "_Ctrl_del").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_end").classname(), not(containsString("dirty"))); Keyboard.press(END); assertThat(component(Div.class, "_Ctrl_end").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_pageup").classname(), not(containsString("dirty"))); Keyboard.press(PAGE_UP); assertThat(component(Div.class, "_Ctrl_pageup").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_pagedown").classname(), not(containsString("dirty"))); Keyboard.press(PAGE_DOWN); assertThat(component(Div.class, "_Ctrl_pagedown").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_left").classname(), not(containsString("dirty"))); Keyboard.press(LEFT_ARROW); assertThat(component(Div.class, "_Ctrl_left").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_up").classname(), not(containsString("dirty"))); Keyboard.press(UP_ARROW); assertThat(component(Div.class, "_Ctrl_up").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_right").classname(), not(containsString("dirty"))); Keyboard.press(RIGHT_ARROW); assertThat(component(Div.class, "_Ctrl_right").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_down").classname(), not(containsString("dirty"))); Keyboard.press(DOWN_ARROW); assertThat(component(Div.class, "_Ctrl_down").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_f1").classname(), not(containsString("dirty"))); Keyboard.press(F1); assertThat(component(Div.class, "_Ctrl_f1").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_f2").classname(), not(containsString("dirty"))); Keyboard.press(F2); assertThat(component(Div.class, "_Ctrl_f2").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_f3").classname(), not(containsString("dirty"))); Keyboard.press(F3); assertThat(component(Div.class, "_Ctrl_f3").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_f4").classname(), not(containsString("dirty"))); Keyboard.press(F4); assertThat(component(Div.class, "_Ctrl_f4").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_f5").classname(), not(containsString("dirty"))); Keyboard.press(F5); assertThat(component(Div.class, "_Ctrl_f5").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_f6").classname(), not(containsString("dirty"))); Keyboard.press(F6); assertThat(component(Div.class, "_Ctrl_f6").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_f7").classname(), not(containsString("dirty"))); Keyboard.press(F7); assertThat(component(Div.class, "_Ctrl_f7").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_f8").classname(), not(containsString("dirty"))); Keyboard.press(F8); assertThat(component(Div.class, "_Ctrl_f8").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_f9").classname(), not(containsString("dirty"))); Keyboard.press(F9); assertThat(component(Div.class, "_Ctrl_f9").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_f10").classname(), not(containsString("dirty"))); Keyboard.press(F10); assertThat(component(Div.class, "_Ctrl_f10").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_f11").classname(), not(containsString("dirty"))); Keyboard.press(F11); assertThat(component(Div.class, "_Ctrl_f11").classname(), containsString("dirty")); assertThat(component(Div.class, "_Ctrl_f12").classname(), not(containsString("dirty"))); Keyboard.press(F12); assertThat(component(Div.class, "_Ctrl_f12").classname(), containsString("dirty")); Keyboard.release(); } @Test public void can_test_SHIFT_Key() { Keyboard.keyDown(SHIFT); assertThat(component(Div.class, "_Shift_esc").classname(), not(containsString("dirty"))); Keyboard.press(ESCAPE); assertThat(component(Div.class, "_Shift_esc").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_tab").classname(), not(containsString("dirty"))); Keyboard.press(TAB); assertThat(component(Div.class, "_Shift_tab").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_space").classname(), not(containsString("dirty"))); Keyboard.press(SPACE); assertThat(component(Div.class, "_Shift_space").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_return").classname(), not(containsString("dirty"))); Keyboard.press(ENTER); assertThat(component(Div.class, "_Shift_return").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_backspace").classname(), not(containsString("dirty"))); Keyboard.press(BACKSPACE); assertThat(component(Div.class, "_Shift_backspace").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_scroll").classname(), not(containsString("dirty"))); Keyboard.press(SCROLL_LOCK); assertThat(component(Div.class, "_Shift_scroll").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_capslock").classname(), not(containsString("dirty"))); Keyboard.press(CAPS_LOCK); assertThat(component(Div.class, "_Shift_capslock").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_numlock").classname(), not(containsString("dirty"))); Keyboard.press(NUM_LOCK); assertThat(component(Div.class, "_Shift_numlock").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_pause").classname(), not(containsString("dirty"))); Keyboard.press(PAUSE); assertThat(component(Div.class, "_Shift_pause").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_insert").classname(), not(containsString("dirty"))); Keyboard.press(INSERT); assertThat(component(Div.class, "_Shift_insert").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_home").classname(), not(containsString("dirty"))); Keyboard.press(HOME); assertThat(component(Div.class, "_Shift_home").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_del").classname(), not(containsString("dirty"))); Keyboard.press(DELETE); assertThat(component(Div.class, "_Shift_del").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_end").classname(), not(containsString("dirty"))); Keyboard.press(END); assertThat(component(Div.class, "_Shift_end").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_pageup").classname(), not(containsString("dirty"))); Keyboard.press(PAGE_UP); assertThat(component(Div.class, "_Shift_pageup").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_pagedown").classname(), not(containsString("dirty"))); Keyboard.press(PAGE_DOWN); assertThat(component(Div.class, "_Shift_pagedown").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_left").classname(), not(containsString("dirty"))); Keyboard.press(LEFT_ARROW); assertThat(component(Div.class, "_Shift_left").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_up").classname(), not(containsString("dirty"))); Keyboard.press(UP_ARROW); assertThat(component(Div.class, "_Shift_up").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_right").classname(), not(containsString("dirty"))); Keyboard.press(RIGHT_ARROW); assertThat(component(Div.class, "_Shift_right").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_down").classname(), not(containsString("dirty"))); Keyboard.press(DOWN_ARROW); assertThat(component(Div.class, "_Shift_down").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_f1").classname(), not(containsString("dirty"))); Keyboard.press(F1); assertThat(component(Div.class, "_Shift_f1").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_f2").classname(), not(containsString("dirty"))); Keyboard.press(F2); assertThat(component(Div.class, "_Shift_f2").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_f3").classname(), not(containsString("dirty"))); Keyboard.press(F3); assertThat(component(Div.class, "_Shift_f3").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_f4").classname(), not(containsString("dirty"))); Keyboard.press(F4); assertThat(component(Div.class, "_Shift_f4").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_f5").classname(), not(containsString("dirty"))); Keyboard.press(F5); assertThat(component(Div.class, "_Shift_f5").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_f6").classname(), not(containsString("dirty"))); Keyboard.press(F6); assertThat(component(Div.class, "_Shift_f6").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_f7").classname(), not(containsString("dirty"))); Keyboard.press(F7); assertThat(component(Div.class, "_Shift_f7").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_f8").classname(), not(containsString("dirty"))); Keyboard.press(F8); assertThat(component(Div.class, "_Shift_f8").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_f9").classname(), not(containsString("dirty"))); Keyboard.press(F9); assertThat(component(Div.class, "_Shift_f9").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_f10").classname(), not(containsString("dirty"))); Keyboard.press(F10); assertThat(component(Div.class, "_Shift_f10").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_f11").classname(), not(containsString("dirty"))); Keyboard.press(F11); assertThat(component(Div.class, "_Shift_f11").classname(), containsString("dirty")); assertThat(component(Div.class, "_Shift_f12").classname(), not(containsString("dirty"))); Keyboard.press(F12); assertThat(component(Div.class, "_Shift_f12").classname(), containsString("dirty")); Keyboard.release(); } @Test public void can_test_ALT_Key() { Keyboard.keyDown(ALT); assertThat(component(Div.class, "_Alt_esc").classname(), not(containsString("dirty"))); Keyboard.press(ESCAPE); assertThat(component(Div.class, "_Alt_esc").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_tab").classname(), not(containsString("dirty"))); Keyboard.press(TAB); assertThat(component(Div.class, "_Alt_tab").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_space").classname(), not(containsString("dirty"))); Keyboard.press(SPACE); assertThat(component(Div.class, "_Alt_space").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_return").classname(), not(containsString("dirty"))); Keyboard.press(ENTER); assertThat(component(Div.class, "_Alt_return").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_backspace").classname(), not(containsString("dirty"))); Keyboard.press(BACKSPACE); assertThat(component(Div.class, "_Alt_backspace").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_scroll").classname(), not(containsString("dirty"))); Keyboard.press(SCROLL_LOCK); assertThat(component(Div.class, "_Alt_scroll").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_capslock").classname(), not(containsString("dirty"))); Keyboard.press(CAPS_LOCK); assertThat(component(Div.class, "_Alt_capslock").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_numlock").classname(), not(containsString("dirty"))); Keyboard.press(NUM_LOCK); assertThat(component(Div.class, "_Alt_numlock").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_pause").classname(), not(containsString("dirty"))); Keyboard.press(PAUSE); assertThat(component(Div.class, "_Alt_pause").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_insert").classname(), not(containsString("dirty"))); Keyboard.press(INSERT); assertThat(component(Div.class, "_Alt_insert").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_home").classname(), not(containsString("dirty"))); Keyboard.press(HOME); assertThat(component(Div.class, "_Alt_home").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_del").classname(), not(containsString("dirty"))); Keyboard.press(DELETE); assertThat(component(Div.class, "_Alt_del").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_end").classname(), not(containsString("dirty"))); Keyboard.press(END); assertThat(component(Div.class, "_Alt_end").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_pageup").classname(), not(containsString("dirty"))); Keyboard.press(PAGE_UP); assertThat(component(Div.class, "_Alt_pageup").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_pagedown").classname(), not(containsString("dirty"))); Keyboard.press(PAGE_DOWN); assertThat(component(Div.class, "_Alt_pagedown").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_left").classname(), not(containsString("dirty"))); Keyboard.press(LEFT_ARROW); assertThat(component(Div.class, "_Alt_left").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_up").classname(), not(containsString("dirty"))); Keyboard.press(UP_ARROW); assertThat(component(Div.class, "_Alt_up").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_right").classname(), not(containsString("dirty"))); Keyboard.press(RIGHT_ARROW); assertThat(component(Div.class, "_Alt_right").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_down").classname(), not(containsString("dirty"))); Keyboard.press(DOWN_ARROW); assertThat(component(Div.class, "_Alt_down").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_f1").classname(), not(containsString("dirty"))); Keyboard.press(F1); assertThat(component(Div.class, "_Alt_f1").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_f2").classname(), not(containsString("dirty"))); Keyboard.press(F2); assertThat(component(Div.class, "_Alt_f2").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_f3").classname(), not(containsString("dirty"))); Keyboard.press(F3); assertThat(component(Div.class, "_Alt_f3").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_f4").classname(), not(containsString("dirty"))); Keyboard.press(F4); assertThat(component(Div.class, "_Alt_f4").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_f5").classname(), not(containsString("dirty"))); Keyboard.press(F5); assertThat(component(Div.class, "_Alt_f5").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_f6").classname(), not(containsString("dirty"))); Keyboard.press(F6); assertThat(component(Div.class, "_Alt_f6").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_f7").classname(), not(containsString("dirty"))); Keyboard.press(F7); assertThat(component(Div.class, "_Alt_f7").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_f8").classname(), not(containsString("dirty"))); Keyboard.press(F8); assertThat(component(Div.class, "_Alt_f8").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_f9").classname(), not(containsString("dirty"))); Keyboard.press(F9); assertThat(component(Div.class, "_Alt_f9").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_f10").classname(), not(containsString("dirty"))); Keyboard.press(F10); assertThat(component(Div.class, "_Alt_f10").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_f11").classname(), not(containsString("dirty"))); Keyboard.press(F11); assertThat(component(Div.class, "_Alt_f11").classname(), containsString("dirty")); assertThat(component(Div.class, "_Alt_f12").classname(), not(containsString("dirty"))); Keyboard.press(F12); assertThat(component(Div.class, "_Alt_f12").classname(), containsString("dirty")); Keyboard.release(); } }