--- old/modules/graphics/src/test/java/com/sun/javafx/sg/prism/GridDirtyRegionTest.java 2015-09-11 21:24:29.129286937 -0400 +++ /dev/null 2015-09-11 11:06:08.592686920 -0400 @@ -1,238 +0,0 @@ -/* - * Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * 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.sg.prism; - -import java.util.ArrayList; -import java.util.List; -import com.sun.javafx.geom.BaseBounds; -import com.sun.javafx.geom.RectBounds; -import com.sun.javafx.geom.transform.BaseTransform; -import com.sun.scenario.effect.DropShadow; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; - -/** - * A series of tests where we are checking for the dirty region on a grid - * of nodes. This is a parameterized test (based on its base class). - * Each time the test is run, it will be given a way to create nodes, - * and a way to make them dirty. Each test then only has to invoke the - * creator to make nodes and the polluter to make them dirty, and then - * check that the right methods were called and the right dirty regions - * computed. There is some magic here -- every node created by the creator - * must implement TestNGNode; the base class must set the "root" in the - * parent class. - */ -@RunWith(Parameterized.class) -public class GridDirtyRegionTest extends DirtyRegionTestBase { - /** - * Specified to avoid magic numbers. There are several places where we - * translate the root in order to make it dirty. - */ - private static final float TRANSLATE_DELTA = 50; - - /** - * Creates a new instance of the GridDirtyRegionTest. Since this is a - * parameterized test, we are passed the node creator and polluter. - */ - public GridDirtyRegionTest(Creator creator, Polluter polluter) { - super(creator, polluter); - } - - /** - * Constructs a non-overlapping grid of nodes. Each node is a direct child - * of the root node. They may end up overlapping when they become dirty, - * but they don't start out that way! Each node is placed where it belongs - * in the grid by translating them into place. - */ - @Before public void setUp() { - // create the grid - NGNode[] content = new NGNode[9]; - for (int row=0; row<3; row++) { - for (int col=0; col<3; col++) { - NGNode node = creator.create(); - BaseTransform tx = BaseTransform.IDENTITY_TRANSFORM; - tx = tx.deriveWithTranslation((col * 110), (row * 110)); - transform(node, tx); - content[(row * 3) + col] = node; - } - } - root = createGroup(content); - - // The grid is created & populated. We'll now go through and manually - // clean them all up so that when we perform the test, it is from the - // starting point of a completely cleaned tree - root.render(TestGraphics.TEST_GRAPHICS); - } - - @Test public void sanityCheck() { - NGNode node = root.getChildren().get(0); - assertEquals(new RectBounds(0, 0, 100, 100), node.getContentBounds(new RectBounds(), BaseTransform.IDENTITY_TRANSFORM)); - assertEquals(new RectBounds(0, 0, 100, 100), node.getCompleteBounds(new RectBounds(), BaseTransform.IDENTITY_TRANSFORM)); - - node = root.getChildren().get(1); - assertEquals(new RectBounds(0, 0, 100, 100), node.getContentBounds(new RectBounds(), BaseTransform.IDENTITY_TRANSFORM)); - assertEquals(new RectBounds(110, 0, 210, 100), node.getCompleteBounds(new RectBounds(), BaseTransform.IDENTITY_TRANSFORM)); - - node = root.getChildren().get(3); - assertEquals(new RectBounds(0, 0, 100, 100), node.getContentBounds(new RectBounds(), BaseTransform.IDENTITY_TRANSFORM)); - assertEquals(new RectBounds(0, 110, 100, 210), node.getCompleteBounds(new RectBounds(), BaseTransform.IDENTITY_TRANSFORM)); - } - - @Test public void cleanNodesShouldNotContributeToDirtyRegion() { - // By default the scene should be clean - assertDirtyRegionEquals(root, new RectBounds()); - } - - @Test public void cleanChildNodesOnADirtyParentShouldNotContributeToDirtyRegion() { - // Now if I translate the root, none of the child nodes - // should contribute to the dirty region - translate(root, TRANSLATE_DELTA, TRANSLATE_DELTA); - for (NGNode child : root.getChildren()) { - assertDirtyRegionEquals(child, new RectBounds()); - } - } - - @Test public void whenOnlyTheRootIsDirtyOnlyTheRootShouldBeAskedToAccumulateDirtyRegions() { - translate(root, TRANSLATE_DELTA, TRANSLATE_DELTA); - assertOnlyTheseNodesAreAskedToAccumulateDirtyRegions(root); - } - - @Test public void cleanChildNodesOnACleanParentShouldNotContributeToDirtyRegion() { - // If I make one of the children dirty, then the child should contribute - // to the dirty region, but none of the other nodes should. This test just - // checks this second part -- that none of the other child nodes contribute. - NGNode middleChild = root.getChildren().get(root.getChildren().size()/2); - polluter.pollute(middleChild); - for (NGNode child : root.getChildren()) { - if (child != middleChild) { // skip the dirty node - assertDirtyRegionEquals(child, new RectBounds()); - } - } - } - - @Test public void whenOnlyASingleChildIsDirtyThenParentAndAllChildrenAreAskedToAccumulateDirtyRegions() { - NGNode middleChild = root.getChildren().get(root.getChildren().size()/2); - polluter.pollute(middleChild); - List nodes = new ArrayList<>(root.getChildren()); - nodes.add(root); - NGNode[] arr = new NGNode[nodes.size()]; - for (int i=0; i nodes = new ArrayList<>(root.getChildren()); + nodes.add(root); + NGNode[] arr = new NGNode[nodes.size()]; + for (int i=0; i