modules/controls/src/test/java/javafx/scene/control/skin/LabelSkinTest.java

Print this page
rev 9240 : 8076423: JEP 253: Prepare JavaFX UI Controls & CSS APIs for Modularization

@@ -21,15 +21,18 @@
  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
 
-package com.sun.javafx.scene.control.skin;
+package javafx.scene.control.skin;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
+
+import com.sun.javafx.scene.control.skin.Utils;
+import javafx.beans.value.ObservableValue;
 import javafx.geometry.Insets;
 import javafx.geometry.Pos;
 import javafx.scene.control.ContentDisplay;
 import javafx.scene.control.Label;
 import javafx.scene.control.OverrunStyle;

@@ -40,11 +43,10 @@
 import javafx.scene.text.Font;
 import javafx.scene.text.Text;
 import javafx.scene.text.TextAlignment;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 
 /**
  * Need to test:
  *  - String truncation works correctly

@@ -72,76 +74,90 @@
      * Tests for change notification                                            *
      *                                                                          *
      ***************************************************************************/
     
     @Test public void sizeChangesOnLabelShouldInvoke_handleControlPropertyChanged() {
+        skin.addWatchedProperty(label.widthProperty());
+        skin.addWatchedProperty(label.heightProperty());
         assertFalse(skin.propertyChanged); // sanity check
         label.resize(500, label.getHeight());
         assertTrue(skin.propertyChanged);
         assertEquals(1, skin.propertyChangeCount); // sanity check
         label.resize(label.getWidth(), label.prefHeight(label.getWidth()));
         assertEquals(2, skin.propertyChangeCount); // sanity check
     }
     
     @Test public void textFillChangesOnLabelShouldInvoke_handleControlPropertyChanged() {
+        skin.addWatchedProperty(label.textFillProperty());
         label.setTextFill(Color.PURPLE);
         assertTrue(skin.propertyChanged);
     }
     
     @Test public void fontChangesOnLabelShouldInvoke_handleControlPropertyChanged() {
+        skin.addWatchedProperty(label.fontProperty());
         final Font f = Font.font("Arial", 64);
         label.setFont(f);
         assertTrue(skin.propertyChanged);
     }
     
     @Test public void graphicChangesOnLabelShouldInvoke_handleControlPropertyChanged() {
+        skin.addWatchedProperty(label.graphicProperty());
         label.setGraphic(new Rectangle());
         assertTrue(skin.propertyChanged);
     }
     
     @Test public void contentDisplayChangesOnLabelShouldInvoke_handleControlPropertyChanged() {
+        skin.addWatchedProperty(label.contentDisplayProperty());
         label.setContentDisplay(ContentDisplay.TEXT_ONLY);
         assertTrue(skin.propertyChanged);
     }
     
     @Test public void graphicTextGapChangesOnLabelShouldInvoke_handleControlPropertyChanged() {
+        skin.addWatchedProperty(label.graphicTextGapProperty());
         label.setGraphicTextGap(60.34);
         assertTrue(skin.propertyChanged);
     }
     
     @Test public void hposChangesOnLabelShouldInvoke_handleControlPropertyChanged() {
+        skin.addWatchedProperty(label.alignmentProperty());
         label.setAlignment(Pos.CENTER_RIGHT);
         label.setAlignment(Pos.CENTER_RIGHT);
         assertTrue(skin.propertyChanged);
     }
     
     @Test public void vposChangesOnLabelShouldInvoke_handleControlPropertyChanged() {
+        skin.addWatchedProperty(label.alignmentProperty());
         label.setAlignment(Pos.TOP_CENTER);
         assertTrue(skin.propertyChanged);
     }
     
     @Test public void textChangesOnLabelShouldInvoke_handleControlPropertyChanged() {
+        skin.addWatchedProperty(label.textProperty());
         label.setText("Bust my buffers!");
         assertTrue(skin.propertyChanged);
     }
     
     @Test public void textAlignmentChangesOnLabelShouldInvoke_handleControlPropertyChanged() {
+        skin.addWatchedProperty(label.textAlignmentProperty());
         label.setTextAlignment(TextAlignment.JUSTIFY);
         assertTrue(skin.propertyChanged);
     }
     
     @Test public void textOverrunChangesOnLabelShouldInvoke_handleControlPropertyChanged() {
+        skin.addWatchedProperty(label.textOverrunProperty());
         label.setTextOverrun(OverrunStyle.CENTER_WORD_ELLIPSIS);
         assertTrue(skin.propertyChanged);
     }
     
     @Test public void wrapTextChangesOnLabelShouldInvoke_handleControlPropertyChanged() {
+        skin.addWatchedProperty(label.wrapTextProperty());
         label.setWrapText(true);
         assertTrue(skin.propertyChanged);
     }
     
     @Test public void underlineChangesOnLabelShouldInvoke_handleControlPropertyChanged() {
+        skin.addWatchedProperty(label.underlineProperty());
         label.setUnderline(true);
         assertTrue(skin.propertyChanged);
     }
     
     @Test public void uninterestingChangesOnLabelShouldNotInvoke_handleControlPropertyChanged() {

@@ -1975,16 +1991,18 @@
     
     
     public static final class LabelSkinMock extends LabelSkin {
         boolean propertyChanged = false;
         int propertyChangeCount = 0;
+
         public LabelSkinMock(Label label) {
             super(label);
         }
         
-        @Override protected void handleControlPropertyChanged(String p) {
-            super.handleControlPropertyChanged(p);
+        public void addWatchedProperty(ObservableValue<?> p) {
+            p.addListener(o -> {
             propertyChanged = true;
             propertyChangeCount++;
+            });
         }
     }
 }