public void testDataEventCheckBox() throws Exception { WebForm form = W4TFixture.getEmptyWebFormInstance(); W4TFixture.fakeBrowser(new Default(true)); final WebDataEvent[] dataEvent = new WebDataEvent[1]; WebDataListener dataListener = new WebDataListener() { public void webValueChanged(final WebDataEvent evt) { dataEvent[0] = evt; } }; WebCheckBox checkBox = new WebCheckBox(); form.add(checkBox, WebBorderLayout.NORTH); assertEquals(UNCHECKED, checkBox.getValue()); checkBox.addWebDataListener(dataListener); checkBox.setValue(CHECKED); assertNull(dataEvent[0]); checkBox.removeWebDataListener(dataListener); checkBox.setValue(UNCHECKED); dataEvent[0] = null; checkBox.addWebDataListener(dataListener); String id = checkBox.getUniqueID(); W4TFixture.fakeRequestParam(id, CHECKED); W4TFixture.fakeRequestParam(WebCheckBoxRenderer.PREFIX + id, UNCHECKED); getLifeCycleAdapter(form).readData(); IServiceStateInfo stateInfo = ContextProvider.getStateInfo(); String key = EventQueueFilter.ATTRIBUTE_KEY; EventQueueFilter eqv = (EventQueueFilter) stateInfo.getAttribute(key); eqv.filter(); EventQueue.getEventQueue().fireEvents(); assertNotNull(dataEvent[0]); assertSame(checkBox, dataEvent[0].getSource()); assertSame(UNCHECKED, dataEvent[0].getOldValue()); assertSame(CHECKED, dataEvent[0].getNewValue()); assertEquals(CHECKED, checkBox.getValue()); dataEvent[0] = null; W4TFixture.fakeRequestParam(checkBox.getUniqueID(), null); W4TFixture.fakeRequestParam(WebCheckBoxRenderer.PREFIX + id, CHECKED); getLifeCycleAdapter(form).readData(); eqv.filter(); EventQueue.getEventQueue().fireEvents(); assertNotNull(dataEvent[0]); assertSame(checkBox, dataEvent[0].getSource()); assertSame(CHECKED, dataEvent[0].getOldValue()); assertSame(UNCHECKED, dataEvent[0].getNewValue()); assertEquals(UNCHECKED, checkBox.getValue()); W4TFixture.fakeRequestParam(WebCheckBoxRenderer.PREFIX + id, UNCHECKED); dataEvent[0] = null; getLifeCycleAdapter(form).readData(); eqv.filter(); EventQueue.getEventQueue().fireEvents(); assertNull(dataEvent[0]); assertEquals(UNCHECKED, checkBox.getValue()); }
public void testDataEventTriggering() throws Exception { WebForm form = W4TFixture.getEmptyWebFormInstance(); W4TFixture.fakeBrowser(new Default(true)); final WebDataEvent[] dataEvent = new WebDataEvent[1]; WebDataListener dataListener = new WebDataListener() { public void webValueChanged(final WebDataEvent evt) { dataEvent[0] = evt; } }; WebText text = new WebText(); form.add(text, WebBorderLayout.NORTH); text.setValue(OLD_VALUE); assertEquals(OLD_VALUE, text.getValue()); text.addWebDataListener(dataListener); text.setValue(NEW_VALUE); assertNull(dataEvent[0]); text.removeWebDataListener(dataListener); text.setValue(OLD_VALUE); dataEvent[0] = null; text.addWebDataListener(dataListener); W4TFixture.fakeRequestParam(text.getUniqueID(), NEW_VALUE); getLifeCycleAdapter(form).readData(); IServiceStateInfo stateInfo = ContextProvider.getStateInfo(); String key = EventQueueFilter.ATTRIBUTE_KEY; EventQueueFilter eqv = (EventQueueFilter) stateInfo.getAttribute(key); eqv.filter(); EventQueue.getEventQueue().fireEvents(); assertNotNull(dataEvent[0]); assertSame(text, dataEvent[0].getSource()); assertSame(OLD_VALUE, dataEvent[0].getOldValue()); assertSame(NEW_VALUE, dataEvent[0].getNewValue()); assertEquals(NEW_VALUE, text.getValue()); }