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++;
+ });
}
}
}