package org.jdesktop.swingx.search; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; import java.util.prefs.Preferences; import org.jdesktop.swingx.JXSearchField; import org.junit.Before; import org.junit.Test; public class RecentSearchesTest { private RecentSearches searchHistory; @Before public void setUp() { searchHistory = new RecentSearches("search.test"); searchHistory.removeAll(); } @Test public void testNullName() throws Exception { RecentSearches rs = new RecentSearches(null); rs.put("test"); rs.removeAll(); } @Test public void testCreateRemoveAdd() throws Exception { RecentSearches sh = new RecentSearches(Preferences.userRoot(), "search.test"); sh.removeAll(); assertSame(0, sh.getLength()); sh.put("search1"); assertSame(1, sh.getLength()); sh.put("search2"); sh = new RecentSearches("search.test"); assertSame(2, sh.getLength()); } @Test public void testRecentsOrder() throws Exception { searchHistory.setMaxRecents(2); searchHistory.put("search1"); searchHistory.put("search2"); assertEquals("search2", searchHistory.getRecentSearches()[0]); assertEquals("search1", searchHistory.getRecentSearches()[1]); searchHistory.put("search3"); assertSame(2, searchHistory.getLength()); assertEquals("search3", searchHistory.getRecentSearches()[0]); assertEquals("search2", searchHistory.getRecentSearches()[1]); searchHistory.put("search2"); assertEquals("search2", searchHistory.getRecentSearches()[0]); } @Test public void testDoubleAdd() throws Exception { searchHistory.put("search1"); searchHistory.put("search1"); assertSame(1, searchHistory.getLength()); } @Test public void testEmptyAdd() throws Exception { searchHistory.put(null); searchHistory.put(""); searchHistory.put(" "); assertSame(0, searchHistory.getLength()); } @Test public void testMaxRecents() throws Exception { assertSame(5, searchHistory.getMaxRecents()); searchHistory.setMaxRecents(1); assertSame(1, searchHistory.getMaxRecents()); searchHistory.put("search1"); searchHistory.put("search2"); assertSame(1, searchHistory.getLength()); } @Test public void testPersistency() throws Exception { searchHistory.put("test"); assertSame(1, new RecentSearches("search.test").getLength()); } @Test public void testUnInstall() throws Exception { JXSearchField searchField = new JXSearchField("Search"); searchHistory.install(searchField); assertSame(1, searchField.getActionListeners().length); assertSame(1, searchHistory.getChangeListeners().length); searchHistory.uninstall(searchField); assertSame(0, searchField.getActionListeners().length); assertSame(0, searchHistory.getChangeListeners().length); assertNull(searchField.getFindPopupMenu()); } }