modules/graphics/src/test/java/javafx/scene/canvas/CanvasTest.java

Print this page




  26 package javafx.scene.canvas;
  27 
  28 import javafx.geometry.VPos;
  29 import javafx.scene.NodeTest;
  30 import javafx.scene.effect.BlendMode;
  31 import javafx.scene.image.ImageForTesting;
  32 import javafx.scene.paint.Color;
  33 import javafx.scene.shape.ArcType;
  34 import javafx.scene.shape.FillRule;
  35 import javafx.scene.shape.StrokeLineCap;
  36 import javafx.scene.shape.StrokeLineJoin;
  37 import javafx.scene.text.Font;
  38 import javafx.scene.text.TextAlignment;
  39 import javafx.scene.transform.Affine;
  40 import javafx.scene.transform.Rotate;
  41 import javafx.scene.transform.Transform;
  42 import org.junit.Before;
  43 import org.junit.Test;
  44 
  45 import static org.junit.Assert.assertEquals;



  46 
  47 public class CanvasTest {
  48 
  49     private Canvas canvas;
  50     private GraphicsContext gc;
  51 
  52     @Before
  53     public void setUp() {
  54         canvas = new Canvas();
  55         gc = canvas.getGraphicsContext2D();
  56     }
  57 
  58     @Test public void testPropertyPropagation_visible() throws Exception {
  59         NodeTest.testBooleanPropertyPropagation(canvas, "visible", false, true);
  60     }
  61 
  62     //maybe test doing stuff from different threads
  63     @Test public void testGetGC2() throws Exception {
  64         GraphicsContext gc2 = canvas.getGraphicsContext2D();
  65         GraphicsContext gc3 = canvas.getGraphicsContext2D();


 312     }
 313 
 314     @Test public void testGCState_TextAlign_Null() {
 315         gc.setTextAlign(TextAlignment.JUSTIFY);
 316         assertEquals(TextAlignment.JUSTIFY, gc.getTextAlign());
 317         gc.setTextAlign(null);
 318         assertEquals(TextAlignment.JUSTIFY, gc.getTextAlign());
 319     }
 320 
 321     @Test public void testGCState_Line() throws Exception {
 322         gc.setLineCap(StrokeLineCap.BUTT);
 323         gc.setLineJoin(StrokeLineJoin.MITER);
 324         gc.setLineWidth(5);
 325         gc.setMiterLimit(3);
 326         
 327         gc.save();
 328         gc.setLineCap(StrokeLineCap.ROUND);
 329         gc.setLineJoin(StrokeLineJoin.BEVEL);
 330         gc.setLineWidth(1);
 331         gc.setMiterLimit(1);


 332         assertEquals(gc.getLineCap(), StrokeLineCap.ROUND);
 333         assertEquals(gc.getLineJoin(), StrokeLineJoin.BEVEL);
 334         assertEquals(gc.getLineWidth(), 1, 0.00001);
 335         assertEquals(gc.getMiterLimit(), 1, 0.00001);


 336         gc.restore();
 337         
 338         assertEquals(gc.getLineCap(), StrokeLineCap.BUTT);
 339         assertEquals(gc.getLineJoin(), StrokeLineJoin.MITER);
 340         assertEquals(gc.getLineWidth(), 5, 0.00001);
 341         assertEquals(gc.getMiterLimit(), 3, 0.00001);


 342     }
 343 
 344     @Test
 345     public void testGCState_LineCapNull() throws Exception {
 346         gc.setLineCap(StrokeLineCap.BUTT);
 347         gc.setLineCap(null);
 348         assertEquals(gc.getLineCap(), StrokeLineCap.BUTT);
 349         gc.setLineCap(StrokeLineCap.ROUND);
 350         gc.setLineCap(null);
 351         assertEquals(gc.getLineCap(), StrokeLineCap.ROUND);
 352         gc.setLineCap(StrokeLineCap.SQUARE);
 353         gc.setLineCap(null);
 354         assertEquals(gc.getLineCap(), StrokeLineCap.SQUARE);
 355     }
 356 
 357     @Test
 358     public void testGCState_LineJoinNull() throws Exception {
 359         gc.setLineJoin(StrokeLineJoin.BEVEL);
 360         gc.setLineJoin(null);
 361         assertEquals(gc.getLineJoin(), StrokeLineJoin.BEVEL);
 362         gc.setLineJoin(StrokeLineJoin.MITER);
 363         gc.setLineJoin(null);
 364         assertEquals(gc.getLineJoin(), StrokeLineJoin.MITER);
 365         gc.setLineJoin(StrokeLineJoin.ROUND);
 366         gc.setLineJoin(null);
 367         assertEquals(gc.getLineJoin(), StrokeLineJoin.ROUND);
 368     }
 369 























































 370     @Test public void testGCState_BlendMode() throws Exception {
 371         gc.setGlobalBlendMode(BlendMode.ADD);
 372         gc.setGlobalAlpha(0);
 373         
 374         gc.save();
 375         gc.setGlobalAlpha(0.5);
 376         gc.setGlobalBlendMode(BlendMode.COLOR_BURN);
 377         assertEquals(gc.getGlobalBlendMode(), BlendMode.COLOR_BURN);
 378         assertEquals(gc.getGlobalAlpha(), 0.5, 0.000001);
 379         gc.restore();
 380         
 381         assertEquals(BlendMode.ADD, gc.getGlobalBlendMode());
 382         assertEquals(0, gc.getGlobalAlpha(), 0.000001);       
 383     }
 384 
 385     @Test public void testGCState_BlendMode_Null() {
 386         gc.setGlobalBlendMode(BlendMode.ADD);
 387         assertEquals(BlendMode.ADD, gc.getGlobalBlendMode());
 388         gc.setGlobalBlendMode(null);
 389         assertEquals(BlendMode.ADD, gc.getGlobalBlendMode());




  26 package javafx.scene.canvas;
  27 
  28 import javafx.geometry.VPos;
  29 import javafx.scene.NodeTest;
  30 import javafx.scene.effect.BlendMode;
  31 import javafx.scene.image.ImageForTesting;
  32 import javafx.scene.paint.Color;
  33 import javafx.scene.shape.ArcType;
  34 import javafx.scene.shape.FillRule;
  35 import javafx.scene.shape.StrokeLineCap;
  36 import javafx.scene.shape.StrokeLineJoin;
  37 import javafx.scene.text.Font;
  38 import javafx.scene.text.TextAlignment;
  39 import javafx.scene.transform.Affine;
  40 import javafx.scene.transform.Rotate;
  41 import javafx.scene.transform.Transform;
  42 import org.junit.Before;
  43 import org.junit.Test;
  44 
  45 import static org.junit.Assert.assertEquals;
  46 import static org.junit.Assert.assertArrayEquals;
  47 import static org.junit.Assert.assertNull;
  48 import static org.junit.Assert.assertNotNull;
  49 
  50 public class CanvasTest {
  51 
  52     private Canvas canvas;
  53     private GraphicsContext gc;
  54 
  55     @Before
  56     public void setUp() {
  57         canvas = new Canvas();
  58         gc = canvas.getGraphicsContext2D();
  59     }
  60 
  61     @Test public void testPropertyPropagation_visible() throws Exception {
  62         NodeTest.testBooleanPropertyPropagation(canvas, "visible", false, true);
  63     }
  64 
  65     //maybe test doing stuff from different threads
  66     @Test public void testGetGC2() throws Exception {
  67         GraphicsContext gc2 = canvas.getGraphicsContext2D();
  68         GraphicsContext gc3 = canvas.getGraphicsContext2D();


 315     }
 316 
 317     @Test public void testGCState_TextAlign_Null() {
 318         gc.setTextAlign(TextAlignment.JUSTIFY);
 319         assertEquals(TextAlignment.JUSTIFY, gc.getTextAlign());
 320         gc.setTextAlign(null);
 321         assertEquals(TextAlignment.JUSTIFY, gc.getTextAlign());
 322     }
 323 
 324     @Test public void testGCState_Line() throws Exception {
 325         gc.setLineCap(StrokeLineCap.BUTT);
 326         gc.setLineJoin(StrokeLineJoin.MITER);
 327         gc.setLineWidth(5);
 328         gc.setMiterLimit(3);
 329         
 330         gc.save();
 331         gc.setLineCap(StrokeLineCap.ROUND);
 332         gc.setLineJoin(StrokeLineJoin.BEVEL);
 333         gc.setLineWidth(1);
 334         gc.setMiterLimit(1);
 335         gc.setLineDashes(10, 10);
 336         gc.setLineDashOffset(100);
 337         assertEquals(gc.getLineCap(), StrokeLineCap.ROUND);
 338         assertEquals(gc.getLineJoin(), StrokeLineJoin.BEVEL);
 339         assertEquals(gc.getLineWidth(), 1, 0.00001);
 340         assertEquals(gc.getMiterLimit(), 1, 0.00001);
 341         assertArrayEquals(gc.getLineDashes(), new double[] {10, 10}, 0.00001);
 342         assertEquals(gc.getLineDashOffset(), 100, 0.00001);
 343         gc.restore();
 344         
 345         assertEquals(gc.getLineCap(), StrokeLineCap.BUTT);
 346         assertEquals(gc.getLineJoin(), StrokeLineJoin.MITER);
 347         assertEquals(gc.getLineWidth(), 5, 0.00001);
 348         assertEquals(gc.getMiterLimit(), 3, 0.00001);
 349         assertNull(gc.getLineDashes());
 350         assertEquals(gc.getLineDashOffset(), 0, 0.00001);
 351     }
 352 
 353     @Test
 354     public void testGCState_LineCapNull() throws Exception {
 355         gc.setLineCap(StrokeLineCap.BUTT);
 356         gc.setLineCap(null);
 357         assertEquals(gc.getLineCap(), StrokeLineCap.BUTT);
 358         gc.setLineCap(StrokeLineCap.ROUND);
 359         gc.setLineCap(null);
 360         assertEquals(gc.getLineCap(), StrokeLineCap.ROUND);
 361         gc.setLineCap(StrokeLineCap.SQUARE);
 362         gc.setLineCap(null);
 363         assertEquals(gc.getLineCap(), StrokeLineCap.SQUARE);
 364     }
 365 
 366     @Test
 367     public void testGCState_LineJoinNull() throws Exception {
 368         gc.setLineJoin(StrokeLineJoin.BEVEL);
 369         gc.setLineJoin(null);
 370         assertEquals(gc.getLineJoin(), StrokeLineJoin.BEVEL);
 371         gc.setLineJoin(StrokeLineJoin.MITER);
 372         gc.setLineJoin(null);
 373         assertEquals(gc.getLineJoin(), StrokeLineJoin.MITER);
 374         gc.setLineJoin(StrokeLineJoin.ROUND);
 375         gc.setLineJoin(null);
 376         assertEquals(gc.getLineJoin(), StrokeLineJoin.ROUND);
 377     }
 378 
 379     @Test
 380     public void testGCState_LineDashNonPositive() throws Exception {
 381         gc.setLineDashes(20, 10);
 382         assertArrayEquals(gc.getLineDashes(), new double[] {20, 10}, 0.00001);
 383         gc.setLineDashes(1, Double.NaN);
 384         assertArrayEquals(gc.getLineDashes(), new double[] {20, 10}, 0.00001);
 385         gc.setLineDashes(1, Double.POSITIVE_INFINITY);
 386         assertArrayEquals(gc.getLineDashes(), new double[] {20, 10}, 0.00001);
 387         gc.setLineDashes(1, -1);
 388         assertArrayEquals(gc.getLineDashes(), new double[] {20, 10}, 0.00001);
 389     }
 390 
 391     @Test
 392     public void testGCState_LineDashNull() throws Exception {
 393         gc.setLineDashes(10, 10);
 394         assertNotNull(gc.getLineDashes());
 395         gc.setLineDashes(null);
 396         assertNull(gc.getLineDashes());
 397 
 398         gc.setLineDashes(10, 10);
 399         assertNotNull(gc.getLineDashes());
 400         gc.setLineDashes();
 401         assertNull(gc.getLineDashes());
 402 
 403         gc.setLineDashes(10, 10);
 404         assertNotNull(gc.getLineDashes());
 405         gc.setLineDashes(new double[0]);
 406         assertNull(gc.getLineDashes());
 407 
 408         gc.setLineDashes(10, 10);
 409         assertNotNull(gc.getLineDashes());
 410         gc.setLineDashes(0, 0);
 411         assertNull(gc.getLineDashes());
 412     }
 413 
 414     @Test
 415     public void testGCState_LineDashOddLength() throws Exception {
 416         gc.setLineDashes(10);
 417         assertArrayEquals(gc.getLineDashes(), new double[] {10, 10}, 0.00001);
 418         gc.setLineDashes(10, 20, 30);
 419         assertArrayEquals(gc.getLineDashes(), new double[] {10, 20, 30, 10, 20, 30}, 0.00001);
 420     }
 421 
 422     @Test
 423     public void testGCState_LineDashOffsetNonFinite() throws Exception {
 424         gc.setLineDashOffset(5.0);
 425         assertEquals(gc.getLineDashOffset(), 5.0, 0.00001);
 426         gc.setLineDashOffset(Double.NaN);
 427         assertEquals(gc.getLineDashOffset(), 5.0, 0.00001);
 428         gc.setLineDashOffset(Double.NEGATIVE_INFINITY);
 429         assertEquals(gc.getLineDashOffset(), 5.0, 0.00001);
 430         gc.setLineDashOffset(Double.POSITIVE_INFINITY);
 431         assertEquals(gc.getLineDashOffset(), 5.0, 0.00001);
 432     }
 433 
 434     @Test public void testGCState_BlendMode() throws Exception {
 435         gc.setGlobalBlendMode(BlendMode.ADD);
 436         gc.setGlobalAlpha(0);
 437         
 438         gc.save();
 439         gc.setGlobalAlpha(0.5);
 440         gc.setGlobalBlendMode(BlendMode.COLOR_BURN);
 441         assertEquals(gc.getGlobalBlendMode(), BlendMode.COLOR_BURN);
 442         assertEquals(gc.getGlobalAlpha(), 0.5, 0.000001);
 443         gc.restore();
 444         
 445         assertEquals(BlendMode.ADD, gc.getGlobalBlendMode());
 446         assertEquals(0, gc.getGlobalAlpha(), 0.000001);       
 447     }
 448 
 449     @Test public void testGCState_BlendMode_Null() {
 450         gc.setGlobalBlendMode(BlendMode.ADD);
 451         assertEquals(BlendMode.ADD, gc.getGlobalBlendMode());
 452         gc.setGlobalBlendMode(null);
 453         assertEquals(BlendMode.ADD, gc.getGlobalBlendMode());