1 /* 2 * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 package javafx.scene.control; 27 28 import static com.sun.javafx.scene.control.infrastructure.ControlTestUtils.*; 29 30 import test.com.sun.javafx.pgstub.StubToolkit; 31 import com.sun.javafx.tk.Toolkit; 32 import javafx.beans.property.SimpleBooleanProperty; 33 import javafx.scene.Node; 34 import javafx.scene.shape.Rectangle; 35 import static org.junit.Assert.*; 36 37 38 import org.junit.Before; 39 import org.junit.Test; 40 41 /** 42 * 43 * @author srikalyc 44 */ 45 public class CheckMenuItemTest { 46 private CheckMenuItem checkMenuItem, cmi;//Empty string 47 private CheckMenuItem checkMenuItemOneArg;//Empty graphic 48 private CheckMenuItem checkMenuItemTwoArg; 49 private Node node; 50 private Toolkit tk; 51 52 @Before public void setup() { 53 tk = (StubToolkit)Toolkit.getToolkit();//This step is not needed (Just to make sure StubToolkit is loaded into VM) 54 node = new Rectangle(); 55 checkMenuItem = cmi = new CheckMenuItem(); 56 checkMenuItemOneArg = new CheckMenuItem("one"); 57 checkMenuItemTwoArg = new CheckMenuItem("two", node); 58 } 59 60 61 62 /********************************************************************* 63 * Tests for default values * 64 ********************************************************************/ 65 66 @Test public void defaultConstructorShouldSetStyleClassTo_checkmenuitem() { 67 assertStyleClassContains(checkMenuItem, "check-menu-item"); 68 } 69 @Test public void oneArgConstructorShouldSetStyleClassTo_checkmenuitem() { 70 assertStyleClassContains(checkMenuItemOneArg, "check-menu-item"); 71 } 72 @Test public void twoArgConstructorShouldSetStyleClassTo_checkmenuitem() { 73 assertStyleClassContains(checkMenuItemTwoArg, "check-menu-item"); 74 } 75 76 @Test public void defaultTxtNull() { 77 assertNull(checkMenuItem.getText()); 78 } 79 80 @Test public void oneArgConstructorTxtNotNull() { 81 assertNotNull(checkMenuItemOneArg.getText()); 82 assertEquals(checkMenuItemOneArg.getText(), "one"); 83 } 84 85 @Test public void twoArgConstructorGraphicNotNull() { 86 assertNotNull(checkMenuItemTwoArg.getGraphic()); 87 assertSame(checkMenuItemTwoArg.getGraphic(), node); 88 } 89 90 @Test public void defaultSelected() { 91 assertFalse(checkMenuItem.isSelected()); 92 } 93 94 95 /********************************************************************* 96 * Tests for property binding * 97 ********************************************************************/ 98 99 @Test public void selectedPropertyHasBeanReference() { 100 assertSame(checkMenuItem, checkMenuItem.selectedProperty().getBean()); 101 } 102 103 @Test public void selectedPropertyHasName() { 104 assertEquals("selected", checkMenuItem.selectedProperty().getName()); 105 } 106 107 /********************************************************************* 108 * Miscellaneous Tests * 109 ********************************************************************/ 110 @Test public void setSelectedAndSeeValueIsReflectedInModel() { 111 checkMenuItem.setSelected(true); 112 assertTrue(checkMenuItem.selectedProperty().getValue()); 113 } 114 115 @Test public void setSelectedAndSeeValue() { 116 checkMenuItem.setSelected(false); 117 assertFalse(checkMenuItem.isSelected()); 118 } 119 120 @Test public void setSelectedTrueAndSeeIfStyleSelectedExists() { 121 checkMenuItem.setSelected(true); 122 assertTrue(checkMenuItem.getStyleClass().contains("selected")); 123 } 124 125 @Test public void setSelectedFalseAndSeeIfStyleSelectedDoesNotExists() { 126 checkMenuItem.setSelected(false); 127 assertFalse(checkMenuItem.getStyleClass().contains("selected")); 128 } 129 130 @Test public void defaultConstructorShouldHaveNoGraphic() { 131 assertNull(cmi.getGraphic()); 132 } 133 134 @Test public void defaultConstructorShouldHaveNullString() { 135 assertNull(cmi.getText()); 136 } 137 138 @Test public void oneArgConstructorShouldHaveNoGraphic1() { 139 CheckMenuItem cmi2 = new CheckMenuItem(null); 140 assertNull(cmi2.getGraphic()); 141 } 142 143 @Test public void oneArgConstructorShouldHaveNoGraphic2() { 144 CheckMenuItem cmi2 = new CheckMenuItem(""); 145 assertNull(cmi2.getGraphic()); 146 } 147 148 @Test public void oneArgConstructorShouldHaveNoGraphic3() { 149 CheckMenuItem cmi2 = new CheckMenuItem("Hello"); 150 assertNull(cmi2.getGraphic()); 151 } 152 153 @Test public void oneArgConstructorShouldHaveSpecifiedString1() { 154 CheckMenuItem cmi2 = new CheckMenuItem(null); 155 assertNull(cmi2.getText()); 156 } 157 158 @Test public void oneArgConstructorShouldHaveSpecifiedString2() { 159 CheckMenuItem cmi2 = new CheckMenuItem(""); 160 assertEquals("", cmi2.getText()); 161 } 162 163 @Test public void oneArgConstructorShouldHaveSpecifiedString3() { 164 CheckMenuItem cmi2 = new CheckMenuItem("Hello"); 165 assertEquals("Hello", cmi2.getText()); 166 } 167 168 @Test public void twoArgConstructorShouldHaveSpecifiedGraphic1() { 169 CheckMenuItem cmi2 = new CheckMenuItem(null, null); 170 assertNull(cmi2.getGraphic()); 171 } 172 173 @Test public void twoArgConstructorShouldHaveSpecifiedGraphic2() { 174 Rectangle rect = new Rectangle(); 175 CheckMenuItem cmi2 = new CheckMenuItem("Hello", rect); 176 assertSame(rect, cmi2.getGraphic()); 177 } 178 179 @Test public void twoArgConstructorShouldHaveSpecifiedString1() { 180 CheckMenuItem cmi2 = new CheckMenuItem(null, null); 181 assertNull(cmi2.getText()); 182 } 183 184 @Test public void twoArgConstructorShouldHaveSpecifiedString2() { 185 Rectangle rect = new Rectangle(); 186 CheckMenuItem cmi2 = new CheckMenuItem("Hello", rect); 187 assertEquals("Hello", cmi2.getText()); 188 } 189 190 @Test public void getUnspecifiedSelected() { 191 assertEquals(false, cmi.isSelected()); 192 } 193 194 @Test public void setTrueSelected() { 195 cmi.setSelected(true); 196 assertTrue(cmi.isSelected()); 197 } 198 199 @Test public void setFalseSelected() { 200 cmi.setSelected(false); 201 assertFalse(cmi.isSelected()); 202 } 203 204 @Test public void selectedNotSetButNotNull() { 205 cmi.selectedProperty(); 206 assertNotNull(cmi.isSelected()); 207 } 208 209 @Test public void selectedCanBeBound1() { 210 SimpleBooleanProperty other = new SimpleBooleanProperty(cmi, "selected", false); 211 cmi.selectedProperty().bind(other); 212 assertEquals(other.get(), cmi.isSelected()); 213 } 214 215 @Test public void selectedCanBeBound2() { 216 SimpleBooleanProperty other = new SimpleBooleanProperty(cmi, "selected", true); 217 cmi.selectedProperty().bind(other); 218 assertEquals(other.get(), cmi.isSelected()); 219 } 220 221 }