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 Anton Avtamonov
019: * @version $Revision$
020: */package javax.swing.plaf.basic;
021:
022: import java.awt.Dimension;
023: import java.awt.Insets;
024: import java.lang.reflect.Field;
025: import javax.swing.BorderFactory;
026: import javax.swing.JButton;
027: import javax.swing.JSplitPane;
028: import javax.swing.SwingTestCase;
029: import javax.swing.border.Border;
030:
031: public class BasicSplitPaneDividerTest extends SwingTestCase {
032: private BasicSplitPaneDivider divider;
033:
034: private JSplitPane pane;
035:
036: public BasicSplitPaneDividerTest(final String name) {
037: super (name);
038: }
039:
040: @Override
041: protected void setUp() throws Exception {
042: pane = new JSplitPane();
043: divider = new BasicSplitPaneDivider((BasicSplitPaneUI) pane
044: .getUI());
045: }
046:
047: @Override
048: protected void tearDown() throws Exception {
049: divider = null;
050: pane = null;
051: }
052:
053: public void testBasicSplitPaneDivider() throws Exception {
054: assertEquals(pane.getUI(), divider.splitPaneUI);
055: assertEquals(pane, divider.splitPane);
056: assertNotNull(divider.mouseHandler);
057: assertNull(divider.leftButton);
058: assertNull(divider.rightButton);
059: assertNull(divider.dragger);
060: assertNull(divider.hiddenDivider);
061: assertEquals(0, divider.getDividerSize());
062: assertEquals(0, divider.getDividerSize());
063: assertEquals(JSplitPane.HORIZONTAL_SPLIT, divider.orientation);
064: }
065:
066: public void testGetSetBasicSplitPaneUI() throws Exception {
067: JSplitPane newPane = new JSplitPane();
068: divider.setBasicSplitPaneUI((BasicSplitPaneUI) newPane.getUI());
069: assertEquals(newPane.getUI(), divider.splitPaneUI);
070: assertEquals(newPane.getUI(), divider.getBasicSplitPaneUI());
071: assertEquals(newPane, divider.splitPane);
072: }
073:
074: public void testGetSetDividerSize() throws Exception {
075: assertEquals(0, divider.getDividerSize());
076: divider.setDividerSize(20);
077: assertEquals(20, divider.getDividerSize());
078: divider.setDividerSize(-20);
079: assertEquals(-20, divider.getDividerSize());
080: }
081:
082: public void testGetSetBorder() throws Exception {
083: assertNull(divider.getBorder());
084: Border b = BorderFactory.createEmptyBorder();
085: divider.setBorder(b);
086: assertEquals(b, divider.getBorder());
087: }
088:
089: public void testGetInsets() throws Exception {
090: assertEquals(new Insets(0, 0, 0, 0), divider.getInsets());
091: divider.setBorder(BorderFactory
092: .createEmptyBorder(5, 10, 15, 20));
093: assertEquals(new Insets(5, 10, 15, 20), divider.getInsets());
094: }
095:
096: public void testIsSetMouseOver() throws Exception {
097: assertFalse(divider.isMouseOver());
098: divider.setMouseOver(true);
099: assertTrue(divider.isMouseOver());
100: }
101:
102: public void testGetMinimumMaximumPreferredSize() throws Exception {
103: assertEquals(new Dimension(0, 1), divider.getPreferredSize());
104: assertEquals(new Dimension(0, 1), divider.getMinimumSize());
105: assertEquals(new Dimension(Short.MAX_VALUE, Short.MAX_VALUE),
106: divider.getMaximumSize());
107: divider.setDividerSize(20);
108: assertEquals(new Dimension(20, 1), divider.getPreferredSize());
109: assertEquals(new Dimension(20, 1), divider.getMinimumSize());
110: assertEquals(new Dimension(Short.MAX_VALUE, Short.MAX_VALUE),
111: divider.getMaximumSize());
112: divider.orientation = JSplitPane.VERTICAL_SPLIT;
113: assertEquals(new Dimension(1, 20), divider.getPreferredSize());
114: assertEquals(new Dimension(1, 20), divider.getMinimumSize());
115: assertEquals(new Dimension(Short.MAX_VALUE, Short.MAX_VALUE),
116: divider.getMaximumSize());
117: }
118:
119: //TODO
120: public void testPropertyChange() throws Exception {
121: }
122:
123: public void testOneTouchExpandableChanged() throws Exception {
124: assertFalse(pane.isOneTouchExpandable());
125: assertNull(divider.leftButton);
126: assertNull(divider.rightButton);
127: setProperty("oneTouchExpandable", Boolean.TRUE);
128: divider.oneTouchExpandableChanged();
129: assertNotNull(divider.leftButton);
130: assertNotNull(divider.rightButton);
131: }
132:
133: public void testCreateLeftOneTouchButton() throws Exception {
134: JButton left = divider.createLeftOneTouchButton();
135: assertNotNull(left);
136: assertNotSame(left, divider.createLeftOneTouchButton());
137: }
138:
139: public void testCreateRightOneTouchButton() throws Exception {
140: JButton right = divider.createRightOneTouchButton();
141: assertNotNull(right);
142: assertNotSame(right, divider.createRightOneTouchButton());
143: }
144:
145: private void setProperty(final String propertyName,
146: final Object value) throws Exception {
147: Field property = JSplitPane.class
148: .getDeclaredField(propertyName);
149: if (property != null) {
150: property.setAccessible(true);
151: property.set(pane, value);
152: } else {
153: fail("Cannot access property " + propertyName);
154: }
155: }
156: }
|