/** Simulates the user typing {@code value}, with a key down/press/up for each char, without a final change. */ public void typeEachWithoutBlur(String value) { String oldValue = getValue(); press(value); ValueChangeEvent.fireIfNotEqual(this, oldValue, getValue()); }
@Test public void testKeyCodeMapping() { final int[] keyCode = { -1 }; box.addKeyDownHandler(new KeyDownHandler() { public void onKeyDown(KeyDownEvent event) { keyCode[0] = event.getNativeKeyCode(); } }); box.press("a"); assertThat(keyCode[0], is(65)); box.press("B"); assertThat(keyCode[0], is(66)); }
@Test public void testBackspace() { box.type("as"); assertThat(box.getValue(), is("as")); box.press(KeyCodes.KEY_BACKSPACE); assertThat(box.getValue(), is("a")); box.press(KeyCodes.KEY_BACKSPACE); assertThat(box.getValue(), is("")); box.press(KeyCodes.KEY_BACKSPACE); assertThat(box.getValue(), is("")); }
@Test public void testPressKeyCodesFiresNoChange() { box.type("as"); final int[] changes = { 0 }; box.addValueChangeHandler(new ValueChangeHandler<String>() { public void onValueChange(ValueChangeEvent<String> event) { changes[0]++; } }); box.press("df"); assertThat(changes[0], is(0)); }
@Test public void testPressKeyCodeFiresChange() { box.type("as"); final boolean[] changed = { false }; box.addValueChangeHandler(new ValueChangeHandler<String>() { public void onValueChange(ValueChangeEvent<String> event) { changed[0] = true; } }); box.press(KeyCodes.KEY_BACKSPACE); assertThat(changed[0], is(true)); }
@Test public void testPressCharCodeFiresChange() { box.type("as"); final boolean[] changed = { false }; box.addValueChangeHandler(new ValueChangeHandler<String>() { public void onValueChange(ValueChangeEvent<String> event) { changed[0] = true; } }); box.press('d'); assertThat(changed[0], is(true)); }
@Test public void testMaxLength() { box.setMaxLength(3); box.type("asdf"); assertThat(box.getValue(), is("asd")); box.press("f"); assertThat(box.getValue(), is("asd")); } }