package org.jdesktop.swingx.search;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import javax.swing.JTextField;
import junit.framework.Assert;
import org.junit.Test;
public class NativeSearchFieldSupportTest implements PropertyChangeListener {
private JTextField tf = new JTextField();
private boolean eventFired;
@Test
public void testSearchFieldPropertyChangeEvent() throws Exception {
tf.addPropertyChangeListener(NativeSearchFieldSupport.MAC_TEXT_FIELD_VARIANT_PROPERTY, this);
NativeSearchFieldSupport.setSearchField(tf, true);
Assert.assertTrue(eventFired);
eventFired = false;
NativeSearchFieldSupport.setSearchField(tf, true);
Assert.assertTrue(eventFired);
}
@Test
public void testFindActionPropertyChangeEvent() throws Exception {
tf.addPropertyChangeListener(NativeSearchFieldSupport.FIND_ACTION_PROPERTY, this);
NativeSearchFieldSupport.setFindAction(tf, new ActionListener(){
public void actionPerformed(ActionEvent e) {
eventFired = true;
}
});
Assert.assertTrue(eventFired);
eventFired = false;
NativeSearchFieldSupport.setFindAction(tf, null);
Assert.assertTrue(eventFired);
}
@Test
public void testCancelActionPropertyChangeEvent() throws Exception {
tf.addPropertyChangeListener(NativeSearchFieldSupport.CANCEL_ACTION_PROPERTY, this);
NativeSearchFieldSupport.setCancelAction(tf, new ActionListener(){
public void actionPerformed(ActionEvent e) {
eventFired = true;
}
});
Assert.assertTrue(eventFired);
eventFired = false;
NativeSearchFieldSupport.setCancelAction(tf, null);
Assert.assertTrue(eventFired);
}
@Test
public void testSearchFieldUIChange() throws Exception {
NativeSearchFieldSupport.setSearchField(tf, true);
tf.addPropertyChangeListener(NativeSearchFieldSupport.MAC_TEXT_FIELD_VARIANT_PROPERTY, this);
tf.updateUI();
Assert.assertTrue(eventFired);
NativeSearchFieldSupport.setSearchField(tf, false);
eventFired = false;
tf.updateUI();
Assert.assertFalse(eventFired);
}
@Test
public void testIsSearchField() throws Exception {
NativeSearchFieldSupport.setSearchField(tf, true);
Assert.assertTrue(NativeSearchFieldSupport.isSearchField(tf));
NativeSearchFieldSupport.setSearchField(tf, false);
Assert.assertFalse(NativeSearchFieldSupport.isSearchField(tf));
}
public void propertyChange(PropertyChangeEvent evt) {
eventFired = true;
}
}