< prev index next >

modules/graphics/src/test/java/test/javafx/css/CssMetaDataTest.java

Print this page




  40 import com.sun.javafx.css.ParsedValueImpl;
  41 import com.sun.javafx.css.PseudoClassState;
  42 import com.sun.javafx.css.StyleManager;
  43 import test.com.sun.javafx.css.TestNode;
  44 import test.com.sun.javafx.css.TestNodeBase;
  45 import com.sun.javafx.sg.prism.NGNode;
  46 import javafx.beans.value.WritableValue;
  47 import javafx.scene.Group;
  48 import javafx.scene.Node;
  49 import javafx.scene.Scene;
  50 import javafx.scene.paint.Color;
  51 import javafx.scene.shape.Rectangle;
  52 import javafx.scene.text.Font;
  53 import javafx.scene.text.Text;
  54 import javafx.stage.Stage;
  55 import javafx.css.converter.BooleanConverter;
  56 import com.sun.javafx.geom.BaseBounds;
  57 import com.sun.javafx.geom.transform.BaseTransform;
  58 import com.sun.javafx.jmx.MXNodeAlgorithm;
  59 import com.sun.javafx.jmx.MXNodeAlgorithmContext;

  60 import javafx.css.CompoundSelector;
  61 import javafx.css.CssMetaData;
  62 import javafx.css.CssParser;
  63 import javafx.css.Declaration;
  64 import javafx.css.DeclarationShim;
  65 import javafx.css.FontCssMetaData;
  66 import javafx.css.ParsedValue;
  67 import javafx.css.PseudoClass;
  68 import javafx.css.Rule;
  69 import javafx.css.RuleShim;
  70 import javafx.css.Selector;
  71 import javafx.css.SelectorShim;
  72 import javafx.css.SimpleSelector;
  73 import javafx.css.SimpleSelectorShim;
  74 import javafx.css.Style;
  75 import javafx.css.StyleConverter;
  76 import javafx.css.StyleOrigin;
  77 import javafx.css.Styleable;
  78 import javafx.css.StyleableProperty;
  79 import javafx.css.Stylesheet;


 202                     }
 203 
 204                     @Override
 205                     public StyleableProperty<Font> getStyleableProperty(TestNode n) {
 206                         return null;
 207                     }
 208                 };
 209 
 210         String string = fontProp.toString();
 211         assertNotNull(string);
 212 
 213     }
 214 
 215     /**
 216      * Test of equals method, of class CssMetaData.
 217      */
 218     @Test
 219     public void testEquals() {
 220         TestNode testNode = new TestNode();
 221         Node node = new Node() {
 222             @Override
 223             public BaseBounds impl_computeGeomBounds(BaseBounds bb, BaseTransform bt) {
 224                 throw new UnsupportedOperationException("Not supported yet.");
 225             }
 226 
 227             @Override
 228             protected boolean impl_computeContains(double d, double d1) {
 229                 throw new UnsupportedOperationException("Not supported yet.");
 230             }
 231 
 232             @Override
 233             public Object impl_processMXNode(MXNodeAlgorithm mxna, MXNodeAlgorithmContext mxnac) {
 234                 throw new UnsupportedOperationException("Not supported yet.");
 235             }
 236         };
 237 
 238         CssMetaData testNodeOpacity = get(TestNode.getClassCssMetaData(), "-fx-opacity");
 239         CssMetaData nodeOpacity = get(Node.getClassCssMetaData(), "-fx-opacity");
 240 
 241         assertTrue(testNodeOpacity.equals(nodeOpacity));
 242     }
 243 
 244     static int ord = 0;
 245     static CascadingStyle createCascadingStyle(Selector selector, Declaration declaration) {
 246 
 247         Set<PseudoClass> pseudoClasses = null;
 248         if (selector instanceof SimpleSelector) {
 249 
 250             pseudoClasses =
 251                     SimpleSelectorShim.getPseudoClassStates((SimpleSelector)selector);
 252         } else {
 253 
 254             pseudoClasses = new PseudoClassState();
 255             for (SimpleSelector sel : ((CompoundSelector)selector).getSelectors()) {


 341         List<Style> expecteds = new ArrayList<Style>();
 342         Collections.addAll(expecteds,
 343                            new Style(root, fxBase),
 344                            new Style(root, fxColor),
 345                            new Style(rect, fxFill),
 346                            new Style(rectHover, fxFillHover)
 347         );
 348 
 349         final Rectangle rectangle = new Rectangle();
 350         rectangle.getStyleClass().add("rect");
 351 
 352         final Group group = new Group();
 353         group.getChildren().add(rectangle);
 354 
 355         Scene scene = new Scene(group);
 356         Stage stage = new Stage();
 357         stage.setScene(scene);
 358         stage.show();
 359 
 360         final CssMetaData FILL = get(rectangle.getCssMetaData(), "-fx-fill");
 361         final List<Style> actuals = Node.impl_getMatchingStyles(FILL, rectangle);
 362 
 363         //        System.err.println("matchingStyles: " + matchingStyles);
 364         //        System.err.println("expecteds: " + expecteds);
 365         //        System.err.println("actuals: " + actuals);
 366 
 367         assertEquals(expecteds.size(), actuals.size(), 0);
 368 
 369         for (Style style : expecteds) {
 370             if (!actuals.remove(style)) fail();
 371         }
 372         assertTrue(actuals.isEmpty());
 373     }
 374 
 375     @Test @org.junit.Ignore
 376     public void testGetMatchingStylesWithInlineStyleOnParent() {
 377 
 378 
 379         final Stylesheet stylesheet = StylesheetShim.getStylesheet();
 380         stylesheet.setOrigin(StyleOrigin.USER_AGENT);
 381         StyleManager.getInstance().getInstance().setDefaultUserAgentStylesheet(stylesheet);


 461                            new Style(SelectorShim.getUniversalSelector(), decl),
 462                            new Style(root, fxBase),
 463                            new Style(root, fxColor),
 464                            new Style(rect, fxFill),
 465                            new Style(rectHover, fxFillHover)
 466         );
 467 
 468         final Rectangle rectangle = new Rectangle();
 469         rectangle.getStyleClass().add("rect");
 470 
 471         final Group group = new Group();
 472         group.setStyle("-fx-base: green;");
 473         group.getChildren().add(rectangle);
 474 
 475         Scene scene = new Scene(group);
 476         Stage stage = new Stage();
 477         stage.setScene(scene);
 478         stage.show();
 479 
 480         final CssMetaData FILL = get(rectangle.getCssMetaData(), "-fx-fill");
 481         final List<Style> actuals = Node.impl_getMatchingStyles(FILL, rectangle);
 482 
 483         //        System.err.println("matchingStyles: " + matchingStyles);
 484         //        System.err.println("expecteds: " + expecteds);
 485         //        System.err.println("actuals: " + actuals);
 486 
 487         assertEquals(expecteds.size(), actuals.size(), 0);
 488 
 489         // inline style should be first
 490         assertEquals(expecteds.get(0), actuals.get(0));
 491 
 492         for (Style style : expecteds) {
 493             if (!actuals.remove(style)) fail();
 494         }
 495         assertTrue(actuals.isEmpty());
 496     }
 497 
 498     @Test @org.junit.Ignore
 499     public void testGetMatchingStylesWithInlineStyleOnLeaf() {
 500 
 501 


 584                            new Style(SelectorShim.getUniversalSelector(), decl),
 585                            new Style(root, fxBase),
 586                            new Style(root, fxColor),
 587                            new Style(rect, fxFill),
 588                            new Style(rectHover, fxFillHover)
 589         );
 590 
 591         final Rectangle rectangle = new Rectangle();
 592         rectangle.getStyleClass().add("rect");
 593         rectangle.setStyle("-fx-base: green;");
 594 
 595         final Group group = new Group();
 596         group.getChildren().add(rectangle);
 597 
 598         Scene scene = new Scene(group);
 599         Stage stage = new Stage();
 600         stage.setScene(scene);
 601         stage.show();
 602 
 603         final CssMetaData FILL = get(rectangle.getCssMetaData(), "-fx-fill");
 604         final List<Style> actuals = Node.impl_getMatchingStyles(FILL, rectangle);
 605 
 606         //        System.err.println("matchingStyles: " + matchingStyles);
 607         //        System.err.println("expecteds: " + expecteds);
 608         //        System.err.println("actuals: " + actuals);
 609 
 610         assertEquals(expecteds.size(), actuals.size(), 0);
 611 
 612         // inline style should be first
 613         assertEquals(expecteds.get(0), actuals.get(0));
 614 
 615         for (Style style : expecteds) {
 616             if (!actuals.remove(style)) fail();
 617         }
 618         assertTrue(actuals.isEmpty());
 619     }
 620 
 621     @Test @org.junit.Ignore
 622     public void testGetMatchingStylesWithInlineStyleOnRootAndLeaf() {
 623 
 624 


 711                            new Style(root, fxBase),
 712                            new Style(root, fxColor),
 713                            new Style(rect, fxFill),
 714                            new Style(rectHover, fxFillHover)
 715         );
 716 
 717         final Rectangle rectangle = new Rectangle();
 718         rectangle.getStyleClass().add("rect");
 719         rectangle.setStyle("-fx-base: green;");
 720 
 721         final Group group = new Group();
 722         group.setStyle("-fx-color: yellow;");
 723         group.getChildren().add(rectangle);
 724 
 725         Scene scene = new Scene(group);
 726         Stage stage = new Stage();
 727         stage.setScene(scene);
 728         stage.show();
 729 
 730         final CssMetaData FILL = get(rectangle.getCssMetaData(), "-fx-fill");
 731         final List<Style> actuals = Node.impl_getMatchingStyles(FILL, rectangle);
 732 
 733         //        System.err.println("matchingStyles: " + matchingStyles);
 734         //        System.err.println("expecteds: " + expecteds);
 735         //        System.err.println("actuals: " + actuals);
 736 
 737         assertEquals(expecteds.size(), actuals.size(), 0);
 738 
 739         // inline style should be first
 740         assertEquals(expecteds.get(0), actuals.get(0));
 741 
 742         for (Style style : expecteds) {
 743             if (!actuals.remove(style)) fail(style.toString());
 744         }
 745         assertTrue(actuals.isEmpty());
 746     }
 747 
 748     @Test @org.junit.Ignore
 749     public void testGetMatchingStylesShouldNotReturnAncestorPropertyIfNotInherited() {
 750 
 751 


 822         List<Style> expecteds = new ArrayList<Style>();
 823         Collections.addAll(expecteds,
 824                            new Style(root, fxBase),
 825                            new Style(root, fxColor),
 826                            new Style(rect, fxFill),
 827                            new Style(rectHover, fxFillHover)
 828         );
 829 
 830         final Rectangle rectangle = new Rectangle();
 831         rectangle.getStyleClass().add("rect");
 832 
 833         final Group group = new Group();
 834         group.getChildren().add(rectangle);
 835 
 836         Scene scene = new Scene(group);
 837         Stage stage = new Stage();
 838         stage.setScene(scene);
 839         stage.show();
 840 
 841         final CssMetaData FILL = get(rectangle.getCssMetaData(), "-fx-fill");
 842         final List<Style> actuals = Node.impl_getMatchingStyles(FILL, rectangle);
 843 
 844         //        System.err.println("matchingStyles: " + matchingStyles);
 845         //        System.err.println("expecteds: " + expecteds);
 846         //        System.err.println("actuals: " + actuals);
 847 
 848         assertEquals(expecteds.size(), actuals.size(), 0);
 849 
 850         for (Style style : expecteds) {
 851             if (!actuals.remove(style)) fail();
 852         }
 853         assertTrue(actuals.isEmpty());
 854     }
 855 
 856 
 857     @Test @org.junit.Ignore
 858     public void testGetMatchingStylesShouldNotReturnInlineAncestorPropertyIfNotInherited() {
 859 
 860         final Stylesheet stylesheet = StylesheetShim.getStylesheet();
 861         stylesheet.setOrigin(StyleOrigin.USER_AGENT);
 862         StyleManager.getInstance().setDefaultUserAgentStylesheet(stylesheet);


 930         List<Style> expecteds = new ArrayList<Style>();
 931         Collections.addAll(expecteds,
 932                            new Style(root, fxBase),
 933                            new Style(root, fxColor),
 934                            new Style(rect, fxFill),
 935                            new Style(rectHover, fxFillHover)
 936         );
 937 
 938         final Rectangle rectangle = new Rectangle();
 939         rectangle.getStyleClass().add("rect");
 940 
 941         final Group group = new Group();
 942         group.getChildren().add(rectangle);
 943 
 944         Scene scene = new Scene(group);
 945         Stage stage = new Stage();
 946         stage.setScene(scene);
 947         stage.show();
 948 
 949         final CssMetaData FILL = get(rectangle.getCssMetaData(), "-fx-fill");
 950         final List<Style> actuals = Node.impl_getMatchingStyles(FILL, rectangle);
 951 
 952         //        System.err.println("matchingStyles: " + matchingStyles);
 953         //        System.err.println("expecteds: " + expecteds);
 954         //        System.err.println("actuals: " + actuals);
 955 
 956         for (Style style : expecteds) {
 957             actuals.remove(style);
 958         }
 959         assertTrue(actuals.toString(), actuals.isEmpty());
 960     }
 961 
 962     @Test @org.junit.Ignore
 963     public void testGetMatchingStylesReturnsInheritedProperty() {
 964 
 965 
 966         final Stylesheet stylesheet = StylesheetShim.getStylesheet();
 967         stylesheet.setOrigin(StyleOrigin.USER_AGENT);
 968         StyleManager.getInstance().setDefaultUserAgentStylesheet(stylesheet);
 969 
 970         final List<Rule> rules = stylesheet.getRules();


1009         Rule rectRule = RuleShim.getRule(selectors, declarations);
1010         rules.add(rectRule);
1011 
1012         List<Style> expecteds = new ArrayList<Style>();
1013         Collections.addAll(expecteds,
1014                            new Style(root, fxFontShouldInherit)
1015         );
1016 
1017         final Text text = new Text("text");
1018         text.getStyleClass().add("text");
1019 
1020         final Group group = new Group();
1021         group.getChildren().add(text);
1022 
1023         Scene scene = new Scene(group);
1024         Stage stage = new Stage();
1025         stage.setScene(scene);
1026         stage.show();
1027 
1028         final CssMetaData FONT = get(text.getCssMetaData(), "-fx-font");
1029         final List<Style> actuals = Node.impl_getMatchingStyles(FONT, text);
1030 
1031         //        System.err.println("matchingStyles: " + matchingStyles);
1032         //        System.err.println("expecteds: " + expecteds);
1033         //        System.err.println("actuals: " + actuals);
1034 
1035         assertEquals(expecteds.size(), actuals.size(), 0);
1036 
1037         for (Style style : expecteds) {
1038             if (!actuals.remove(style)) fail();
1039         }
1040         assertTrue(actuals.isEmpty());
1041     }
1042 
1043     @Test @org.junit.Ignore
1044     public void testGetMatchingStylesReturnsSubProperty() {
1045 
1046         final Stylesheet stylesheet = StylesheetShim.getStylesheet();
1047         stylesheet.setOrigin(StyleOrigin.USER_AGENT);
1048         StyleManager.getInstance().setDefaultUserAgentStylesheet(stylesheet);
1049 


1093         rules.add(rectRule);
1094 
1095         List<Style> expecteds = new ArrayList<Style>();
1096         Collections.addAll(expecteds,
1097                            new Style(textSelector, fxFontFamily),
1098                            new Style(root, fxFontShouldInherit)
1099         );
1100 
1101         final Text text  = new Text();
1102         text.getStyleClass().add("text");
1103 
1104         final Group group = new Group();
1105         group.getChildren().add(text);
1106 
1107         Scene scene = new Scene(group);
1108         Stage stage = new Stage();
1109         stage.setScene(scene);
1110         stage.show();
1111 
1112         final CssMetaData FONT = get(text.getCssMetaData(), "-fx-font");
1113         final List<Style> actuals = Node.impl_getMatchingStyles(FONT, text);
1114 
1115         //        System.err.println("matchingStyles: " + matchingStyles);
1116         //        System.err.println("expecteds: " + expecteds);
1117         //        System.err.println("actuals: " + actuals);
1118 
1119         assertEquals(expecteds.size(), actuals.size(), 0);
1120 
1121         for (Style style : expecteds) {
1122             if (!actuals.remove(style)) fail();
1123         }
1124         assertTrue(actuals.isEmpty());
1125     }
1126 
1127     @Test
1128     public void testRT18097() {
1129         try {
1130             File f = System.getProperties().containsKey("CSS_META_DATA_TEST_DIR") ?
1131                     new File(System.getProperties().get("CSS_META_DATA_TEST_DIR").toString()) :
1132                     null;
1133             if (f == null) {


1278         stylesheet.setOrigin(StyleOrigin.USER_AGENT);
1279         StyleManager.getInstance().setDefaultUserAgentStylesheet(stylesheet);
1280 
1281         final Text text = new Text("HelloWorld");
1282         text.getStyleClass().add("text");
1283         text.setFill(Color.BLUE);
1284 
1285         final Group group = new Group();
1286         group.getStyleClass().add("group");
1287         group.getChildren().add(text);
1288 
1289         final Group root = new Group();
1290         root.getChildren().add(group);
1291 
1292         Scene scene = new Scene(root);
1293         Stage stage = new Stage();
1294         stage.setScene(scene);
1295         stage.show();
1296 
1297         CssMetaData prop = ((StyleableProperty)text.fillProperty()).getCssMetaData();
1298         List list = Node.impl_getMatchingStyles(prop, text);
1299 
1300         assertEquals(3, list.size(), 0);
1301 
1302     }
1303 
1304 }


  40 import com.sun.javafx.css.ParsedValueImpl;
  41 import com.sun.javafx.css.PseudoClassState;
  42 import com.sun.javafx.css.StyleManager;
  43 import test.com.sun.javafx.css.TestNode;
  44 import test.com.sun.javafx.css.TestNodeBase;
  45 import com.sun.javafx.sg.prism.NGNode;
  46 import javafx.beans.value.WritableValue;
  47 import javafx.scene.Group;
  48 import javafx.scene.Node;
  49 import javafx.scene.Scene;
  50 import javafx.scene.paint.Color;
  51 import javafx.scene.shape.Rectangle;
  52 import javafx.scene.text.Font;
  53 import javafx.scene.text.Text;
  54 import javafx.stage.Stage;
  55 import javafx.css.converter.BooleanConverter;
  56 import com.sun.javafx.geom.BaseBounds;
  57 import com.sun.javafx.geom.transform.BaseTransform;
  58 import com.sun.javafx.jmx.MXNodeAlgorithm;
  59 import com.sun.javafx.jmx.MXNodeAlgorithmContext;
  60 import com.sun.javafx.scene.NodeHelper;
  61 import javafx.css.CompoundSelector;
  62 import javafx.css.CssMetaData;
  63 import javafx.css.CssParser;
  64 import javafx.css.Declaration;
  65 import javafx.css.DeclarationShim;
  66 import javafx.css.FontCssMetaData;
  67 import javafx.css.ParsedValue;
  68 import javafx.css.PseudoClass;
  69 import javafx.css.Rule;
  70 import javafx.css.RuleShim;
  71 import javafx.css.Selector;
  72 import javafx.css.SelectorShim;
  73 import javafx.css.SimpleSelector;
  74 import javafx.css.SimpleSelectorShim;
  75 import javafx.css.Style;
  76 import javafx.css.StyleConverter;
  77 import javafx.css.StyleOrigin;
  78 import javafx.css.Styleable;
  79 import javafx.css.StyleableProperty;
  80 import javafx.css.Stylesheet;


 203                     }
 204 
 205                     @Override
 206                     public StyleableProperty<Font> getStyleableProperty(TestNode n) {
 207                         return null;
 208                     }
 209                 };
 210 
 211         String string = fontProp.toString();
 212         assertNotNull(string);
 213 
 214     }
 215 
 216     /**
 217      * Test of equals method, of class CssMetaData.
 218      */
 219     @Test
 220     public void testEquals() {
 221         TestNode testNode = new TestNode();
 222         Node node = new Node() {














 223         };
 224 
 225         CssMetaData testNodeOpacity = get(TestNode.getClassCssMetaData(), "-fx-opacity");
 226         CssMetaData nodeOpacity = get(Node.getClassCssMetaData(), "-fx-opacity");
 227 
 228         assertTrue(testNodeOpacity.equals(nodeOpacity));
 229     }
 230 
 231     static int ord = 0;
 232     static CascadingStyle createCascadingStyle(Selector selector, Declaration declaration) {
 233 
 234         Set<PseudoClass> pseudoClasses = null;
 235         if (selector instanceof SimpleSelector) {
 236 
 237             pseudoClasses =
 238                     SimpleSelectorShim.getPseudoClassStates((SimpleSelector)selector);
 239         } else {
 240 
 241             pseudoClasses = new PseudoClassState();
 242             for (SimpleSelector sel : ((CompoundSelector)selector).getSelectors()) {


 328         List<Style> expecteds = new ArrayList<Style>();
 329         Collections.addAll(expecteds,
 330                            new Style(root, fxBase),
 331                            new Style(root, fxColor),
 332                            new Style(rect, fxFill),
 333                            new Style(rectHover, fxFillHover)
 334         );
 335 
 336         final Rectangle rectangle = new Rectangle();
 337         rectangle.getStyleClass().add("rect");
 338 
 339         final Group group = new Group();
 340         group.getChildren().add(rectangle);
 341 
 342         Scene scene = new Scene(group);
 343         Stage stage = new Stage();
 344         stage.setScene(scene);
 345         stage.show();
 346 
 347         final CssMetaData FILL = get(rectangle.getCssMetaData(), "-fx-fill");
 348         final List<Style> actuals = NodeHelper.getMatchingStyles(FILL, rectangle);
 349 
 350         //        System.err.println("matchingStyles: " + matchingStyles);
 351         //        System.err.println("expecteds: " + expecteds);
 352         //        System.err.println("actuals: " + actuals);
 353 
 354         assertEquals(expecteds.size(), actuals.size(), 0);
 355 
 356         for (Style style : expecteds) {
 357             if (!actuals.remove(style)) fail();
 358         }
 359         assertTrue(actuals.isEmpty());
 360     }
 361 
 362     @Test @org.junit.Ignore
 363     public void testGetMatchingStylesWithInlineStyleOnParent() {
 364 
 365 
 366         final Stylesheet stylesheet = StylesheetShim.getStylesheet();
 367         stylesheet.setOrigin(StyleOrigin.USER_AGENT);
 368         StyleManager.getInstance().getInstance().setDefaultUserAgentStylesheet(stylesheet);


 448                            new Style(SelectorShim.getUniversalSelector(), decl),
 449                            new Style(root, fxBase),
 450                            new Style(root, fxColor),
 451                            new Style(rect, fxFill),
 452                            new Style(rectHover, fxFillHover)
 453         );
 454 
 455         final Rectangle rectangle = new Rectangle();
 456         rectangle.getStyleClass().add("rect");
 457 
 458         final Group group = new Group();
 459         group.setStyle("-fx-base: green;");
 460         group.getChildren().add(rectangle);
 461 
 462         Scene scene = new Scene(group);
 463         Stage stage = new Stage();
 464         stage.setScene(scene);
 465         stage.show();
 466 
 467         final CssMetaData FILL = get(rectangle.getCssMetaData(), "-fx-fill");
 468         final List<Style> actuals = NodeHelper.getMatchingStyles(FILL, rectangle);
 469 
 470         //        System.err.println("matchingStyles: " + matchingStyles);
 471         //        System.err.println("expecteds: " + expecteds);
 472         //        System.err.println("actuals: " + actuals);
 473 
 474         assertEquals(expecteds.size(), actuals.size(), 0);
 475 
 476         // inline style should be first
 477         assertEquals(expecteds.get(0), actuals.get(0));
 478 
 479         for (Style style : expecteds) {
 480             if (!actuals.remove(style)) fail();
 481         }
 482         assertTrue(actuals.isEmpty());
 483     }
 484 
 485     @Test @org.junit.Ignore
 486     public void testGetMatchingStylesWithInlineStyleOnLeaf() {
 487 
 488 


 571                            new Style(SelectorShim.getUniversalSelector(), decl),
 572                            new Style(root, fxBase),
 573                            new Style(root, fxColor),
 574                            new Style(rect, fxFill),
 575                            new Style(rectHover, fxFillHover)
 576         );
 577 
 578         final Rectangle rectangle = new Rectangle();
 579         rectangle.getStyleClass().add("rect");
 580         rectangle.setStyle("-fx-base: green;");
 581 
 582         final Group group = new Group();
 583         group.getChildren().add(rectangle);
 584 
 585         Scene scene = new Scene(group);
 586         Stage stage = new Stage();
 587         stage.setScene(scene);
 588         stage.show();
 589 
 590         final CssMetaData FILL = get(rectangle.getCssMetaData(), "-fx-fill");
 591         final List<Style> actuals = NodeHelper.getMatchingStyles(FILL, rectangle);
 592 
 593         //        System.err.println("matchingStyles: " + matchingStyles);
 594         //        System.err.println("expecteds: " + expecteds);
 595         //        System.err.println("actuals: " + actuals);
 596 
 597         assertEquals(expecteds.size(), actuals.size(), 0);
 598 
 599         // inline style should be first
 600         assertEquals(expecteds.get(0), actuals.get(0));
 601 
 602         for (Style style : expecteds) {
 603             if (!actuals.remove(style)) fail();
 604         }
 605         assertTrue(actuals.isEmpty());
 606     }
 607 
 608     @Test @org.junit.Ignore
 609     public void testGetMatchingStylesWithInlineStyleOnRootAndLeaf() {
 610 
 611 


 698                            new Style(root, fxBase),
 699                            new Style(root, fxColor),
 700                            new Style(rect, fxFill),
 701                            new Style(rectHover, fxFillHover)
 702         );
 703 
 704         final Rectangle rectangle = new Rectangle();
 705         rectangle.getStyleClass().add("rect");
 706         rectangle.setStyle("-fx-base: green;");
 707 
 708         final Group group = new Group();
 709         group.setStyle("-fx-color: yellow;");
 710         group.getChildren().add(rectangle);
 711 
 712         Scene scene = new Scene(group);
 713         Stage stage = new Stage();
 714         stage.setScene(scene);
 715         stage.show();
 716 
 717         final CssMetaData FILL = get(rectangle.getCssMetaData(), "-fx-fill");
 718         final List<Style> actuals = NodeHelper.getMatchingStyles(FILL, rectangle);
 719 
 720         //        System.err.println("matchingStyles: " + matchingStyles);
 721         //        System.err.println("expecteds: " + expecteds);
 722         //        System.err.println("actuals: " + actuals);
 723 
 724         assertEquals(expecteds.size(), actuals.size(), 0);
 725 
 726         // inline style should be first
 727         assertEquals(expecteds.get(0), actuals.get(0));
 728 
 729         for (Style style : expecteds) {
 730             if (!actuals.remove(style)) fail(style.toString());
 731         }
 732         assertTrue(actuals.isEmpty());
 733     }
 734 
 735     @Test @org.junit.Ignore
 736     public void testGetMatchingStylesShouldNotReturnAncestorPropertyIfNotInherited() {
 737 
 738 


 809         List<Style> expecteds = new ArrayList<Style>();
 810         Collections.addAll(expecteds,
 811                            new Style(root, fxBase),
 812                            new Style(root, fxColor),
 813                            new Style(rect, fxFill),
 814                            new Style(rectHover, fxFillHover)
 815         );
 816 
 817         final Rectangle rectangle = new Rectangle();
 818         rectangle.getStyleClass().add("rect");
 819 
 820         final Group group = new Group();
 821         group.getChildren().add(rectangle);
 822 
 823         Scene scene = new Scene(group);
 824         Stage stage = new Stage();
 825         stage.setScene(scene);
 826         stage.show();
 827 
 828         final CssMetaData FILL = get(rectangle.getCssMetaData(), "-fx-fill");
 829         final List<Style> actuals = NodeHelper.getMatchingStyles(FILL, rectangle);
 830 
 831         //        System.err.println("matchingStyles: " + matchingStyles);
 832         //        System.err.println("expecteds: " + expecteds);
 833         //        System.err.println("actuals: " + actuals);
 834 
 835         assertEquals(expecteds.size(), actuals.size(), 0);
 836 
 837         for (Style style : expecteds) {
 838             if (!actuals.remove(style)) fail();
 839         }
 840         assertTrue(actuals.isEmpty());
 841     }
 842 
 843 
 844     @Test @org.junit.Ignore
 845     public void testGetMatchingStylesShouldNotReturnInlineAncestorPropertyIfNotInherited() {
 846 
 847         final Stylesheet stylesheet = StylesheetShim.getStylesheet();
 848         stylesheet.setOrigin(StyleOrigin.USER_AGENT);
 849         StyleManager.getInstance().setDefaultUserAgentStylesheet(stylesheet);


 917         List<Style> expecteds = new ArrayList<Style>();
 918         Collections.addAll(expecteds,
 919                            new Style(root, fxBase),
 920                            new Style(root, fxColor),
 921                            new Style(rect, fxFill),
 922                            new Style(rectHover, fxFillHover)
 923         );
 924 
 925         final Rectangle rectangle = new Rectangle();
 926         rectangle.getStyleClass().add("rect");
 927 
 928         final Group group = new Group();
 929         group.getChildren().add(rectangle);
 930 
 931         Scene scene = new Scene(group);
 932         Stage stage = new Stage();
 933         stage.setScene(scene);
 934         stage.show();
 935 
 936         final CssMetaData FILL = get(rectangle.getCssMetaData(), "-fx-fill");
 937         final List<Style> actuals = NodeHelper.getMatchingStyles(FILL, rectangle);
 938 
 939         //        System.err.println("matchingStyles: " + matchingStyles);
 940         //        System.err.println("expecteds: " + expecteds);
 941         //        System.err.println("actuals: " + actuals);
 942 
 943         for (Style style : expecteds) {
 944             actuals.remove(style);
 945         }
 946         assertTrue(actuals.toString(), actuals.isEmpty());
 947     }
 948 
 949     @Test @org.junit.Ignore
 950     public void testGetMatchingStylesReturnsInheritedProperty() {
 951 
 952 
 953         final Stylesheet stylesheet = StylesheetShim.getStylesheet();
 954         stylesheet.setOrigin(StyleOrigin.USER_AGENT);
 955         StyleManager.getInstance().setDefaultUserAgentStylesheet(stylesheet);
 956 
 957         final List<Rule> rules = stylesheet.getRules();


 996         Rule rectRule = RuleShim.getRule(selectors, declarations);
 997         rules.add(rectRule);
 998 
 999         List<Style> expecteds = new ArrayList<Style>();
1000         Collections.addAll(expecteds,
1001                            new Style(root, fxFontShouldInherit)
1002         );
1003 
1004         final Text text = new Text("text");
1005         text.getStyleClass().add("text");
1006 
1007         final Group group = new Group();
1008         group.getChildren().add(text);
1009 
1010         Scene scene = new Scene(group);
1011         Stage stage = new Stage();
1012         stage.setScene(scene);
1013         stage.show();
1014 
1015         final CssMetaData FONT = get(text.getCssMetaData(), "-fx-font");
1016         final List<Style> actuals = NodeHelper.getMatchingStyles(FONT, text);
1017 
1018         //        System.err.println("matchingStyles: " + matchingStyles);
1019         //        System.err.println("expecteds: " + expecteds);
1020         //        System.err.println("actuals: " + actuals);
1021 
1022         assertEquals(expecteds.size(), actuals.size(), 0);
1023 
1024         for (Style style : expecteds) {
1025             if (!actuals.remove(style)) fail();
1026         }
1027         assertTrue(actuals.isEmpty());
1028     }
1029 
1030     @Test @org.junit.Ignore
1031     public void testGetMatchingStylesReturnsSubProperty() {
1032 
1033         final Stylesheet stylesheet = StylesheetShim.getStylesheet();
1034         stylesheet.setOrigin(StyleOrigin.USER_AGENT);
1035         StyleManager.getInstance().setDefaultUserAgentStylesheet(stylesheet);
1036 


1080         rules.add(rectRule);
1081 
1082         List<Style> expecteds = new ArrayList<Style>();
1083         Collections.addAll(expecteds,
1084                            new Style(textSelector, fxFontFamily),
1085                            new Style(root, fxFontShouldInherit)
1086         );
1087 
1088         final Text text  = new Text();
1089         text.getStyleClass().add("text");
1090 
1091         final Group group = new Group();
1092         group.getChildren().add(text);
1093 
1094         Scene scene = new Scene(group);
1095         Stage stage = new Stage();
1096         stage.setScene(scene);
1097         stage.show();
1098 
1099         final CssMetaData FONT = get(text.getCssMetaData(), "-fx-font");
1100         final List<Style> actuals = NodeHelper.getMatchingStyles(FONT, text);
1101 
1102         //        System.err.println("matchingStyles: " + matchingStyles);
1103         //        System.err.println("expecteds: " + expecteds);
1104         //        System.err.println("actuals: " + actuals);
1105 
1106         assertEquals(expecteds.size(), actuals.size(), 0);
1107 
1108         for (Style style : expecteds) {
1109             if (!actuals.remove(style)) fail();
1110         }
1111         assertTrue(actuals.isEmpty());
1112     }
1113 
1114     @Test
1115     public void testRT18097() {
1116         try {
1117             File f = System.getProperties().containsKey("CSS_META_DATA_TEST_DIR") ?
1118                     new File(System.getProperties().get("CSS_META_DATA_TEST_DIR").toString()) :
1119                     null;
1120             if (f == null) {


1265         stylesheet.setOrigin(StyleOrigin.USER_AGENT);
1266         StyleManager.getInstance().setDefaultUserAgentStylesheet(stylesheet);
1267 
1268         final Text text = new Text("HelloWorld");
1269         text.getStyleClass().add("text");
1270         text.setFill(Color.BLUE);
1271 
1272         final Group group = new Group();
1273         group.getStyleClass().add("group");
1274         group.getChildren().add(text);
1275 
1276         final Group root = new Group();
1277         root.getChildren().add(group);
1278 
1279         Scene scene = new Scene(root);
1280         Stage stage = new Stage();
1281         stage.setScene(scene);
1282         stage.show();
1283 
1284         CssMetaData prop = ((StyleableProperty)text.fillProperty()).getCssMetaData();
1285         List list = NodeHelper.getMatchingStyles(prop, text);
1286 
1287         assertEquals(3, list.size(), 0);
1288 
1289     }
1290 
1291 }
< prev index next >