Mercurial > hg > release > thermostat-1.6
changeset 1938:85d6dcfb7ef7
Fix SearchField actionEvent payload to contain latest search text
PR3035
Reviewed-by: jerboaa
Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2016-June/019684.html
author | Anirudhan Mukundan <amukunda@redhat.com> |
---|---|
date | Thu, 23 Jun 2016 11:15:46 -0400 |
parents | 4d83b41ff85b |
children | a09beb448a72 |
files | client/swing/src/main/java/com/redhat/thermostat/client/swing/components/SearchField.java client/swing/src/test/java/com/redhat/thermostat/client/swing/components/SearchFieldTest.java |
diffstat | 2 files changed, 34 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/client/swing/src/main/java/com/redhat/thermostat/client/swing/components/SearchField.java Thu Jun 23 11:14:19 2016 -0400 +++ b/client/swing/src/main/java/com/redhat/thermostat/client/swing/components/SearchField.java Thu Jun 23 11:15:46 2016 -0400 @@ -103,19 +103,18 @@ @Override public void changedUpdate(DocumentEvent e) { - Document doc = e.getDocument(); if (!labelDisplayed.get()) { - String filter = null; try { - filter = doc.getText(0, doc.getLength()); - if (!(filter.equals(previousText))) { + Document doc = e.getDocument(); + String filter = doc.getText(0, doc.getLength()); + if (!filter.equals(previousText)) { previousText = filter; - fireViewAction(SearchAction.PERFORM_SEARCH, searchText.get()); + searchText.set(filter); + fireViewAction(SearchAction.PERFORM_SEARCH, filter); } } catch (BadLocationException ble) { // ignore } - searchText.set(filter); } }
--- a/client/swing/src/test/java/com/redhat/thermostat/client/swing/components/SearchFieldTest.java Thu Jun 23 11:14:19 2016 -0400 +++ b/client/swing/src/test/java/com/redhat/thermostat/client/swing/components/SearchFieldTest.java Thu Jun 23 11:15:46 2016 -0400 @@ -36,7 +36,9 @@ package com.redhat.thermostat.client.swing.components; +import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; @@ -206,13 +208,38 @@ textBox.enterText(SEARCH_TEXT); verify(listener, times(SEARCH_TEXT.length())).actionPerformed( - new ActionEvent<SearchField.SearchAction>(searchField, SearchField.SearchAction.PERFORM_SEARCH)); + new ActionEvent<>(searchField, SearchField.SearchAction.PERFORM_SEARCH)); textBox.enterText("\n"); verify(listener, times(SEARCH_TEXT.length() + 1)).actionPerformed( - new ActionEvent<SearchField.SearchAction>(searchField, SearchField.SearchAction.PERFORM_SEARCH)); + new ActionEvent<>(searchField, SearchField.SearchAction.PERFORM_SEARCH)); + + } + + @Category(GUITest.class) + @GUITest + @Test + public void testListenersReceiveCorrectSearchTextPayload() { + frameFixture.show(); + + final String SEARCH_TEXT = "test"; + final String[] payload = new String[1]; + ActionListener<SearchField.SearchAction> listener = new ActionListener<SearchField.SearchAction>() { + @Override + public void actionPerformed(ActionEvent<SearchField.SearchAction> actionEvent) { + payload[0] = (String) actionEvent.getPayload(); + } + }; + + JTextComponentFixture textBox = frameFixture.textBox(SearchField.VIEW_NAME); + + searchField.addSearchListener(listener); + + textBox.enterText(SEARCH_TEXT); + + assertThat(payload[0], is(SEARCH_TEXT)); } }