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 }
|