modules/graphics/src/test/java/test/com/sun/javafx/css/StyleManagerTest.java

Print this page
rev 9250 : 8134762: Refactor Javafx graphics module tests for clear separation of tests
Reviewed-by:

*** 21,32 **** * 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.css; import javafx.css.CssParser; import javafx.css.StyleOrigin; import javafx.css.StyleableProperty; import javafx.css.Stylesheet; import javafx.scene.Group; --- 21,36 ---- * 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 test.com.sun.javafx.css; + import com.sun.javafx.css.CascadingStyle; + import com.sun.javafx.css.StyleManager; + import com.sun.javafx.css.StyleManagerShim; + import com.sun.javafx.css.StyleMap; import javafx.css.CssParser; import javafx.css.StyleOrigin; import javafx.css.StyleableProperty; import javafx.css.Stylesheet; import javafx.scene.Group;
*** 58,201 **** public StyleManagerTest() { } @Before public void setUp() { ! StyleManager sm = StyleManager.getInstance(); ! sm.userAgentStylesheetContainers.clear(); ! sm.platformUserAgentStylesheetContainers.clear(); ! sm.stylesheetContainerMap.clear(); ! sm.cacheContainerMap.clear(); ! sm.hasDefaultUserAgentStylesheet = false; } @Test public void testMethod_getInstance() { Scene scene = new Scene(new Group()); ! StyleManager sm = StyleManager.getInstance(); assertNotNull(sm); } - private static int indexOf(final List<StyleManager.StylesheetContainer> list, final String fname) { - - for (int n=0, nMax=list.size(); n<nMax; n++) { - StyleManager.StylesheetContainer container = list.get(n); - if (fname.equals(container.fname)) { - return n; - } - } - - return -1; - } - @Test public void testAddUserAgentStyleshseet_String() { ! StyleManager sm = StyleManager.getInstance(); ! sm.addUserAgentStylesheet("/com/sun/javafx/css/ua0.css"); ! int index = indexOf(sm.platformUserAgentStylesheetContainers, "/com/sun/javafx/css/ua0.css"); assertEquals(0,index); } @Test public void testAddUserAgentStyleshseet_String_Multiple() { ! StyleManager sm = StyleManager.getInstance(); ! sm.addUserAgentStylesheet("/com/sun/javafx/css/ua0.css"); ! sm.addUserAgentStylesheet("/com/sun/javafx/css/ua1.css"); ! int index = indexOf(sm.platformUserAgentStylesheetContainers, "/com/sun/javafx/css/ua0.css"); assertEquals(0,index); ! index = indexOf(sm.platformUserAgentStylesheetContainers, "/com/sun/javafx/css/ua1.css"); assertEquals(1, index); } @Test public void testAddUserAgentStyleshseet_String_Duplicate() { ! StyleManager sm = StyleManager.getInstance(); ! sm.addUserAgentStylesheet("/com/sun/javafx/css/ua0.css"); ! sm.addUserAgentStylesheet("/com/sun/javafx/css/ua1.css"); ! sm.addUserAgentStylesheet("/com/sun/javafx/css/ua0.css"); ! assertTrue(sm.platformUserAgentStylesheetContainers.size() == 2); ! int index = indexOf(sm.platformUserAgentStylesheetContainers,"/com/sun/javafx/css/ua0.css"); assertEquals(0,index); ! index = indexOf(sm.platformUserAgentStylesheetContainers,"/com/sun/javafx/css/ua1.css"); assertEquals(1, index); } @Test public void testSetDefaultUserAgentStyleshseet_String() { ! StyleManager sm = StyleManager.getInstance(); ! sm.setDefaultUserAgentStylesheet("/com/sun/javafx/css/ua0.css"); ! int index = indexOf(sm.platformUserAgentStylesheetContainers, "/com/sun/javafx/css/ua0.css"); assertEquals(0, index); } @Test public void testSetUserAgentStyleshseet_String_Multiple() { ! StyleManager sm = StyleManager.getInstance(); ! sm.setDefaultUserAgentStylesheet("/com/sun/javafx/css/ua0.css"); ! sm.addUserAgentStylesheet("/com/sun/javafx/css/ua1.css"); ! assertTrue(sm.platformUserAgentStylesheetContainers.size() == 2); ! int index = indexOf(sm.platformUserAgentStylesheetContainers, "/com/sun/javafx/css/ua0.css"); assertEquals(0,index); ! index = indexOf(sm.platformUserAgentStylesheetContainers, "/com/sun/javafx/css/ua1.css"); assertEquals(1, index); } @Test public void testSetUserAgentStyleshseet_String_Multiple2() { ! StyleManager sm = StyleManager.getInstance(); // same as before but set default after adding another. ! sm.addUserAgentStylesheet("/com/sun/javafx/css/ua1.css"); ! sm.setDefaultUserAgentStylesheet("/com/sun/javafx/css/ua0.css"); ! assertEquals(2, sm.platformUserAgentStylesheetContainers.size()); ! int index = indexOf(sm.platformUserAgentStylesheetContainers,"/com/sun/javafx/css/ua0.css"); assertEquals(0,index); ! index = indexOf(sm.platformUserAgentStylesheetContainers,"/com/sun/javafx/css/ua1.css"); assertEquals(1, index); } @Test public void testSetUserAgentStyleshseet_String_Duplicate() { ! StyleManager sm = StyleManager.getInstance(); ! sm.setDefaultUserAgentStylesheet("/com/sun/javafx/css/ua0.css"); ! sm.addUserAgentStylesheet("/com/sun/javafx/css/ua1.css"); ! sm.setDefaultUserAgentStylesheet("/com/sun/javafx/css/ua0.css"); ! assertEquals(2, sm.platformUserAgentStylesheetContainers.size()); ! int index = indexOf(sm.platformUserAgentStylesheetContainers, "/com/sun/javafx/css/ua0.css"); assertEquals(0,index); ! index = indexOf(sm.platformUserAgentStylesheetContainers, "/com/sun/javafx/css/ua1.css"); assertEquals(1, index); } @Test public void testAddUserAgentStyleshseet_Stylesheet() { try { ! StyleManager sm = StyleManager.getInstance(); URL ua0_url = StyleManagerTest.class.getResource("ua0.css"); Stylesheet stylesheet = new CssParser().parse(ua0_url); sm.addUserAgentStylesheet(null,stylesheet); ! assertEquals(1, sm.platformUserAgentStylesheetContainers.size()); ! int index = indexOf(sm.platformUserAgentStylesheetContainers,ua0_url.toExternalForm()); assertEquals(0, index); } catch (Exception ioe) { fail(ioe.getMessage()); } --- 62,193 ---- public StyleManagerTest() { } @Before public void setUp() { ! StyleManagerShim sm = StyleManagerShim.getInstance(); ! sm.userAgentStylesheetContainers_clear(); ! sm.platformUserAgentStylesheetContainers_clear(); ! sm.stylesheetContainerMap_clear(); ! sm.cacheContainerMap_clear(); ! sm.set_hasDefaultUserAgentStylesheet(false); } @Test public void testMethod_getInstance() { Scene scene = new Scene(new Group()); ! StyleManagerShim sm = StyleManagerShim.getInstance(); assertNotNull(sm); } @Test public void testAddUserAgentStyleshseet_String() { ! StyleManagerShim sm = StyleManagerShim.getInstance(); ! sm.addUserAgentStylesheet("/test/com/sun/javafx/css/ua0.css"); ! int index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(0,index); } @Test public void testAddUserAgentStyleshseet_String_Multiple() { ! StyleManagerShim sm = StyleManagerShim.getInstance(); ! sm.addUserAgentStylesheet("/test/com/sun/javafx/css/ua0.css"); ! sm.addUserAgentStylesheet("/test/com/sun/javafx/css/ua1.css"); ! int index = sm.platformUserAgentStylesheetContainers_indexOf( "/test/com/sun/javafx/css/ua0.css"); assertEquals(0,index); ! index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua1.css"); assertEquals(1, index); } @Test public void testAddUserAgentStyleshseet_String_Duplicate() { ! StyleManagerShim sm = StyleManagerShim.getInstance(); ! sm.addUserAgentStylesheet("/test/com/sun/javafx/css/ua0.css"); ! sm.addUserAgentStylesheet("/test/com/sun/javafx/css/ua1.css"); ! sm.addUserAgentStylesheet("/test/com/sun/javafx/css/ua0.css"); ! assertTrue(sm.platformUserAgentStylesheetContainers_size() == 2); ! int index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(0,index); ! index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua1.css"); assertEquals(1, index); } @Test public void testSetDefaultUserAgentStyleshseet_String() { ! StyleManagerShim sm = StyleManagerShim.getInstance(); ! sm.setDefaultUserAgentStylesheet("/test/com/sun/javafx/css/ua0.css"); ! int index = sm.platformUserAgentStylesheetContainers_indexOf( "/test/com/sun/javafx/css/ua0.css"); assertEquals(0, index); } @Test public void testSetUserAgentStyleshseet_String_Multiple() { ! StyleManagerShim sm = StyleManagerShim.getInstance(); ! sm.setDefaultUserAgentStylesheet("/test/com/sun/javafx/css/ua0.css"); ! sm.addUserAgentStylesheet("/test/com/sun/javafx/css/ua1.css"); ! assertTrue(sm.platformUserAgentStylesheetContainers_size() == 2); ! int index = sm.platformUserAgentStylesheetContainers_indexOf( "/test/com/sun/javafx/css/ua0.css"); assertEquals(0,index); ! index = sm.platformUserAgentStylesheetContainers_indexOf( "/test/com/sun/javafx/css/ua1.css"); assertEquals(1, index); } @Test public void testSetUserAgentStyleshseet_String_Multiple2() { ! StyleManagerShim sm = StyleManagerShim.getInstance(); // same as before but set default after adding another. ! sm.addUserAgentStylesheet("/test/com/sun/javafx/css/ua1.css"); ! sm.setDefaultUserAgentStylesheet("/test/com/sun/javafx/css/ua0.css"); ! assertEquals(2, sm.platformUserAgentStylesheetContainers_size()); ! int index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(0,index); ! index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua1.css"); assertEquals(1, index); } @Test public void testSetUserAgentStyleshseet_String_Duplicate() { ! StyleManagerShim sm = StyleManagerShim.getInstance(); ! sm.setDefaultUserAgentStylesheet("/test/com/sun/javafx/css/ua0.css"); ! sm.addUserAgentStylesheet("/test/com/sun/javafx/css/ua1.css"); ! sm.setDefaultUserAgentStylesheet("/test/com/sun/javafx/css/ua0.css"); ! assertEquals(2, sm.platformUserAgentStylesheetContainers_size()); ! int index = sm.platformUserAgentStylesheetContainers_indexOf( "/test/com/sun/javafx/css/ua0.css"); assertEquals(0,index); ! index = sm.platformUserAgentStylesheetContainers_indexOf( "/test/com/sun/javafx/css/ua1.css"); assertEquals(1, index); } @Test public void testAddUserAgentStyleshseet_Stylesheet() { try { ! StyleManagerShim sm = StyleManagerShim.getInstance(); URL ua0_url = StyleManagerTest.class.getResource("ua0.css"); Stylesheet stylesheet = new CssParser().parse(ua0_url); sm.addUserAgentStylesheet(null,stylesheet); ! assertEquals(1, sm.platformUserAgentStylesheetContainers_size()); ! int index = sm.platformUserAgentStylesheetContainers_indexOf(ua0_url.toExternalForm()); assertEquals(0, index); } catch (Exception ioe) { fail(ioe.getMessage()); }
*** 204,229 **** @Test public void testSetDefaultUserAgentStyleshseet_Stylesheet() { try { ! StyleManager sm = StyleManager.getInstance(); URL ua1_url = StyleManagerTest.class.getResource("ua1.css"); Stylesheet stylesheet = new CssParser().parse(ua1_url); sm.addUserAgentStylesheet(null,stylesheet); URL ua0_url = StyleManagerTest.class.getResource("ua0.css"); stylesheet = new CssParser().parse(ua0_url); sm.setDefaultUserAgentStylesheet(stylesheet); ! assertEquals(2, sm.platformUserAgentStylesheetContainers.size()); ! int index = indexOf(sm.platformUserAgentStylesheetContainers,ua0_url.toExternalForm()); assertEquals(0, index); ! index = indexOf(sm.platformUserAgentStylesheetContainers,ua1_url.toExternalForm()); assertEquals(1, index); } catch (Exception ioe) { fail(ioe.getMessage()); } --- 196,221 ---- @Test public void testSetDefaultUserAgentStyleshseet_Stylesheet() { try { ! StyleManagerShim sm = StyleManagerShim.getInstance(); URL ua1_url = StyleManagerTest.class.getResource("ua1.css"); Stylesheet stylesheet = new CssParser().parse(ua1_url); sm.addUserAgentStylesheet(null,stylesheet); URL ua0_url = StyleManagerTest.class.getResource("ua0.css"); stylesheet = new CssParser().parse(ua0_url); sm.setDefaultUserAgentStylesheet(stylesheet); ! assertEquals(2, sm.platformUserAgentStylesheetContainers_size()); ! int index = sm.platformUserAgentStylesheetContainers_indexOf(ua0_url.toExternalForm()); assertEquals(0, index); ! index = sm.platformUserAgentStylesheetContainers_indexOf(ua1_url.toExternalForm()); assertEquals(1, index); } catch (Exception ioe) { fail(ioe.getMessage()); }
*** 231,642 **** } @Test public void testSceneUAStylesheetAdded() { Scene scene = new Scene(new Group(new Rectangle(){{ getStyleClass().add("rect"); }})); ! scene.setUserAgentStylesheet("/com/sun/javafx/css/ua1.css"); ! StyleManager sm = StyleManager.getInstance(); ! sm.setDefaultUserAgentStylesheet("/com/sun/javafx/css/ua0.css"); scene.getRoot().applyCss(); ! int index = indexOf(sm.platformUserAgentStylesheetContainers,"/com/sun/javafx/css/ua0.css"); assertEquals(0,index); ! index = indexOf(sm.userAgentStylesheetContainers,"/com/sun/javafx/css/ua0.css"); assertEquals(-1, index); ! index = indexOf(sm.userAgentStylesheetContainers,"/com/sun/javafx/css/ua1.css"); assertEquals(0,index); // the Scene user-agent stylesheet is not a platform user-agent stylesheet ! index = indexOf(sm.platformUserAgentStylesheetContainers, "/com/sun/javafx/css/ua1.css"); assertEquals(-1, index); } @Test public void testSubSceneUAStylesheetAdded() { Scene scene = new Scene(new Group(new Rectangle(){{ getStyleClass().add("rect"); }})); ! scene.setUserAgentStylesheet("/com/sun/javafx/css/ua1.css"); ! StyleManager sm = StyleManager.getInstance(); ! sm.setDefaultUserAgentStylesheet("/com/sun/javafx/css/ua0.css"); scene.getRoot().applyCss(); ! int index = indexOf(sm.platformUserAgentStylesheetContainers,"/com/sun/javafx/css/ua0.css"); assertEquals(0,index); ! index = indexOf(sm.userAgentStylesheetContainers,"/com/sun/javafx/css/ua0.css"); assertEquals(-1, index); ! index = indexOf(sm.userAgentStylesheetContainers,"/com/sun/javafx/css/ua1.css"); assertEquals(0,index); // the Scene user-agent stylesheet is not a platform user-agent stylesheet ! index = indexOf(sm.platformUserAgentStylesheetContainers, "/com/sun/javafx/css/ua1.css"); assertEquals(-1, index); } @Test public void testForgetParent() { Scene scene = new Scene(new Group(new Rectangle(){{ getStyleClass().add("rect"); }})); ! StyleManager sm = StyleManager.getInstance(); ! sm.setDefaultUserAgentStylesheet("/com/sun/javafx/css/ua0.css"); scene.getRoot().applyCss(); ! int index = indexOf(sm.platformUserAgentStylesheetContainers,"/com/sun/javafx/css/ua0.css"); assertEquals(0,index); sm.forget(scene.getRoot()); // forgetting the scene should not affect the platform user-agent stylesheets ! index = indexOf(sm.platformUserAgentStylesheetContainers,"/com/sun/javafx/css/ua0.css"); assertEquals(0,index); } @Test public void testForgetParent_withSceneUAStylesheet() { Scene scene = new Scene(new Group(new Rectangle(){{ getStyleClass().add("rect"); }})); ! scene.setUserAgentStylesheet("/com/sun/javafx/css/ua1.css"); ! StyleManager sm = StyleManager.getInstance(); ! sm.setDefaultUserAgentStylesheet("/com/sun/javafx/css/ua0.css"); scene.getRoot().applyCss(); ! int index = indexOf(sm.platformUserAgentStylesheetContainers,"/com/sun/javafx/css/ua0.css"); assertEquals(0, index); ! index = indexOf(sm.userAgentStylesheetContainers,"/com/sun/javafx/css/ua0.css"); assertEquals(-1, index); ! index = indexOf(sm.userAgentStylesheetContainers,"/com/sun/javafx/css/ua1.css"); assertEquals(0,index); ! index = indexOf(sm.platformUserAgentStylesheetContainers,"/com/sun/javafx/css/ua1.css"); assertEquals(-1, index); sm.forget(scene.getRoot()); // forgetting the parent should not affect the platform user-agent stylesheets ! index = indexOf(sm.platformUserAgentStylesheetContainers,"/com/sun/javafx/css/ua0.css"); assertEquals(0,index); // only forgetting the scene should affect the platform user-agent stylesheets ! index = indexOf(sm.userAgentStylesheetContainers,"/com/sun/javafx/css/ua1.css"); assertEquals(0, index); } @Test public void testForgetParent_withTwoScenes() { Scene scene0 = new Scene(new Group(new Rectangle(){{ getStyleClass().add("rect"); }})); ! scene0.setUserAgentStylesheet("/com/sun/javafx/css/ua1.css"); Scene scene1 = new Scene(new Group(new Rectangle(){{ getStyleClass().add("rect"); }})); ! scene1.setUserAgentStylesheet("/com/sun/javafx/css/ua1.css"); ! StyleManager sm = StyleManager.getInstance(); ! sm.setDefaultUserAgentStylesheet("/com/sun/javafx/css/ua0.css"); scene0.getRoot().applyCss(); scene1.getRoot().applyCss(); // even though there are two scenes using this stylesheet, there should only be one container. ! assertEquals(1, sm.userAgentStylesheetContainers.size()); ! int index = indexOf(sm.platformUserAgentStylesheetContainers,"/com/sun/javafx/css/ua0.css"); assertEquals(0,index); ! index = indexOf(sm.userAgentStylesheetContainers,"/com/sun/javafx/css/ua0.css"); assertEquals(-1, index); ! index = indexOf(sm.userAgentStylesheetContainers,"/com/sun/javafx/css/ua1.css"); assertEquals(0, index); ! index = indexOf(sm.platformUserAgentStylesheetContainers,"/com/sun/javafx/css/ua1.css"); assertEquals(-1, index); sm.forget(scene0.getRoot()); // forgetting the scene should not affect the platform user-agent stylesheets ! index = indexOf(sm.platformUserAgentStylesheetContainers,"/com/sun/javafx/css/ua0.css"); assertEquals(0,index); // we should still have ua1.css since scene1 is still using it ! index = indexOf(sm.userAgentStylesheetContainers,"/com/sun/javafx/css/ua1.css"); assertEquals(0,index); sm.forget(scene1.getRoot()); // only forgetting the scene should affect the platform user-agent stylesheets ! index = indexOf(sm.userAgentStylesheetContainers,"/com/sun/javafx/css/ua1.css"); assertEquals(0, index); } @Test public void testForgetParent_withParentStylesheet() { Scene scene = new Scene(new Group(new Rectangle(){{ getStyleClass().add("rect"); }})); ! scene.getRoot().getStylesheets().add("/com/sun/javafx/css/ua1.css"); ! StyleManager sm = StyleManager.getInstance(); ! sm.setDefaultUserAgentStylesheet("/com/sun/javafx/css/ua0.css"); scene.getRoot().applyCss(); ! int index = indexOf(sm.platformUserAgentStylesheetContainers,"/com/sun/javafx/css/ua0.css"); assertEquals(0, index); ! assertTrue(sm.userAgentStylesheetContainers.isEmpty()); ! assertTrue(sm.stylesheetContainerMap.containsKey("/com/sun/javafx/css/ua1.css")); sm.forget(scene.getRoot()); // forgetting the scene should not affect the platform user-agent stylesheets ! index = indexOf(sm.platformUserAgentStylesheetContainers,"/com/sun/javafx/css/ua0.css"); assertEquals(0, index); ! assertFalse(sm.stylesheetContainerMap.containsKey("/com/sun/javafx/css/ua1.css")); } @Test public void testForgetParent_withMultipleParentStylesheets() { final Parent parent0 = new Pane(new Rectangle(){{ getStyleClass().add("rect"); }}); ! parent0.getStylesheets().add("/com/sun/javafx/css/ua1.css"); final Parent parent1 = new Pane(new Rectangle(){{ getStyleClass().add("rect"); }}); ! parent1.getStylesheets().add("/com/sun/javafx/css/ua1.css"); Scene scene = new Scene(new Group(parent0, parent1)); ! StyleManager sm = StyleManager.getInstance(); ! sm.setDefaultUserAgentStylesheet("/com/sun/javafx/css/ua0.css"); scene.getRoot().applyCss(); ! assertTrue(sm.userAgentStylesheetContainers.isEmpty()); ! StyleManager.StylesheetContainer container = sm.stylesheetContainerMap.get("/com/sun/javafx/css/ua1.css"); assertNotNull(container); ! assertTrue(container.parentUsers.contains(parent0)); ! assertTrue(container.parentUsers.contains(parent1)); sm.forget(parent0); ! assertTrue(sm.stylesheetContainerMap.containsKey("/com/sun/javafx/css/ua1.css")); ! assertFalse(container.parentUsers.contains(parent0)); ! assertTrue(container.parentUsers.contains(parent1)); sm.forget(parent1); ! assertFalse(sm.stylesheetContainerMap.containsKey("/com/sun/javafx/css/ua1.css")); ! assertFalse(container.parentUsers.contains(parent0)); ! assertFalse(container.parentUsers.contains(parent1)); } @Test public void testForgetScene() { Scene scene = new Scene(new Group(new Rectangle(){{ getStyleClass().add("rect"); }})); ! StyleManager sm = StyleManager.getInstance(); ! sm.setDefaultUserAgentStylesheet("/com/sun/javafx/css/ua0.css"); scene.getRoot().applyCss(); ! int index = indexOf(sm.platformUserAgentStylesheetContainers,"/com/sun/javafx/css/ua0.css"); assertEquals(0,index); sm.forget(scene); // forgetting the scene should not affect the platform user-agent stylesheets ! index = indexOf(sm.platformUserAgentStylesheetContainers,"/com/sun/javafx/css/ua0.css"); assertEquals(0,index); } @Test public void testForgetScene_withUAStylesheet() { Scene scene = new Scene(new Group(new Rectangle(){{ getStyleClass().add("rect"); }})); ! scene.setUserAgentStylesheet("/com/sun/javafx/css/ua1.css"); ! StyleManager sm = StyleManager.getInstance(); ! sm.setDefaultUserAgentStylesheet("/com/sun/javafx/css/ua0.css"); scene.getRoot().applyCss(); ! int index = indexOf(sm.platformUserAgentStylesheetContainers,"/com/sun/javafx/css/ua0.css"); assertEquals(0, index); ! index = indexOf(sm.userAgentStylesheetContainers,"/com/sun/javafx/css/ua0.css"); assertEquals(-1, index); ! index = indexOf(sm.userAgentStylesheetContainers,"/com/sun/javafx/css/ua1.css"); assertEquals(0,index); ! index = indexOf(sm.platformUserAgentStylesheetContainers,"/com/sun/javafx/css/ua1.css"); assertEquals(-1, index); sm.forget(scene); // forgetting the scene should not affect the platform user-agent stylesheets ! index = indexOf(sm.platformUserAgentStylesheetContainers,"/com/sun/javafx/css/ua0.css"); assertEquals(0,index); ! index = indexOf(sm.userAgentStylesheetContainers,"/com/sun/javafx/css/ua1.css"); assertEquals(-1, index); } @Test public void testForgetScene_withTwoScenes() { Scene scene0 = new Scene(new Group(new Rectangle(){{ getStyleClass().add("rect"); }})); ! scene0.setUserAgentStylesheet("/com/sun/javafx/css/ua1.css"); Scene scene1 = new Scene(new Group(new Rectangle(){{ getStyleClass().add("rect"); }})); ! scene1.setUserAgentStylesheet("/com/sun/javafx/css/ua1.css"); ! StyleManager sm = StyleManager.getInstance(); ! sm.setDefaultUserAgentStylesheet("/com/sun/javafx/css/ua0.css"); scene0.getRoot().applyCss(); scene1.getRoot().applyCss(); // even though there are two scenes using this stylesheet, there should only be one container. ! assertEquals(1, sm.userAgentStylesheetContainers.size()); ! int index = indexOf(sm.platformUserAgentStylesheetContainers,"/com/sun/javafx/css/ua0.css"); assertEquals(0,index); ! index = indexOf(sm.userAgentStylesheetContainers,"/com/sun/javafx/css/ua0.css"); assertEquals(-1, index); ! index = indexOf(sm.userAgentStylesheetContainers,"/com/sun/javafx/css/ua1.css"); assertEquals(0,index); ! index = indexOf(sm.platformUserAgentStylesheetContainers,"/com/sun/javafx/css/ua1.css"); assertEquals(-1, index); sm.forget(scene0); // forgetting the scene should not affect the platform user-agent stylesheets ! index = indexOf(sm.platformUserAgentStylesheetContainers,"/com/sun/javafx/css/ua0.css"); assertEquals(0,index); // we should still have ua1.css since scene1 is still using it ! index = indexOf(sm.userAgentStylesheetContainers,"/com/sun/javafx/css/ua1.css"); assertEquals(0,index); sm.forget(scene1); // having forgotten scene1, userAgentStylesheetContainers should be empty. ! assertTrue(sm.userAgentStylesheetContainers.isEmpty()); } @Test public void testForgetSubScene() { Pane subSceneRoot = new Pane(new Rectangle(){{ getStyleClass().add("rect"); }}); SubScene subScene = new SubScene(subSceneRoot, 100, 100); Scene scene = new Scene(new Group(subScene)); ! StyleManager sm = StyleManager.getInstance(); ! sm.setDefaultUserAgentStylesheet("/com/sun/javafx/css/ua0.css"); scene.getRoot().applyCss(); ! int index = indexOf(sm.platformUserAgentStylesheetContainers,"/com/sun/javafx/css/ua0.css"); assertEquals(0,index); sm.forget(subScene); // forgetting the scene should not affect the platform user-agent stylesheets ! index = indexOf(sm.platformUserAgentStylesheetContainers,"/com/sun/javafx/css/ua0.css"); assertEquals(0,index); } @Test public void testForgetSubScene_withUAStylesheet() { Pane subSceneRoot = new Pane(new Group(new Rectangle(){{ getStyleClass().add("rect"); }})); SubScene subScene = new SubScene(subSceneRoot, 100, 100); ! subScene.setUserAgentStylesheet("/com/sun/javafx/css/ua1.css"); Scene scene = new Scene(new Group(subScene)); ! StyleManager sm = StyleManager.getInstance(); ! sm.setDefaultUserAgentStylesheet("/com/sun/javafx/css/ua0.css"); ! int index = indexOf(sm.platformUserAgentStylesheetContainers,"/com/sun/javafx/css/ua0.css"); assertEquals(0, index); ! index = indexOf(sm.userAgentStylesheetContainers,"/com/sun/javafx/css/ua0.css"); assertEquals(-1, index); ! index = indexOf(sm.userAgentStylesheetContainers,"/com/sun/javafx/css/ua1.css"); assertEquals(0,index); ! index = indexOf(sm.platformUserAgentStylesheetContainers,"/com/sun/javafx/css/ua1.css"); assertEquals(-1, index); sm.forget(subScene); // forgetting the scene should not affect the platform user-agent stylesheets ! index = indexOf(sm.platformUserAgentStylesheetContainers,"/com/sun/javafx/css/ua0.css"); assertEquals(0,index); ! index = indexOf(sm.userAgentStylesheetContainers,"/com/sun/javafx/css/ua1.css"); assertEquals(-1, index); } @Test public void testForgetSubScene_with_UAStylesheet_and_ParentStylesheet() { // make sure forget(SubScene) get's children with stylesheets Group group = new Group(new Rectangle(){{ getStyleClass().add("rect"); }}); ! group.getStylesheets().add("/com/sun/javafx/css/ua2.css"); Pane subSceneRoot = new Pane(group); SubScene subScene = new SubScene(subSceneRoot, 100, 100); ! subScene.setUserAgentStylesheet("/com/sun/javafx/css/ua1.css"); Scene scene = new Scene(new Group(subScene)); ! StyleManager sm = StyleManager.getInstance(); ! sm.setDefaultUserAgentStylesheet("/com/sun/javafx/css/ua0.css"); scene.getRoot().applyCss(); ! int index = indexOf(sm.platformUserAgentStylesheetContainers,"/com/sun/javafx/css/ua0.css"); assertEquals(0,index); ! index = indexOf(sm.userAgentStylesheetContainers,"/com/sun/javafx/css/ua0.css"); assertEquals(-1, index); ! index = indexOf(sm.userAgentStylesheetContainers,"/com/sun/javafx/css/ua1.css"); assertEquals(0,index); ! index = indexOf(sm.platformUserAgentStylesheetContainers,"/com/sun/javafx/css/ua1.css"); assertEquals(-1, index); sm.forget(subScene); // forgetting the scene should not affect the platform user-agent stylesheets ! index = indexOf(sm.platformUserAgentStylesheetContainers,"/com/sun/javafx/css/ua0.css"); assertEquals(0,index); ! index = indexOf(sm.userAgentStylesheetContainers,"/com/sun/javafx/css/ua1.css"); assertEquals(-1, index); } @Test --- 223,634 ---- } @Test public void testSceneUAStylesheetAdded() { Scene scene = new Scene(new Group(new Rectangle(){{ getStyleClass().add("rect"); }})); ! scene.setUserAgentStylesheet("/test/com/sun/javafx/css/ua1.css"); ! StyleManagerShim sm = StyleManagerShim.getInstance(); ! sm.setDefaultUserAgentStylesheet("/test/com/sun/javafx/css/ua0.css"); scene.getRoot().applyCss(); ! int index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(0,index); ! index = sm.userAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(-1, index); ! index = sm.userAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua1.css"); assertEquals(0,index); // the Scene user-agent stylesheet is not a platform user-agent stylesheet ! index = sm.platformUserAgentStylesheetContainers_indexOf( "/test/com/sun/javafx/css/ua1.css"); assertEquals(-1, index); } @Test public void testSubSceneUAStylesheetAdded() { Scene scene = new Scene(new Group(new Rectangle(){{ getStyleClass().add("rect"); }})); ! scene.setUserAgentStylesheet("/test/com/sun/javafx/css/ua1.css"); ! StyleManagerShim sm = StyleManagerShim.getInstance(); ! sm.setDefaultUserAgentStylesheet("/test/com/sun/javafx/css/ua0.css"); scene.getRoot().applyCss(); ! int index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(0,index); ! index = sm.userAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(-1, index); ! index = sm.userAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua1.css"); assertEquals(0,index); // the Scene user-agent stylesheet is not a platform user-agent stylesheet ! index = sm.platformUserAgentStylesheetContainers_indexOf( "/test/com/sun/javafx/css/ua1.css"); assertEquals(-1, index); } @Test public void testForgetParent() { Scene scene = new Scene(new Group(new Rectangle(){{ getStyleClass().add("rect"); }})); ! StyleManagerShim sm = StyleManagerShim.getInstance(); ! sm.setDefaultUserAgentStylesheet("/test/com/sun/javafx/css/ua0.css"); scene.getRoot().applyCss(); ! int index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(0,index); sm.forget(scene.getRoot()); // forgetting the scene should not affect the platform user-agent stylesheets ! index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(0,index); } @Test public void testForgetParent_withSceneUAStylesheet() { Scene scene = new Scene(new Group(new Rectangle(){{ getStyleClass().add("rect"); }})); ! scene.setUserAgentStylesheet("/test/com/sun/javafx/css/ua1.css"); ! StyleManagerShim sm = StyleManagerShim.getInstance(); ! sm.setDefaultUserAgentStylesheet("/test/com/sun/javafx/css/ua0.css"); scene.getRoot().applyCss(); ! int index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(0, index); ! index = sm.userAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(-1, index); ! index = sm.userAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua1.css"); assertEquals(0,index); ! index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua1.css"); assertEquals(-1, index); sm.forget(scene.getRoot()); // forgetting the parent should not affect the platform user-agent stylesheets ! index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(0,index); // only forgetting the scene should affect the platform user-agent stylesheets ! index = sm.userAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua1.css"); assertEquals(0, index); } @Test public void testForgetParent_withTwoScenes() { Scene scene0 = new Scene(new Group(new Rectangle(){{ getStyleClass().add("rect"); }})); ! scene0.setUserAgentStylesheet("/test/com/sun/javafx/css/ua1.css"); Scene scene1 = new Scene(new Group(new Rectangle(){{ getStyleClass().add("rect"); }})); ! scene1.setUserAgentStylesheet("/test/com/sun/javafx/css/ua1.css"); ! StyleManagerShim sm = StyleManagerShim.getInstance(); ! sm.setDefaultUserAgentStylesheet("/test/com/sun/javafx/css/ua0.css"); scene0.getRoot().applyCss(); scene1.getRoot().applyCss(); // even though there are two scenes using this stylesheet, there should only be one container. ! assertEquals(1, sm.userAgentStylesheetContainers_size()); ! int index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(0,index); ! index = sm.userAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(-1, index); ! index = sm.userAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua1.css"); assertEquals(0, index); ! index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua1.css"); assertEquals(-1, index); sm.forget(scene0.getRoot()); // forgetting the scene should not affect the platform user-agent stylesheets ! index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(0,index); // we should still have ua1.css since scene1 is still using it ! index = sm.userAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua1.css"); assertEquals(0,index); sm.forget(scene1.getRoot()); // only forgetting the scene should affect the platform user-agent stylesheets ! index = sm.userAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua1.css"); assertEquals(0, index); } @Test public void testForgetParent_withParentStylesheet() { Scene scene = new Scene(new Group(new Rectangle(){{ getStyleClass().add("rect"); }})); ! scene.getRoot().getStylesheets().add("/test/com/sun/javafx/css/ua1.css"); ! StyleManagerShim sm = StyleManagerShim.getInstance(); ! sm.setDefaultUserAgentStylesheet("/test/com/sun/javafx/css/ua0.css"); scene.getRoot().applyCss(); ! int index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(0, index); ! assertTrue(sm.userAgentStylesheetContainers_isEmpty()); ! assertTrue(sm.stylesheetContainerMap_containsKey("/test/com/sun/javafx/css/ua1.css")); sm.forget(scene.getRoot()); // forgetting the scene should not affect the platform user-agent stylesheets ! index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(0, index); ! assertFalse(sm.stylesheetContainerMap_containsKey("/test/com/sun/javafx/css/ua1.css")); } @Test public void testForgetParent_withMultipleParentStylesheets() { final Parent parent0 = new Pane(new Rectangle(){{ getStyleClass().add("rect"); }}); ! parent0.getStylesheets().add("/test/com/sun/javafx/css/ua1.css"); final Parent parent1 = new Pane(new Rectangle(){{ getStyleClass().add("rect"); }}); ! parent1.getStylesheets().add("/test/com/sun/javafx/css/ua1.css"); Scene scene = new Scene(new Group(parent0, parent1)); ! StyleManagerShim sm = StyleManagerShim.getInstance(); ! sm.setDefaultUserAgentStylesheet("/test/com/sun/javafx/css/ua0.css"); scene.getRoot().applyCss(); ! assertTrue(sm.userAgentStylesheetContainers_isEmpty()); ! StyleManagerShim.StylesheetContainer container = sm.stylesheetContainerMap_get("/test/com/sun/javafx/css/ua1.css"); assertNotNull(container); ! assertTrue(container.parentUsers_contains(parent0)); ! assertTrue(container.parentUsers_contains(parent1)); sm.forget(parent0); ! assertTrue(sm.stylesheetContainerMap_containsKey("/test/com/sun/javafx/css/ua1.css")); ! assertFalse(container.parentUsers_contains(parent0)); ! assertTrue(container.parentUsers_contains(parent1)); sm.forget(parent1); ! assertFalse(sm.stylesheetContainerMap_containsKey("/test/com/sun/javafx/css/ua1.css")); ! assertFalse(container.parentUsers_contains(parent0)); ! assertFalse(container.parentUsers_contains(parent1)); } @Test public void testForgetScene() { Scene scene = new Scene(new Group(new Rectangle(){{ getStyleClass().add("rect"); }})); ! StyleManagerShim sm = StyleManagerShim.getInstance(); ! sm.setDefaultUserAgentStylesheet("/test/com/sun/javafx/css/ua0.css"); scene.getRoot().applyCss(); ! int index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(0,index); sm.forget(scene); // forgetting the scene should not affect the platform user-agent stylesheets ! index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(0,index); } @Test public void testForgetScene_withUAStylesheet() { Scene scene = new Scene(new Group(new Rectangle(){{ getStyleClass().add("rect"); }})); ! scene.setUserAgentStylesheet("/test/com/sun/javafx/css/ua1.css"); ! StyleManagerShim sm = StyleManagerShim.getInstance(); ! sm.setDefaultUserAgentStylesheet("/test/com/sun/javafx/css/ua0.css"); scene.getRoot().applyCss(); ! int index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(0, index); ! index = sm.userAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(-1, index); ! index = sm.userAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua1.css"); assertEquals(0,index); ! index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua1.css"); assertEquals(-1, index); sm.forget(scene); // forgetting the scene should not affect the platform user-agent stylesheets ! index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(0,index); ! index = sm.userAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua1.css"); assertEquals(-1, index); } @Test public void testForgetScene_withTwoScenes() { Scene scene0 = new Scene(new Group(new Rectangle(){{ getStyleClass().add("rect"); }})); ! scene0.setUserAgentStylesheet("/test/com/sun/javafx/css/ua1.css"); Scene scene1 = new Scene(new Group(new Rectangle(){{ getStyleClass().add("rect"); }})); ! scene1.setUserAgentStylesheet("/test/com/sun/javafx/css/ua1.css"); ! StyleManagerShim sm = StyleManagerShim.getInstance(); ! sm.setDefaultUserAgentStylesheet("/test/com/sun/javafx/css/ua0.css"); scene0.getRoot().applyCss(); scene1.getRoot().applyCss(); // even though there are two scenes using this stylesheet, there should only be one container. ! assertEquals(1, sm.userAgentStylesheetContainers_size()); ! int index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(0,index); ! index = sm.userAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(-1, index); ! index = sm.userAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua1.css"); assertEquals(0,index); ! index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua1.css"); assertEquals(-1, index); sm.forget(scene0); // forgetting the scene should not affect the platform user-agent stylesheets ! index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(0,index); // we should still have ua1.css since scene1 is still using it ! index = sm.userAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua1.css"); assertEquals(0,index); sm.forget(scene1); // having forgotten scene1, userAgentStylesheetContainers should be empty. ! assertTrue(sm.userAgentStylesheetContainers_isEmpty()); } @Test public void testForgetSubScene() { Pane subSceneRoot = new Pane(new Rectangle(){{ getStyleClass().add("rect"); }}); SubScene subScene = new SubScene(subSceneRoot, 100, 100); Scene scene = new Scene(new Group(subScene)); ! StyleManagerShim sm = StyleManagerShim.getInstance(); ! sm.setDefaultUserAgentStylesheet("/test/com/sun/javafx/css/ua0.css"); scene.getRoot().applyCss(); ! int index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(0,index); sm.forget(subScene); // forgetting the scene should not affect the platform user-agent stylesheets ! index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(0,index); } @Test public void testForgetSubScene_withUAStylesheet() { Pane subSceneRoot = new Pane(new Group(new Rectangle(){{ getStyleClass().add("rect"); }})); SubScene subScene = new SubScene(subSceneRoot, 100, 100); ! subScene.setUserAgentStylesheet("/test/com/sun/javafx/css/ua1.css"); Scene scene = new Scene(new Group(subScene)); ! StyleManagerShim sm = StyleManagerShim.getInstance(); ! sm.setDefaultUserAgentStylesheet("/test/com/sun/javafx/css/ua0.css"); ! int index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(0, index); ! index = sm.userAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(-1, index); ! index = sm.userAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua1.css"); assertEquals(0,index); ! index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua1.css"); assertEquals(-1, index); sm.forget(subScene); // forgetting the scene should not affect the platform user-agent stylesheets ! index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(0,index); ! index = sm.userAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua1.css"); assertEquals(-1, index); } @Test public void testForgetSubScene_with_UAStylesheet_and_ParentStylesheet() { // make sure forget(SubScene) get's children with stylesheets Group group = new Group(new Rectangle(){{ getStyleClass().add("rect"); }}); ! group.getStylesheets().add("/test/com/sun/javafx/css/ua2.css"); Pane subSceneRoot = new Pane(group); SubScene subScene = new SubScene(subSceneRoot, 100, 100); ! subScene.setUserAgentStylesheet("/test/com/sun/javafx/css/ua1.css"); Scene scene = new Scene(new Group(subScene)); ! StyleManagerShim sm = StyleManagerShim.getInstance(); ! sm.setDefaultUserAgentStylesheet("/test/com/sun/javafx/css/ua0.css"); scene.getRoot().applyCss(); ! int index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(0,index); ! index = sm.userAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(-1, index); ! index = sm.userAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua1.css"); assertEquals(0,index); ! index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua1.css"); assertEquals(-1, index); sm.forget(subScene); // forgetting the scene should not affect the platform user-agent stylesheets ! index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(0,index); ! index = sm.userAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua1.css"); assertEquals(-1, index); } @Test
*** 644,691 **** Pane subSceneRoot = new Pane(new Group(new Rectangle(){{ getStyleClass().add("rect"); }})); SubScene subScene = new SubScene(subSceneRoot, 100, 100); Scene scene = new Scene(new Group(subScene)); ! StyleManager sm = StyleManager.getInstance(); ! sm.setDefaultUserAgentStylesheet("/com/sun/javafx/css/ua0.css"); scene.getRoot().applyCss(); scene.getRoot().applyCss(); scene.getRoot().applyCss(); ! int index = indexOf(sm.platformUserAgentStylesheetContainers,"/com/sun/javafx/css/ua0.css"); assertEquals(0, index); ! index = indexOf(sm.userAgentStylesheetContainers,"/com/sun/javafx/css/ua0.css"); assertEquals(-1, index); ! subScene.setUserAgentStylesheet("/com/sun/javafx/css/ua1.css"); ! index = indexOf(sm.userAgentStylesheetContainers,"/com/sun/javafx/css/ua1.css"); assertEquals(0,index); sm.forget(subScene); ! subScene.setUserAgentStylesheet("/com/sun/javafx/css/ua2.css"); scene.getRoot().applyCss(); ! index = indexOf(sm.userAgentStylesheetContainers,"/com/sun/javafx/css/ua2.css"); assertEquals(0, index); ! index = indexOf(sm.userAgentStylesheetContainers,"/com/sun/javafx/css/ua1.css"); assertEquals(-1,index); } @Test public void testFindMatchingStyles_defaultStyleSheet() { ! StyleManager sm = StyleManager.getInstance(); ! sm.setDefaultUserAgentStylesheet("/com/sun/javafx/css/ua0.css"); Rectangle rect = new Rectangle(){{ getStyleClass().add("rect"); }}; Scene scene = new Scene(new Group(rect)); StyleMap matchingStyles = sm.findMatchingStyles(rect, null, null); --- 636,683 ---- Pane subSceneRoot = new Pane(new Group(new Rectangle(){{ getStyleClass().add("rect"); }})); SubScene subScene = new SubScene(subSceneRoot, 100, 100); Scene scene = new Scene(new Group(subScene)); ! StyleManagerShim sm = StyleManagerShim.getInstance(); ! sm.setDefaultUserAgentStylesheet("/test/com/sun/javafx/css/ua0.css"); scene.getRoot().applyCss(); scene.getRoot().applyCss(); scene.getRoot().applyCss(); ! int index = sm.platformUserAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(0, index); ! index = sm.userAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua0.css"); assertEquals(-1, index); ! subScene.setUserAgentStylesheet("/test/com/sun/javafx/css/ua1.css"); ! index = sm.userAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua1.css"); assertEquals(0,index); sm.forget(subScene); ! subScene.setUserAgentStylesheet("/test/com/sun/javafx/css/ua2.css"); scene.getRoot().applyCss(); ! index = sm.userAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua2.css"); assertEquals(0, index); ! index = sm.userAgentStylesheetContainers_indexOf("/test/com/sun/javafx/css/ua1.css"); assertEquals(-1,index); } @Test public void testFindMatchingStyles_defaultStyleSheet() { ! StyleManagerShim sm = StyleManagerShim.getInstance(); ! sm.setDefaultUserAgentStylesheet("/test/com/sun/javafx/css/ua0.css"); Rectangle rect = new Rectangle(){{ getStyleClass().add("rect"); }}; Scene scene = new Scene(new Group(rect)); StyleMap matchingStyles = sm.findMatchingStyles(rect, null, null);
*** 701,716 **** } @Test public void testFindMatchingStyles_defaultStyleSheet_sceneUserAgentStylesheet() { ! StyleManager sm = StyleManager.getInstance(); ! sm.setDefaultUserAgentStylesheet("/com/sun/javafx/css/ua0.css"); Rectangle rect = new Rectangle(){{ getStyleClass().add("rect"); }}; Scene scene = new Scene(new Group(rect)); ! scene.setUserAgentStylesheet("/com/sun/javafx/css/ua1.css"); StyleMap matchingStyles = sm.findMatchingStyles(rect, null, null); Map<String,List<CascadingStyle>> styleMap = matchingStyles.getCascadingStyles(); scene.getRoot().applyCss(); --- 693,708 ---- } @Test public void testFindMatchingStyles_defaultStyleSheet_sceneUserAgentStylesheet() { ! StyleManagerShim sm = StyleManagerShim.getInstance(); ! sm.setDefaultUserAgentStylesheet("/test/com/sun/javafx/css/ua0.css"); Rectangle rect = new Rectangle(){{ getStyleClass().add("rect"); }}; Scene scene = new Scene(new Group(rect)); ! scene.setUserAgentStylesheet("/test/com/sun/javafx/css/ua1.css"); StyleMap matchingStyles = sm.findMatchingStyles(rect, null, null); Map<String,List<CascadingStyle>> styleMap = matchingStyles.getCascadingStyles(); scene.getRoot().applyCss();
*** 727,743 **** } @Test public void testFindMatchingStyles_defaultStyleSheet_sceneUserAgentStylesheet_sceneAuthorStylesheet() { ! StyleManager sm = StyleManager.getInstance(); ! sm.setDefaultUserAgentStylesheet("/com/sun/javafx/css/ua0.css"); Rectangle rect = new Rectangle(){{ getStyleClass().add("rect"); }}; Scene scene = new Scene(new Group(rect)); ! scene.setUserAgentStylesheet("/com/sun/javafx/css/ua1.css"); ! scene.getStylesheets().add("/com/sun/javafx/css/ua2.css"); StyleMap matchingStyles = sm.findMatchingStyles(rect, null, null); Map<String,List<CascadingStyle>> styleMap = matchingStyles.getCascadingStyles(); scene.getRoot().applyCss(); --- 719,735 ---- } @Test public void testFindMatchingStyles_defaultStyleSheet_sceneUserAgentStylesheet_sceneAuthorStylesheet() { ! StyleManagerShim sm = StyleManagerShim.getInstance(); ! sm.setDefaultUserAgentStylesheet("/test/com/sun/javafx/css/ua0.css"); Rectangle rect = new Rectangle(){{ getStyleClass().add("rect"); }}; Scene scene = new Scene(new Group(rect)); ! scene.setUserAgentStylesheet("/test/com/sun/javafx/css/ua1.css"); ! scene.getStylesheets().add("/test/com/sun/javafx/css/ua2.css"); StyleMap matchingStyles = sm.findMatchingStyles(rect, null, null); Map<String,List<CascadingStyle>> styleMap = matchingStyles.getCascadingStyles(); scene.getRoot().applyCss();
*** 763,779 **** } @Test public void testFindMatchingStyles_defaultStyleSheet_subSceneUserAgentStylesheet() { ! StyleManager sm = StyleManager.getInstance(); ! sm.setDefaultUserAgentStylesheet("/com/sun/javafx/css/ua0.css"); Rectangle rect = new Rectangle(){{ getStyleClass().add("rect"); }}; Pane subSceneRoot = new Pane(rect); SubScene subScene = new SubScene(subSceneRoot, 100, 100); ! subScene.setUserAgentStylesheet("/com/sun/javafx/css/ua1.css"); Scene scene = new Scene(new Group(subScene)); StyleMap matchingStyles = sm.findMatchingStyles(rect, subScene, null); Map<String,List<CascadingStyle>> styleMap = matchingStyles.getCascadingStyles(); --- 755,771 ---- } @Test public void testFindMatchingStyles_defaultStyleSheet_subSceneUserAgentStylesheet() { ! StyleManagerShim sm = StyleManagerShim.getInstance(); ! sm.setDefaultUserAgentStylesheet("/test/com/sun/javafx/css/ua0.css"); Rectangle rect = new Rectangle(){{ getStyleClass().add("rect"); }}; Pane subSceneRoot = new Pane(rect); SubScene subScene = new SubScene(subSceneRoot, 100, 100); ! subScene.setUserAgentStylesheet("/test/com/sun/javafx/css/ua1.css"); Scene scene = new Scene(new Group(subScene)); StyleMap matchingStyles = sm.findMatchingStyles(rect, subScene, null); Map<String,List<CascadingStyle>> styleMap = matchingStyles.getCascadingStyles();
*** 791,809 **** } @Test public void testFindMatchingStyles_defaultStyleSheet_subSceneUserAgentStylesheet_parentStylesheet() { ! StyleManager sm = StyleManager.getInstance(); ! sm.setDefaultUserAgentStylesheet("/com/sun/javafx/css/ua0.css"); Rectangle rect = new Rectangle(){{ getStyleClass().add("rect"); }}; Group group = new Group(rect); ! group.getStylesheets().add("/com/sun/javafx/css/ua2.css"); Pane subSceneRoot = new Pane(group); SubScene subScene = new SubScene(subSceneRoot, 100, 100); ! subScene.setUserAgentStylesheet("/com/sun/javafx/css/ua1.css"); Scene scene = new Scene(new Group(subScene)); StyleMap matchingStyles = sm.findMatchingStyles(rect, subScene, null); Map<String,List<CascadingStyle>> styleMap = matchingStyles.getCascadingStyles(); --- 783,801 ---- } @Test public void testFindMatchingStyles_defaultStyleSheet_subSceneUserAgentStylesheet_parentStylesheet() { ! StyleManagerShim sm = StyleManagerShim.getInstance(); ! sm.setDefaultUserAgentStylesheet("/test/com/sun/javafx/css/ua0.css"); Rectangle rect = new Rectangle(){{ getStyleClass().add("rect"); }}; Group group = new Group(rect); ! group.getStylesheets().add("/test/com/sun/javafx/css/ua2.css"); Pane subSceneRoot = new Pane(group); SubScene subScene = new SubScene(subSceneRoot, 100, 100); ! subScene.setUserAgentStylesheet("/test/com/sun/javafx/css/ua1.css"); Scene scene = new Scene(new Group(subScene)); StyleMap matchingStyles = sm.findMatchingStyles(rect, subScene, null); Map<String,List<CascadingStyle>> styleMap = matchingStyles.getCascadingStyles();
*** 836,847 **** Group group = new Group(rect); Pane subSceneRoot = new Pane(group); SubScene subScene = new SubScene(subSceneRoot, 100, 100); Scene scene = new Scene(new Group(subScene)); ! StyleManager sm = StyleManager.getInstance(); ! sm.setDefaultUserAgentStylesheet("/com/sun/javafx/css/ua0.css"); scene.getRoot().applyCss(); StyleMap matchingStyles = sm.findMatchingStyles(rect, subScene, null); Map<String,List<CascadingStyle>> styleMap = matchingStyles.getCascadingStyles(); --- 828,839 ---- Group group = new Group(rect); Pane subSceneRoot = new Pane(group); SubScene subScene = new SubScene(subSceneRoot, 100, 100); Scene scene = new Scene(new Group(subScene)); ! StyleManagerShim sm = StyleManagerShim.getInstance(); ! sm.setDefaultUserAgentStylesheet("/test/com/sun/javafx/css/ua0.css"); scene.getRoot().applyCss(); StyleMap matchingStyles = sm.findMatchingStyles(rect, subScene, null); Map<String,List<CascadingStyle>> styleMap = matchingStyles.getCascadingStyles();
*** 854,864 **** assertEquals(1, styles.size()); Object obj = styles.get(0).getParsedValue().convert(null); assertEquals(Color.RED, obj); ! sm.setDefaultUserAgentStylesheet("/com/sun/javafx/css/ua1.css"); matchingStyles = sm.findMatchingStyles(rect, subScene, null); styleMap = matchingStyles.getCascadingStyles(); // ua1.css has stroke --- 846,856 ---- assertEquals(1, styles.size()); Object obj = styles.get(0).getParsedValue().convert(null); assertEquals(Color.RED, obj); ! sm.setDefaultUserAgentStylesheet("/test/com/sun/javafx/css/ua1.css"); matchingStyles = sm.findMatchingStyles(rect, subScene, null); styleMap = matchingStyles.getCascadingStyles(); // ua1.css has stroke
*** 876,938 **** public void testGetCacheContainer() { Rectangle rectangle = new Rectangle(); SubScene subScene = new SubScene(null, 0, 0); ! StyleManager sm = StyleManager.getInstance(); // no scene, should return null ! StyleManager.CacheContainer container = sm.getCacheContainer(rectangle, subScene); ! ! assertNull(container); // has scene, should return non-null subScene.setRoot(new Group()); Scene scene = new Scene(new Group(rectangle,subScene)); - container = sm.getCacheContainer(rectangle, subScene); ! assertNotNull(container); } @Test public void testGetCacheContainer_styleable() { Rectangle rectangle = new Rectangle(); ! StyleManager sm = StyleManager.getInstance(); // no scene, should return null ! StyleManager.CacheContainer container = sm.getCacheContainer(rectangle, null); ! ! assertNull(container); // has scene, should return non-null Scene scene = new Scene(new Group(rectangle)); - container = sm.getCacheContainer(rectangle, null); ! assertNotNull(container); } @Test public void testGetCacheContainer_subScene() { SubScene subScene = new SubScene(null, 0, 0); ! StyleManager sm = StyleManager.getInstance(); // no scene, should return null ! StyleManager.CacheContainer container = sm.getCacheContainer(null, subScene); ! ! assertNull(container); // has scene, should return non-null subScene.setRoot(new Group()); Scene scene = new Scene(new Group(subScene)); - container = sm.getCacheContainer(null, subScene); ! assertNotNull(container); } @Test public void testRT_37025() { --- 868,921 ---- public void testGetCacheContainer() { Rectangle rectangle = new Rectangle(); SubScene subScene = new SubScene(null, 0, 0); ! StyleManagerShim sm = StyleManagerShim.getInstance(); // no scene, should return null ! assertTrue(sm.isCacheContainerNull(rectangle, subScene)); // has scene, should return non-null subScene.setRoot(new Group()); Scene scene = new Scene(new Group(rectangle,subScene)); ! assertFalse(sm.isCacheContainerNull(rectangle, subScene)); } @Test public void testGetCacheContainer_styleable() { Rectangle rectangle = new Rectangle(); ! StyleManagerShim sm = StyleManagerShim.getInstance(); // no scene, should return null ! assertTrue(sm.isCacheContainerNull(rectangle, null)); // has scene, should return non-null Scene scene = new Scene(new Group(rectangle)); ! assertFalse(sm.isCacheContainerNull(rectangle, null)); } @Test public void testGetCacheContainer_subScene() { SubScene subScene = new SubScene(null, 0, 0); ! StyleManagerShim sm = StyleManagerShim.getInstance(); // no scene, should return null ! assertTrue(sm.isCacheContainerNull(null, subScene)); // has scene, should return non-null subScene.setRoot(new Group()); Scene scene = new Scene(new Group(subScene)); ! assertFalse(sm.isCacheContainerNull(null, subScene)); } @Test public void testRT_37025() {
*** 940,950 **** // // The issue in RT-37025 was that the stylesheet container wasn't getting removed even // though the parent had been forgotten. The StyleManager#forget(Parent) method didn't // look to see if _any_ stylesheet container had the parent as a reference. // ! final StyleManager sm = StyleManager.getInstance(); // This test needs a bit more complexity to the scene-graph Group group = null; Pane pane = new Pane( new Group( --- 923,933 ---- // // The issue in RT-37025 was that the stylesheet container wasn't getting removed even // though the parent had been forgotten. The StyleManager#forget(Parent) method didn't // look to see if _any_ stylesheet container had the parent as a reference. // ! final StyleManagerShim sm = StyleManagerShim.getInstance(); // This test needs a bit more complexity to the scene-graph Group group = null; Pane pane = new Pane( new Group(
*** 953,1053 **** new Group(new Pane(){{ getStyleClass().add("rect"); }}), group = new Group(new Pane(){{ getStyleClass().add("rect"); }}) ) ) ); ! pane.getStylesheets().add("/com/sun/javafx/css/ua0.css"); ! group.getStylesheets().add("/com/sun/javafx/css/ua1.css"); Group root = new Group(pane); Scene scene = new Scene(root); root.applyCss(); ! assertTrue(sm.stylesheetContainerMap.containsKey("/com/sun/javafx/css/ua0.css")); ! StyleManager.StylesheetContainer container = sm.stylesheetContainerMap.get("/com/sun/javafx/css/ua0.css"); ! assertEquals(7, container.parentUsers.list.size()); ! ! assertTrue(sm.stylesheetContainerMap.containsKey("/com/sun/javafx/css/ua1.css")); ! container = sm.stylesheetContainerMap.get("/com/sun/javafx/css/ua1.css"); ! assertEquals(2, container.parentUsers.list.size()); ((Pane)group.getParent()).getChildren().remove(group); ! assertFalse(sm.stylesheetContainerMap.containsKey("/com/sun/javafx/css/ua1.css")); ! assertTrue(sm.stylesheetContainerMap.containsKey("/com/sun/javafx/css/ua0.css")); ! container = sm.stylesheetContainerMap.get("/com/sun/javafx/css/ua0.css"); ! assertEquals(5, container.parentUsers.list.size()); scene.setRoot(new Group()); ! assertFalse(sm.stylesheetContainerMap.containsKey("/com/sun/javafx/css/ua0.css")); assertFalse(StyleManager.cacheContainerMap.containsKey(root)); assertTrue(StyleManager.cacheContainerMap.containsKey(scene.getRoot())); } @Test public void test_setUserAgentStylesheets() { List<String> uaStylesheets = new ArrayList<>(); ! Collections.addAll(uaStylesheets, "/com/sun/javafx/css/ua0.css", "/com/sun/javafx/css/ua1.css"); ! final StyleManager sm = StyleManager.getInstance(); sm.setUserAgentStylesheets(uaStylesheets); ! assertEquals(2, sm.platformUserAgentStylesheetContainers.size()); ! assertEquals("/com/sun/javafx/css/ua0.css", sm.platformUserAgentStylesheetContainers.get(0).fname); ! assertEquals("/com/sun/javafx/css/ua1.css", sm.platformUserAgentStylesheetContainers.get(1).fname); } @Test public void test_setUserAgentStylesheets_overwrites_existing() { List<String> uaStylesheets = new ArrayList<>(); ! Collections.addAll(uaStylesheets, "/com/sun/javafx/css/ua0.css"); ! final StyleManager sm = StyleManager.getInstance(); // 1 - overwrite default user agent stylesheet ! sm.platformUserAgentStylesheetContainers.clear();; ! sm.setDefaultUserAgentStylesheet("/com/sun/javafx/css/ua1.css"); ! assertEquals(1, sm.platformUserAgentStylesheetContainers.size()); ! assertEquals("/com/sun/javafx/css/ua1.css", sm.platformUserAgentStylesheetContainers.get(0).fname); sm.setUserAgentStylesheets(uaStylesheets); ! assertEquals(1, sm.platformUserAgentStylesheetContainers.size()); ! assertEquals("/com/sun/javafx/css/ua0.css", sm.platformUserAgentStylesheetContainers.get(0).fname); // 2 - overwrite other user-agent stylesheets ! sm.platformUserAgentStylesheetContainers.clear();; ! sm.addUserAgentStylesheet("/com/sun/javafx/css/ua1.css"); ! assertEquals(1, sm.platformUserAgentStylesheetContainers.size()); sm.setUserAgentStylesheets(uaStylesheets); ! assertEquals(1, sm.platformUserAgentStylesheetContainers.size()); ! assertEquals("/com/sun/javafx/css/ua0.css", sm.platformUserAgentStylesheetContainers.get(0).fname); } @Test public void testRT_38687_with_Scene() { Rectangle rect = new Rectangle(50,50) {{ getStyleClass().add("rect"); }}; Scene scene = new Scene(new Group(rect)); ! scene.setUserAgentStylesheet("com/sun/javafx/css/ua0.css"); scene.getRoot().applyCss(); StyleableProperty<Paint> fillProperty = (StyleableProperty<Paint>)rect.fillProperty(); assertEquals(StyleOrigin.USER_AGENT, fillProperty.getStyleOrigin()); ! scene.setUserAgentStylesheet("com/sun/javafx/css/ua1.css"); scene.getRoot().applyCss(); assertEquals(null, fillProperty.getStyleOrigin()); rect.setFill(Color.GREEN); ! scene.setUserAgentStylesheet("com/sun/javafx/css/rt38637.css"); scene.getRoot().applyCss(); assertEquals(StyleOrigin.USER, fillProperty.getStyleOrigin()); } --- 936,1036 ---- new Group(new Pane(){{ getStyleClass().add("rect"); }}), group = new Group(new Pane(){{ getStyleClass().add("rect"); }}) ) ) ); ! pane.getStylesheets().add("/test/com/sun/javafx/css/ua0.css"); ! group.getStylesheets().add("/test/com/sun/javafx/css/ua1.css"); Group root = new Group(pane); Scene scene = new Scene(root); root.applyCss(); ! assertTrue(sm.stylesheetContainerMap_containsKey("/test/com/sun/javafx/css/ua0.css")); ! StyleManagerShim.StylesheetContainer container = sm.stylesheetContainerMap_get("/test/com/sun/javafx/css/ua0.css"); ! assertEquals(7, container.parentUsers_list_size()); ! ! assertTrue(sm.stylesheetContainerMap_containsKey("/test/com/sun/javafx/css/ua1.css")); ! container = sm.stylesheetContainerMap_get("/test/com/sun/javafx/css/ua1.css"); ! assertEquals(2, container.parentUsers_list_size()); ((Pane)group.getParent()).getChildren().remove(group); ! assertFalse(sm.stylesheetContainerMap_containsKey("/test/com/sun/javafx/css/ua1.css")); ! assertTrue(sm.stylesheetContainerMap_containsKey("/test/com/sun/javafx/css/ua0.css")); ! container = sm.stylesheetContainerMap_get("/test/com/sun/javafx/css/ua0.css"); ! assertEquals(5, container.parentUsers_list_size()); scene.setRoot(new Group()); ! assertFalse(sm.stylesheetContainerMap_containsKey("/test/com/sun/javafx/css/ua0.css")); assertFalse(StyleManager.cacheContainerMap.containsKey(root)); assertTrue(StyleManager.cacheContainerMap.containsKey(scene.getRoot())); } @Test public void test_setUserAgentStylesheets() { List<String> uaStylesheets = new ArrayList<>(); ! Collections.addAll(uaStylesheets, "/test/com/sun/javafx/css/ua0.css", "/test/com/sun/javafx/css/ua1.css"); ! final StyleManagerShim sm = StyleManagerShim.getInstance(); sm.setUserAgentStylesheets(uaStylesheets); ! assertEquals(2, sm.platformUserAgentStylesheetContainers_size()); ! assertEquals("/test/com/sun/javafx/css/ua0.css", sm.platformUserAgentStylesheetContainers_getfname(0)); ! assertEquals("/test/com/sun/javafx/css/ua1.css", sm.platformUserAgentStylesheetContainers_getfname(1)); } @Test public void test_setUserAgentStylesheets_overwrites_existing() { List<String> uaStylesheets = new ArrayList<>(); ! Collections.addAll(uaStylesheets, "/test/com/sun/javafx/css/ua0.css"); ! final StyleManagerShim sm = StyleManagerShim.getInstance(); // 1 - overwrite default user agent stylesheet ! sm.platformUserAgentStylesheetContainers_clear();; ! sm.setDefaultUserAgentStylesheet("/test/com/sun/javafx/css/ua1.css"); ! assertEquals(1, sm.platformUserAgentStylesheetContainers_size()); ! assertEquals("/test/com/sun/javafx/css/ua1.css", sm.platformUserAgentStylesheetContainers_getfname(0)); sm.setUserAgentStylesheets(uaStylesheets); ! assertEquals(1, sm.platformUserAgentStylesheetContainers_size()); ! assertEquals("/test/com/sun/javafx/css/ua0.css", sm.platformUserAgentStylesheetContainers_getfname(0)); // 2 - overwrite other user-agent stylesheets ! sm.platformUserAgentStylesheetContainers_clear();; ! sm.addUserAgentStylesheet("/test/com/sun/javafx/css/ua1.css"); ! assertEquals(1, sm.platformUserAgentStylesheetContainers_size()); sm.setUserAgentStylesheets(uaStylesheets); ! assertEquals(1, sm.platformUserAgentStylesheetContainers_size()); ! assertEquals("/test/com/sun/javafx/css/ua0.css", sm.platformUserAgentStylesheetContainers_getfname(0)); } @Test public void testRT_38687_with_Scene() { Rectangle rect = new Rectangle(50,50) {{ getStyleClass().add("rect"); }}; Scene scene = new Scene(new Group(rect)); ! scene.setUserAgentStylesheet("test/com/sun/javafx/css/ua0.css"); scene.getRoot().applyCss(); StyleableProperty<Paint> fillProperty = (StyleableProperty<Paint>)rect.fillProperty(); assertEquals(StyleOrigin.USER_AGENT, fillProperty.getStyleOrigin()); ! scene.setUserAgentStylesheet("test/com/sun/javafx/css/ua1.css"); scene.getRoot().applyCss(); assertEquals(null, fillProperty.getStyleOrigin()); rect.setFill(Color.GREEN); ! scene.setUserAgentStylesheet("test/com/sun/javafx/css/rt38637.css"); scene.getRoot().applyCss(); assertEquals(StyleOrigin.USER, fillProperty.getStyleOrigin()); }
*** 1055,1080 **** public void testRT_38687_with_SubScene() { Rectangle rect = new Rectangle(50,50) {{ getStyleClass().add("rect"); }}; Group group = new Group(rect); SubScene subScene = new SubScene(group, 100, 100); ! subScene.setUserAgentStylesheet("com/sun/javafx/css/ua0.css"); Scene scene = new Scene(new Group(subScene)); scene.getRoot().applyCss(); StyleableProperty<Paint> fillProperty = (StyleableProperty<Paint>)rect.fillProperty(); assertEquals(StyleOrigin.USER_AGENT, fillProperty.getStyleOrigin()); ! subScene.setUserAgentStylesheet("com/sun/javafx/css/ua1.css"); scene.getRoot().applyCss(); assertEquals(null, fillProperty.getStyleOrigin()); rect.setFill(Color.GREEN); ! subScene.setUserAgentStylesheet("com/sun/javafx/css/rt38637.css"); scene.getRoot().applyCss(); assertEquals(StyleOrigin.USER, fillProperty.getStyleOrigin()); } --- 1038,1063 ---- public void testRT_38687_with_SubScene() { Rectangle rect = new Rectangle(50,50) {{ getStyleClass().add("rect"); }}; Group group = new Group(rect); SubScene subScene = new SubScene(group, 100, 100); ! subScene.setUserAgentStylesheet("test/com/sun/javafx/css/ua0.css"); Scene scene = new Scene(new Group(subScene)); scene.getRoot().applyCss(); StyleableProperty<Paint> fillProperty = (StyleableProperty<Paint>)rect.fillProperty(); assertEquals(StyleOrigin.USER_AGENT, fillProperty.getStyleOrigin()); ! subScene.setUserAgentStylesheet("test/com/sun/javafx/css/ua1.css"); scene.getRoot().applyCss(); assertEquals(null, fillProperty.getStyleOrigin()); rect.setFill(Color.GREEN); ! subScene.setUserAgentStylesheet("test/com/sun/javafx/css/rt38637.css"); scene.getRoot().applyCss(); assertEquals(StyleOrigin.USER, fillProperty.getStyleOrigin()); }
*** 1086,1096 **** for (int i = 0; i < NUM_THREADS; i++) { Thread thr = new Thread(() -> { try { for (int j = 0; j < 1000; j++) { Scene scene = new Scene(new Group()); ! scene.setUserAgentStylesheet("com/sun/javafx/css/ua0.css"); scene.getRoot().applyCss(); } } catch (RuntimeException ex) { err.set(true); throw ex; --- 1069,1079 ---- for (int i = 0; i < NUM_THREADS; i++) { Thread thr = new Thread(() -> { try { for (int j = 0; j < 1000; j++) { Scene scene = new Scene(new Group()); ! scene.setUserAgentStylesheet("test/com/sun/javafx/css/ua0.css"); scene.getRoot().applyCss(); } } catch (RuntimeException ex) { err.set(true); throw ex;