package org.jdesktop.swingx.plaf.basic;
import static org.junit.Assert.assertSame;
import javax.swing.UIManager;
import javax.swing.text.AbstractDocument;
import org.jdesktop.swingx.JXSearchField;
import org.jdesktop.swingx.plaf.SearchFieldUI;
import org.jdesktop.swingx.search.NativeSearchFieldSupport;
import org.junit.Before;
import org.junit.Test;
public class BasicSearchFieldUITest {
private JXSearchField sf;
private SearchFieldUI ui;
@Before
public void setUp() {
UIManager.put("SearchField.useSeperatePopupButton", Boolean.FALSE);
sf = new JXSearchField();
sf.setUseNativeSearchFieldIfPossible(false);
ui = (SearchFieldUI) sf.getUI();
}
@Test
public void testChildComponents() throws Exception {
assertSame(3, sf.getComponentCount());
ui.uninstallUI(sf);
assertSame(0, sf.getComponentCount());
}
@Test
public void testChildComponentsNative() throws Exception {
if(!NativeSearchFieldSupport.isNativeSearchFieldSupported()){
return;
}
sf.setUseNativeSearchFieldIfPossible(true);
//search and clear buttons installed by AquaLnF
assertSame(2, sf.getComponentCount());
}
@Test
public void testDocumentListener() throws Exception {
int listenerCount = ((AbstractDocument)sf.getDocument()).getDocumentListeners().length;
ui.uninstallUI(sf);
assertSame(listenerCount-3, ((AbstractDocument)sf.getDocument()).getDocumentListeners().length);
}
@Test
public void testPopupListener() throws Exception {
assertSame(1, sf.getPopupButton().getActionListeners().length);
ui.uninstallUI(sf);
assertSame(0, sf.getPopupButton().getActionListeners().length);
}
}