modules/graphics/src/test/java/test/javafx/scene/Parent_structure_sync_Test.java

Print this page

        

@@ -31,10 +31,11 @@
 import java.util.List;
 import javafx.scene.Group;
 import javafx.scene.Parent;
 import javafx.scene.ParentShim;
 import javafx.scene.Scene;
+import javafx.scene.layout.BorderPane;
 import javafx.scene.shape.Rectangle;
 import javafx.stage.Stage;
 import org.junit.Before;
 import org.junit.Test;
 

@@ -336,6 +337,37 @@
         parent.setVisible(false);
         assertFalse(ParentShim.test_getRemoved(parent2).isEmpty());
         sync();
         assertTrue(ParentShim.test_getRemoved(parent2).isEmpty());
     }
+
+    @Test
+    public void validateParentsRemovedList2() {
+        BorderPane borderPane = new BorderPane(r1);
+        Group parent2 = new Group();
+        ParentShim.getChildren(parent2).addAll(r2);
+        ParentShim.getChildren(parent).add(parent2);
+        sync();
+        ParentShim.getChildren(parent2).remove(r2);
+        borderPane.setCenter(null);
+        assertNotNull(ParentShim.test_getRemoved(parent2));
+        assertFalse(ParentShim.test_getRemoved(parent2).isEmpty());
+        assertNotNull(ParentShim.test_getRemoved(borderPane));
+        assertTrue(ParentShim.test_getRemoved(borderPane).isEmpty());
+        sync();
+        assertTrue(ParentShim.test_getRemoved(parent2).isEmpty());
+        assertTrue(ParentShim.test_getRemoved(borderPane).isEmpty());        
+    }
+
+    @Test
+    public void validateParentsRemovedList3() {
+        BorderPane borderPane = new BorderPane(r1);
+        parent.getScene().setRoot(borderPane);
+        sync();
+        borderPane.getScene().setRoot(parent);
+        borderPane.setCenter(null);
+        assertNotNull(ParentShim.test_getRemoved(borderPane));
+        assertTrue(ParentShim.test_getRemoved(borderPane).isEmpty());
+        sync();
+        assertTrue(ParentShim.test_getRemoved(borderPane).isEmpty());
+    }
 }