modules/graphics/src/test/java/test/com/sun/javafx/sg/prism/CacheFilterTest.java

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


   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 package com.sun.javafx.sg.prism;
  27 
  28 import com.sun.javafx.geom.RectBounds;
  29 import com.sun.javafx.geom.transform.BaseTransform;
  30 import com.sun.javafx.geom.transform.GeneralTransform3D;
  31 import com.sun.javafx.geom.transform.Translate2D;




  32 import javafx.scene.CacheHint;
  33 import org.junit.Test;
  34 
  35 import static org.junit.Assert.*;
  36 
  37 /**
  38  */
  39 public class CacheFilterTest {
  40 
  41     /******************************************************************
  42      *                                                                *
  43      *  Tests to make sure that the different cache hints get         *
  44      *  turned into the right values for rotateHint and scaleHint.    *
  45      *                                                                *
  46      *****************************************************************/
  47 
  48     @Test public void settingCacheHintToDefaultInConstructor() {
  49         NGRectangle r = new NGRectangle();
  50         CacheFilter cf = new CacheFilter(r, CacheHint.DEFAULT);
  51         assertFalse(cf.isRotateHint());
  52         assertFalse(cf.isScaleHint());
  53     }
  54 
  55     @Test public void settingCacheHintToDefault() {
  56         NGRectangle r = new NGRectangle();
  57         CacheFilter cf = new CacheFilter(r, CacheHint.SPEED);
  58         cf.setHint(CacheHint.DEFAULT);
  59         assertFalse(cf.isRotateHint());
  60         assertFalse(cf.isScaleHint());
  61     }
  62 
  63     @Test public void settingCacheHintToSpeedInConstructor() {
  64         NGRectangle r = new NGRectangle();
  65         CacheFilter cf = new CacheFilter(r, CacheHint.SPEED);
  66         assertTrue(cf.isRotateHint());
  67         assertTrue(cf.isScaleHint());
  68     }
  69 
  70     @Test public void settingCacheHintToSpeed() {
  71         NGRectangle r = new NGRectangle();
  72         CacheFilter cf = new CacheFilter(r, CacheHint.DEFAULT);
  73         cf.setHint(CacheHint.SPEED);
  74         assertTrue(cf.isRotateHint());
  75         assertTrue(cf.isScaleHint());
  76     }
  77 
  78     @Test public void settingCacheHintToQualityInConstructor() {
  79         NGRectangle r = new NGRectangle();
  80         CacheFilter cf = new CacheFilter(r, CacheHint.QUALITY);
  81         assertFalse(cf.isRotateHint());
  82         assertFalse(cf.isScaleHint());
  83     }
  84 
  85     @Test public void settingCacheHintToQuality() {
  86         NGRectangle r = new NGRectangle();
  87         CacheFilter cf = new CacheFilter(r, CacheHint.SPEED);
  88         cf.setHint(CacheHint.QUALITY);
  89         assertFalse(cf.isRotateHint());
  90         assertFalse(cf.isScaleHint());
  91     }
  92 
  93     @Test public void settingCacheHintToRotateInConstructor() {
  94         NGRectangle r = new NGRectangle();
  95         CacheFilter cf = new CacheFilter(r, CacheHint.ROTATE);
  96         assertTrue(cf.isRotateHint());
  97         assertFalse(cf.isScaleHint());
  98     }
  99 
 100     @Test public void settingCacheHintToRotate() {
 101         NGRectangle r = new NGRectangle();
 102         CacheFilter cf = new CacheFilter(r, CacheHint.DEFAULT);
 103         cf.setHint(CacheHint.ROTATE);
 104         assertTrue(cf.isRotateHint());
 105         assertFalse(cf.isScaleHint());
 106     }
 107 
 108     @Test public void settingCacheHintToScaleInConstructor() {
 109         NGRectangle r = new NGRectangle();
 110         CacheFilter cf = new CacheFilter(r, CacheHint.SCALE);
 111         assertFalse(cf.isRotateHint());
 112         assertTrue(cf.isScaleHint());
 113     }
 114 
 115     @Test public void settingCacheHintToScale() {
 116         NGRectangle r = new NGRectangle();
 117         CacheFilter cf = new CacheFilter(r, CacheHint.DEFAULT);
 118         cf.setHint(CacheHint.SCALE);
 119         assertFalse(cf.isRotateHint());
 120         assertTrue(cf.isScaleHint());
 121     }
 122 
 123     @Test public void settingCacheHintToScaleAndRotateInConstructor() {
 124         NGRectangle r = new NGRectangle();
 125         CacheFilter cf = new CacheFilter(r, CacheHint.SCALE_AND_ROTATE);
 126         assertTrue(cf.isRotateHint());
 127         assertTrue(cf.isScaleHint());
 128     }
 129 
 130     @Test public void settingCacheHintToScaleAndRotate() {
 131         NGRectangle r = new NGRectangle();
 132         CacheFilter cf = new CacheFilter(r, CacheHint.DEFAULT);
 133         cf.setHint(CacheHint.SCALE_AND_ROTATE);
 134         assertTrue(cf.isRotateHint());
 135         assertTrue(cf.isScaleHint());
 136     }
 137     
 138     @Test public void cacheFilterReturnsCorrectDirtyBounds() {
 139         
 140         NGRectangle r = new NGRectangle();
 141         r.updateRectangle(0.3f, 0.9f, 100.3f, 119.9f, 0, 0);
 142         r.setTransformMatrix(BaseTransform.IDENTITY_TRANSFORM);
 143         r.setTransformedBounds(new RectBounds(0.3f, 0.9f, 100.6f, 120.8f), false);
 144         CacheFilter cf = new CacheFilter(r, CacheHint.DEFAULT);
 145         RectBounds result = new RectBounds();
 146         cf.computeDirtyBounds(result, BaseTransform.IDENTITY_TRANSFORM, new GeneralTransform3D());
 147         assertEquals(new RectBounds(0, 0, 101, 121), result);
 148         
 149         r.clearDirty();
 150         
 151         final Translate2D translation = new Translate2D(10, 10);
 152         r.setTransformMatrix(translation);
 153         r.setTransformedBounds(new RectBounds(10.3f, 10, 110.6f, 130.8f), false);
 154         cf.computeDirtyBounds(result, BaseTransform.IDENTITY_TRANSFORM, new GeneralTransform3D());
 155         assertEquals(new RectBounds(0, 0, 111, 131), result);
 156     }
 157 }


   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 package test.com.sun.javafx.sg.prism;
  27 
  28 import com.sun.javafx.geom.RectBounds;
  29 import com.sun.javafx.geom.transform.BaseTransform;
  30 import com.sun.javafx.geom.transform.GeneralTransform3D;
  31 import com.sun.javafx.geom.transform.Translate2D;
  32 import com.sun.javafx.sg.prism.CacheFilter;
  33 import com.sun.javafx.sg.prism.CacheFilterShim;
  34 import com.sun.javafx.sg.prism.NGNodeShim;
  35 import com.sun.javafx.sg.prism.NGRectangle;
  36 import javafx.scene.CacheHint;
  37 import org.junit.Test;
  38 
  39 import static org.junit.Assert.*;
  40 
  41 /**
  42  */
  43 public class CacheFilterTest {
  44 
  45     /******************************************************************
  46      *                                                                *
  47      *  Tests to make sure that the different cache hints get         *
  48      *  turned into the right values for rotateHint and scaleHint.    *
  49      *                                                                *
  50      *****************************************************************/
  51 
  52     @Test public void settingCacheHintToDefaultInConstructor() {
  53         NGRectangle r = new NGRectangle();
  54         CacheFilter cf = CacheFilterShim.getCacheFilter(r, CacheHint.DEFAULT);
  55         assertFalse(CacheFilterShim.isRotateHint(cf));
  56         assertFalse(CacheFilterShim.isScaleHint(cf));
  57     }
  58 
  59     @Test public void settingCacheHintToDefault() {
  60         NGRectangle r = new NGRectangle();
  61         CacheFilter cf = CacheFilterShim.getCacheFilter(r, CacheHint.SPEED);
  62         cf.setHint(CacheHint.DEFAULT);
  63         assertFalse(CacheFilterShim.isRotateHint(cf));
  64         assertFalse(CacheFilterShim.isScaleHint(cf));
  65     }
  66 
  67     @Test public void settingCacheHintToSpeedInConstructor() {
  68         NGRectangle r = new NGRectangle();
  69         CacheFilter cf = CacheFilterShim.getCacheFilter(r, CacheHint.SPEED);
  70         assertTrue(CacheFilterShim.isRotateHint(cf));
  71         assertTrue(CacheFilterShim.isScaleHint(cf));
  72     }
  73 
  74     @Test public void settingCacheHintToSpeed() {
  75         NGRectangle r = new NGRectangle();
  76         CacheFilter cf = CacheFilterShim.getCacheFilter(r, CacheHint.DEFAULT);
  77         cf.setHint(CacheHint.SPEED);
  78         assertTrue(CacheFilterShim.isRotateHint(cf));
  79         assertTrue(CacheFilterShim.isScaleHint(cf));
  80     }
  81 
  82     @Test public void settingCacheHintToQualityInConstructor() {
  83         NGRectangle r = new NGRectangle();
  84         CacheFilter cf = CacheFilterShim.getCacheFilter(r, CacheHint.QUALITY);
  85         assertFalse(CacheFilterShim.isRotateHint(cf));
  86         assertFalse(CacheFilterShim.isScaleHint(cf));
  87     }
  88 
  89     @Test public void settingCacheHintToQuality() {
  90         NGRectangle r = new NGRectangle();
  91         CacheFilter cf = CacheFilterShim.getCacheFilter(r, CacheHint.SPEED);
  92         cf.setHint(CacheHint.QUALITY);
  93         assertFalse(CacheFilterShim.isRotateHint(cf));
  94         assertFalse(CacheFilterShim.isScaleHint(cf));
  95     }
  96 
  97     @Test public void settingCacheHintToRotateInConstructor() {
  98         NGRectangle r = new NGRectangle();
  99         CacheFilter cf = CacheFilterShim.getCacheFilter(r, CacheHint.ROTATE);
 100         assertTrue(CacheFilterShim.isRotateHint(cf));
 101         assertFalse(CacheFilterShim.isScaleHint(cf));
 102     }
 103 
 104     @Test public void settingCacheHintToRotate() {
 105         NGRectangle r = new NGRectangle();
 106         CacheFilter cf = CacheFilterShim.getCacheFilter(r, CacheHint.DEFAULT);
 107         cf.setHint(CacheHint.ROTATE);
 108         assertTrue(CacheFilterShim.isRotateHint(cf));
 109         assertFalse(CacheFilterShim.isScaleHint(cf));
 110     }
 111 
 112     @Test public void settingCacheHintToScaleInConstructor() {
 113         NGRectangle r = new NGRectangle();
 114         CacheFilter cf = CacheFilterShim.getCacheFilter(r, CacheHint.SCALE);
 115         assertFalse(CacheFilterShim.isRotateHint(cf));
 116         assertTrue(CacheFilterShim.isScaleHint(cf));
 117     }
 118 
 119     @Test public void settingCacheHintToScale() {
 120         NGRectangle r = new NGRectangle();
 121         CacheFilter cf = CacheFilterShim.getCacheFilter(r, CacheHint.DEFAULT);
 122         cf.setHint(CacheHint.SCALE);
 123         assertFalse(CacheFilterShim.isRotateHint(cf));
 124         assertTrue(CacheFilterShim.isScaleHint(cf));
 125     }
 126 
 127     @Test public void settingCacheHintToScaleAndRotateInConstructor() {
 128         NGRectangle r = new NGRectangle();
 129         CacheFilter cf = CacheFilterShim.getCacheFilter(r, CacheHint.SCALE_AND_ROTATE);
 130         assertTrue(CacheFilterShim.isRotateHint(cf));
 131         assertTrue(CacheFilterShim.isScaleHint(cf));
 132     }
 133 
 134     @Test public void settingCacheHintToScaleAndRotate() {
 135         NGRectangle r = new NGRectangle();
 136         CacheFilter cf = CacheFilterShim.getCacheFilter(r, CacheHint.DEFAULT);
 137         cf.setHint(CacheHint.SCALE_AND_ROTATE);
 138         assertTrue(CacheFilterShim.isRotateHint(cf));
 139         assertTrue(CacheFilterShim.isScaleHint(cf));
 140     }
 141     
 142     @Test public void cacheFilterReturnsCorrectDirtyBounds() {
 143         
 144         NGRectangle r = new NGRectangle();
 145         r.updateRectangle(0.3f, 0.9f, 100.3f, 119.9f, 0, 0);
 146         r.setTransformMatrix(BaseTransform.IDENTITY_TRANSFORM);
 147         r.setTransformedBounds(new RectBounds(0.3f, 0.9f, 100.6f, 120.8f), false);
 148         CacheFilter cf = CacheFilterShim.getCacheFilter(r, CacheHint.DEFAULT);
 149         RectBounds result = new RectBounds();
 150         CacheFilterShim.computeDirtyBounds(cf, result, BaseTransform.IDENTITY_TRANSFORM, new GeneralTransform3D());
 151         assertEquals(new RectBounds(0, 0, 101, 121), result);
 152         
 153         NGNodeShim.clearDirty(r);
 154         
 155         final Translate2D translation = new Translate2D(10, 10);
 156         r.setTransformMatrix(translation);
 157         r.setTransformedBounds(new RectBounds(10.3f, 10, 110.6f, 130.8f), false);
 158         CacheFilterShim.computeDirtyBounds(cf, result, BaseTransform.IDENTITY_TRANSFORM, new GeneralTransform3D());
 159         assertEquals(new RectBounds(0, 0, 111, 131), result);
 160     }
 161 }