001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017: /**
018: * @author Alexander T. Simbirtsev
019: * @version $Revision$
020: */package javax.swing.plaf.basic;
021:
022: import java.awt.event.FocusEvent;
023: import java.util.ArrayList;
024: import javax.swing.AbstractButton;
025: import javax.swing.ButtonModel;
026: import javax.swing.JButton;
027: import javax.swing.JToggleButton;
028: import javax.swing.KeyStroke;
029: import javax.swing.SwingTestCase;
030: import javax.swing.event.ChangeEvent;
031: import javax.swing.event.ChangeListener;
032:
033: public class BasicButtonListenerTest extends SwingTestCase {
034:
035: public void testBasicButtonListener() {
036: //TODO Implement BasicButtonListener().
037: }
038:
039: public void testStateChanged() {
040: //TODO Implement stateChanged().
041: }
042:
043: public void testUninstallKeyboardActions() {
044: //TODO Implement uninstallKeyboardActions().
045: }
046:
047: public void testInstallKeyboardActions() {
048: AbstractButton button = new JButton();
049: BasicButtonListener listener = new BasicButtonListener(button);
050: assertEquals(0, button.getActionMap().size());
051: assertNotNull(button.getActionMap().getParent());
052: assertEquals(3, button.getActionMap().getParent().size());
053: assertEquals(2, button.getRegisteredKeyStrokes().length);
054: KeyStroke ks = button.getRegisteredKeyStrokes()[0];
055: assertNotNull(ks);
056: listener.installKeyboardActions(button);
057: assertEquals(0, button.getActionMap().size());
058: assertEquals(3, button.getActionMap().getParent().size());
059: assertEquals(2, button.getRegisteredKeyStrokes().length);
060: listener.uninstallKeyboardActions(button);
061: assertEquals(0, button.getActionMap().size());
062: assertNull(button.getActionMap().getParent());
063: if (!isHarmony()) {
064: assertEquals(0, button.getRegisteredKeyStrokes().length);
065: }
066: }
067:
068: public void testCheckOpacity() {
069: //TODO Implement checkOpacity().
070: }
071:
072: public void testPropertyChange() {
073: try {
074: javax.swing.plaf.basic.BasicButtonListener l = new javax.swing.plaf.basic.BasicButtonListener(
075: new JButton());
076: l.propertyChange(null);
077: fail("NPE should be thrown");
078: } catch (NullPointerException npe) {
079: // PASSED
080: }
081: }
082:
083: public void testMouseReleased() {
084: //TODO Implement mouseReleased().
085: }
086:
087: public void testMousePressed() {
088: //TODO Implement mousePressed().
089: }
090:
091: public void testMouseMoved() {
092: //TODO Implement mouseMoved().
093: }
094:
095: public void testMouseExited() {
096: //TODO Implement mouseExited().
097: }
098:
099: public void testMouseEntered() {
100: //TODO Implement mouseEntered().
101: }
102:
103: public void testMouseDragged() {
104: //TODO Implement mouseDragged().
105: }
106:
107: public void testMouseClicked() {
108: //TODO Implement mouseClicked().
109: }
110:
111: class AdvancedChangeListener implements ChangeListener {
112: public ArrayList<ChangeEvent> events = new ArrayList<ChangeEvent>();
113:
114: public ArrayList<Boolean> states = new ArrayList<Boolean>();
115:
116: public void stateChanged(ChangeEvent e) {
117: events.add(e);
118: ButtonModel model = (ButtonModel) e.getSource();
119: states.add(Boolean.valueOf(model.isPressed()));
120: states.add(Boolean.valueOf(model.isArmed()));
121: }
122: };
123:
124: public void testFocusLost() {
125: final JToggleButton button = new JToggleButton();
126: button.getModel().setPressed(true);
127: button.getModel().setArmed(true);
128: button.getModel().setRollover(true);
129: BasicButtonListener listener = (BasicButtonListener) button
130: .getChangeListeners()[0];
131: AdvancedChangeListener changeListener = new AdvancedChangeListener();
132: button.getModel().addChangeListener(changeListener);
133: listener.focusLost(new FocusEvent(button, 0));
134: if (isHarmony()) {
135: assertEquals("number of events", 2, changeListener.events
136: .size());
137: assertEquals("Pressed", Boolean.TRUE, changeListener.states
138: .get(0));
139: assertEquals("Armed", Boolean.FALSE, changeListener.states
140: .get(1));
141: assertEquals("Pressed", Boolean.FALSE,
142: changeListener.states.get(2));
143: assertEquals("Armed", Boolean.FALSE, changeListener.states
144: .get(3));
145: assertFalse("Pressed", button.getModel().isPressed());
146: }
147: assertFalse("Armed", button.getModel().isArmed());
148: assertTrue("Rollover", button.getModel().isRollover());
149: }
150:
151: public void testFocusGained() {
152: //TODO Implement focusGained().
153: }
154: }
|