1 /* 2 * Copyright (c) 2010, 2015, 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 test.javafx.scene.text; 27 28 import static org.junit.Assert.assertEquals; 29 import static org.junit.Assert.assertFalse; 30 import static org.junit.Assert.assertNotNull; 31 import javafx.geometry.VPos; 32 import test.javafx.scene.NodeTest; 33 import javafx.scene.text.Font; 34 import javafx.scene.text.Text; 35 36 import org.junit.Test; 37 38 public class TextTest { 39 40 @Test public void testCtors() { 41 Text t1 = new Text(); 42 assertEquals("", t1.getText()); 43 Text t2 = new Text("test content"); 44 assertEquals("test content", t2.getText()); 45 Text t3 = new Text(10, 20, "2"); 46 assertEquals(10f, t3.getX(), 0); 47 assertEquals(20f, t3.getY(), 0); 48 assertEquals("2", t3.getText()); 49 } 50 51 @Test public void testSettingNullText() { 52 Text t = new Text(); 53 t.setText(null); 54 assertEquals("", t.getText()); 55 t.textProperty().set(null); 56 assertEquals("", t.getText()); 57 t.setText("1"); 58 assertEquals("1", t.getText()); 59 assertEquals("1", t.textProperty().get()); 60 t.setText(null); 61 assertEquals("", t.getText()); 62 t.textProperty().set(null); 63 assertEquals("", t.getText()); 64 } 65 66 @Test public void testDefaultTextNotNull() { 67 Text t = new Text(); 68 assertEquals("", t.getText()); 69 assertEquals("", t.textProperty().get()); 70 } 71 72 @Test public void testStoreFont() { 73 Text t = new Text(); 74 Font f = new Font(44); 75 assertEquals(Font.getDefault(), t.getFont()); 76 t.setFont(f); 77 assertEquals(44f, t.getBaselineOffset(), 0); 78 } 79 80 // Commented out as StubFontLoader only knows about Amble and its 81 // also not a given that the Font.getDefault() matches the default font 82 // on a Text node anyway, as CSS defaults are applied to the Text node. 83 /* 84 @Test public void testPropertyPropagation_font() throws Exception { 85 final Text node = new Text(); 86 NodeTest.testObjectPropertyPropagation(node, "font", Font.getDefault(), new Font(44)); 87 } 88 */ 89 90 // @Test public void testPropertyPropagation_textOrigin() throws Exception { 91 // final Text node = new Text(); 92 // NodeTest.testObjectPropertyPropagation(node, "textOrigin", "textOrigin", 93 // VPos.BASELINE, VPos.TOP, new NodeTest.ObjectValueConvertor() { 94 // @Override 95 // public Object toSg(Object pgValue) { 96 // return VPos.values()[((Number)pgValue).intValue()]; 97 // } 98 // }); 99 // } 100 101 // @Test public void testPropertyPropagation_boundsType() throws Exception { 102 // final Text node = new Text(); 103 // NodeTest.testObjectPropertyPropagation(node, "boundsType", "textBoundsType", 104 // TextBoundsType.LOGICAL, TextBoundsType.VISUAL, new NodeTest.ObjectValueConvertor() { 105 // @Override 106 // public Object toSg(Object pgValue) { 107 // return TextBoundsType.values()[((Number)pgValue).intValue()]; 108 // } 109 // }); 110 // } 111 112 // @Test public void testPropertyPropagation_textAlignment() throws Exception { 113 // final Text node = new Text(); 114 // NodeTest.testObjectPropertyPropagation(node, "textAlignment", "textAlignment", 115 // TextAlignment.LEFT, TextAlignment.CENTER, new NodeTest.ObjectValueConvertor() { 116 // @Override 117 // public Object toSg(Object pgValue) { 118 // return TextAlignment.values()[(((Number)pgValue).intValue())]; 119 // } 120 // }); 121 // } 122 123 // @Test public void testPropertyPropagation_visible() throws Exception { 124 // final Text node = new Text(); 125 // NodeTest.testBooleanPropertyPropagation(node, "visible", false, true); 126 // } 127 128 // @Test public void testPropertyPropagation_text() throws Exception { 129 // final Text node = new Text(); 130 // NodeTest.testObjectPropertyPropagation(node, "text", "text", "Hello", "World"); 131 // } 132 133 // @Test public void testPropertyPropagation_strikethrough() throws Exception { 134 // final Text node = new Text(); 135 // NodeTest.testBooleanPropertyPropagation(node, "strikethrough", false, true); 136 // } 137 138 // @Test public void testPropertyPropagation_underline() throws Exception { 139 // final Text node = new Text(); 140 // NodeTest.testBooleanPropertyPropagation(node, "underline", false, true); 141 // } 142 143 // @Test public void testPropertyPropagation_x() throws Exception { 144 // final Text node = new Text(); 145 // NodeTest.testDoublePropertyPropagation(node, "x", 100, 200); 146 // } 147 148 // @Test public void testPropertyPropagation_y() throws Exception { 149 // final Text node = new Text(); 150 // NodeTest.testDoublePropertyPropagation(node, "y", 100, 200); 151 // } 152 153 // @Test public void testPropertyPropagation_wrappingWidth() throws Exception { 154 // final Text node = new Text(); 155 // NodeTest.testDoublePropertyPropagation(node, "wrappingWidth", 100, 200); 156 // } 157 158 // @Test public void testBoundPropertySync_X() throws Exception { 159 // NodeTest.assertDoublePropertySynced( 160 // new Text(1.0, 2.0, "The Text"), 161 // "x", "x", 10.0); 162 // } 163 164 // @Test public void testBoundPropertySync_Y() throws Exception { 165 // NodeTest.assertDoublePropertySynced( 166 // new Text(1.0, 2.0, "The Text"), 167 // "y", "y", 20.0); 168 // } 169 170 // @Test public void testBoundPropertySync_Text() throws Exception { 171 // NodeTest.assertStringPropertySynced( 172 // new Text(1.0, 2.0, "The Text"), 173 // "text", "text", "The Changed Text"); 174 // } 175 176 // // The StubFontLoader is not adequate. SansSerif is the default font 177 // // family. But StubFontLoader is hard coded with some knowledge of 178 // // Amble so we end up with a null reference for its the PGFont 179 // // and it sets null on the PGText node. StubFontLoader needs to be 180 // // replaced with the real font loader. 181 // /* 182 // @Test public void testBoundPropertySync_Font() throws Exception { 183 // List<String> fontNames = Font.getFontNames(); 184 // String fontName = fontNames.get(fontNames.size() - 1); 185 // NodeTest.assertObjectPropertySynced( 186 // new Text(1.0, 2.0, "The Text"), 187 // "font", "font", new Font(fontName, 22)); 188 // } 189 // */ 190 191 // @Test public void testBoundPropertySync_BoundsType() throws Exception { 192 // NodeTest.assertObjectPropertySynced( 193 // new Text(1.0, 2.0, "The Text"), 194 // "boundsType", "textBoundsType", TextBoundsType.VISUAL); 195 // } 196 197 198 // @Test public void testBoundPropertySync_WrappingWidth() throws Exception { 199 // NodeTest.assertDoublePropertySynced( 200 // new Text(1.0, 2.0, "The Text"), 201 // "wrappingWidth", "wrappingWidth", 50); 202 // } 203 204 205 // @Test public void testBoundPropertySync_Underline() throws Exception { 206 // NodeTest.assertBooleanPropertySynced( 207 // new Text(1.0, 2.0, "The Text"), 208 // "underline", "underline", true); 209 // } 210 211 // @Test public void testBoundPropertySync_Strikethrough() throws Exception { 212 // NodeTest.assertBooleanPropertySynced( 213 // new Text(1.0, 2.0, "The Text"), 214 // "strikethrough", "strikethrough", true); 215 // } 216 217 // @Test public void testBoundPropertySync_TextAlignment() throws Exception { 218 // NodeTest.assertObjectPropertySynced( 219 // new Text(1.0, 2.0, "The Text"), 220 // "textAlignment", "textAlignment", TextAlignment.RIGHT); 221 // } 222 223 @Test public void toStringShouldReturnNonEmptyString() { 224 String s = new Text().toString(); 225 assertNotNull(s); 226 assertFalse(s.isEmpty()); 227 } 228 }