def testDraw(self): canvas = Canvas(0,1) canvas.effect = Effect() canvas.document = canvas.effect.parse("TestFiles/unit_test_svg_abstractShape_transformado.svg") canvas.root = canvas.effect.document.getroot() canvas.node = self.returnsGnode(canvas.root,"rect") rect = Rect("rect",canvas.node,canvas, None) rect.draw() self.assertEqual(rect.canvasContext.code,['\tctx.transform(1.000000, 0.000000, 0.380253, 0.924882, 0.000000, 0.000000);\n', "\tctx.lineJoin = 'miter';\n", "\tctx.strokeStyle = 'rgb(0, 0, 0)';\n", "\tctx.lineCap = 'butt';\n", '\tctx.lineWidth = 1.012632;\n', "\tctx.fillStyle = 'rgb(0, 0, 255)';\n", '\tctx.beginPath();\n', '\tctx.moveTo(-60.184902, 299.915122);\n', '\tctx.lineTo(-60.184902, 677.860048);\n', '\tctx.quadraticCurveTo(-60.184902, 683.719660, -60.184902, 683.719660);\n', '\tctx.lineTo(431.239998, 683.719660);\n', '\tctx.quadraticCurveTo(431.239998, 683.719660, 431.239998, 677.860048);\n', '\tctx.lineTo(431.239998, 299.915122);\n', '\tctx.quadraticCurveTo(431.239998, 294.055510, 431.239998, 294.055510);\n', '\tctx.lineTo(-60.184902, 294.055510);\n', '\tctx.quadraticCurveTo(-60.184902, 294.055510, -60.184902, 299.915122);\n', '\tctx.fill();\n', '\tctx.stroke();\n'])
def setUp(self): self.effect = Effect() self.document = self.effect.parse("TestFiles/unit_test_svg_ellipse.svg") root = self.effect.document.getroot() self.node = self.findTag(root, "ellipse") self.canvas = Canvas(0, 0) self.ellipse = Ellipse(None, self.node, self.canvas, None)
def effect(self): """Applies the effect""" svg_root = self.document.getroot() width = inkex.unittouu(svg_root.get("width")) height = inkex.unittouu(svg_root.get("height")) self.canvas = Canvas(width, height) self.walk_tree(svg_root)
def setUp(self): self.canvas = Canvas(0, 0) self.effect = Effect() self.document = self.effect.parse( "TestFiles/unit_test_svg_abstractShape.svg") self.root = self.effect.document.getroot() self.node = self.returnsGnode(self.root, "path") self.abstractShape = AbstractShape(None, self.node, self.canvas, None)
def setUp(self): self.effect = Effect() self.document = self.effect.parse("TestFiles/unit_test_image2.svg") root = self.effect.document.getroot() self.node = self.findTag(root, "g") self.node = self.findTag(self.node, "image") self.canvas = Canvas(0, 0) self.image = Image(None, self.node, self.canvas, None)
def testHasGradient(self): canvas = Canvas(0,1) canvas.effect = Effect() canvas.document = canvas.effect.parse("TestFiles/unit_test_svg_abstractShape_transformado_GradienteLinear.svg") canvas.root = canvas.effect.document.getroot() canvas.node = self.returnsGnode(canvas.root,"path") canvas.abstractShape = AbstractShape( None,canvas.node,self.canvas, None) self.assertEqual(canvas.abstractShape.gradientHelper.hasGradient("fill"), "linear") canvas.document = canvas.effect.parse("TestFiles/unit_test_svg_abstractShape_transformado_GradienteRadial.svg") canvas.root = canvas.effect.document.getroot() canvas.node = self.returnsGnode(canvas.root,"path") canvas.abstractShape = AbstractShape( None,canvas.node,self.canvas, None) self.assertEqual(canvas.abstractShape.gradientHelper.hasGradient("fill"), "radial") self.assertNotEqual(self.abstractShape.gradientHelper.hasGradient("fill"),"linear")
def testEnd(self): self.abstractShape.endDraw() self.assertEqual(self.abstractShape.canvasContext.code, []) canvas1 = Canvas(0,3) canvas1.effect = Effect() canvas1.document = canvas1.effect.parse("TestFiles/unit_test_svg_abstractShape_transformado.svg") canvas1.root = canvas1.effect.document.getroot() canvas1.node = self.returnsGnode(canvas1.root,"rect") canvas1.abstractShape = AbstractShape( None,canvas1.node,canvas1, None) canvas1.abstractShape.endDraw() canvas2 = Canvas(0,2) canvas2.restore() self.assertEqual(canvas1.abstractShape.canvasContext.code, canvas2.code)
def setUp(self): self.effect = Effect() self.document = self.effect.parse("TestFiles/unit_test_svg_path.svg") root = self.effect.document.getroot() self.node = self.findTag(root, "g") self.node = self.findTag(self.node, "path") self.canvas = Canvas(0, 0) '''Fictional data used in methods such as pathlineto, pathcurveto, pathmoveto, patharcto. we made it so that the 5th parameters (600) is larger then the others, guaranteeing this way that the sqrt value is not a negative value in patharcto.''' self.data = [1.0, 2.0, 3.0, 4.0, 5.0, 600.0, 7.0] self.path = Path(None, self.node, self.canvas, None)
def testDraw(self): canvas = Canvas(0, 1) canvas.effect = Effect() canvas.document = canvas.effect.parse( "TestFiles/unit_test_svg_abstractShape_transformado.svg") canvas.root = canvas.effect.document.getroot() canvas.node = self.returnsGnode(canvas.root, "rect") rect = Rect("rect", canvas.node, canvas, None) rect.draw() self.assertEqual(rect.canvasContext.code, [ '\tctx.transform(1.000000, 0.000000, 0.380253, 0.924882, 0.000000, 0.000000);\n', "\tctx.lineJoin = 'miter';\n", "\tctx.strokeStyle = 'rgb(0, 0, 0)';\n", "\tctx.lineCap = 'butt';\n", '\tctx.lineWidth = 1.012632;\n', "\tctx.fillStyle = 'rgb(0, 0, 255)';\n", '\tctx.beginPath();\n', '\tctx.moveTo(-60.184902, 299.915122);\n', '\tctx.lineTo(-60.184902, 677.860048);\n', '\tctx.quadraticCurveTo(-60.184902, 683.719660, -60.184902, 683.719660);\n', '\tctx.lineTo(431.239998, 683.719660);\n', '\tctx.quadraticCurveTo(431.239998, 683.719660, 431.239998, 677.860048);\n', '\tctx.lineTo(431.239998, 299.915122);\n', '\tctx.quadraticCurveTo(431.239998, 294.055510, 431.239998, 294.055510);\n', '\tctx.lineTo(-60.184902, 294.055510);\n', '\tctx.quadraticCurveTo(-60.184902, 294.055510, -60.184902, 299.915122);\n', '\tctx.fill();\n', '\tctx.stroke();\n' ])
def testGetClipHref(self): returnValue = "clipPath3191" canvas = Canvas(0, 1) canvas.effect = Effect() canvas.document = canvas.effect.parse( "TestFiles/unit_test_svg_abstractShape_transformado_Clip.svg") canvas.root = canvas.effect.document.getroot() canvas.node = self.returnsGnode(canvas.root, "path") canvas.abstractShape = AbstractShape(None, canvas.node, self.canvas, None) self.assertEqual(canvas.abstractShape.getClipId(), returnValue)
def testHasClip(self): canvas = Canvas(0, 1) canvas.effect = Effect() canvas.document = canvas.effect.parse( "TestFiles/unit_test_svg_abstractShape_transformado_Clip.svg") canvas.root = canvas.effect.document.getroot() canvas.node = self.returnsGnode(canvas.root, "path") canvas.abstractShape = AbstractShape(None, canvas.node, self.canvas, None) self.assertTrue(canvas.abstractShape.hasClip()) self.assertFalse(self.abstractShape.hasClip())
def testHasTransform(self): self.assertNotEqual(True, self.abstractShape.hasTransform()) canvas = Canvas(0, 1) canvas.effect = Effect() canvas.document = canvas.effect.parse( "TestFiles/unit_test_svg_abstractShape_transformado.svg") canvas.root = canvas.effect.document.getroot() canvas.node = self.returnsGnode(canvas.root, "rect") canvas.abstractShape = AbstractShape(None, canvas.node, self.canvas, None) self.assertEqual(True, canvas.abstractShape.hasTransform())
def testHasClip(self): canvas = Canvas(0,1) canvas.effect = Effect() canvas.document = canvas.effect.parse("TestFiles/unit_test_svg_abstractShape_transformado_Clip.svg") canvas.root = canvas.effect.document.getroot() canvas.node = self.returnsGnode(canvas.root,"path") canvas.abstractShape = AbstractShape( None,canvas.node,self.canvas, None) self.assertTrue(canvas.abstractShape.hasClip()) self.assertFalse(self.abstractShape.hasClip())
def testGetClipHref(self): returnValue = "clipPath3191" canvas = Canvas(0,1) canvas.effect = Effect() canvas.document = canvas.effect.parse("TestFiles/unit_test_svg_abstractShape_transformado_Clip.svg") canvas.root = canvas.effect.document.getroot() canvas.node = self.returnsGnode(canvas.root,"path") canvas.abstractShape = AbstractShape( None,canvas.node,self.canvas, None) self.assertEqual(canvas.abstractShape.getClipId(),returnValue)
def testHasTransform(self): self.assertNotEqual(True, self.abstractShape.hasTransform()) canvas = Canvas(0,1) canvas.effect = Effect() canvas.document = canvas.effect.parse("TestFiles/unit_test_svg_abstractShape_transformado.svg") canvas.root = canvas.effect.document.getroot() canvas.node = self.returnsGnode(canvas.root,"rect") canvas.abstractShape = AbstractShape( None,canvas.node,self.canvas, None) self.assertEqual(True, canvas.abstractShape.hasTransform())
def testGetGradientHref(self): returnValue ="linearGradient3022" canvas = Canvas(0,1) canvas.effect = Effect() canvas.document = canvas.effect.parse("TestFiles/unit_test_svg_abstractShape_transformado_GradienteLinear.svg") canvas.root = canvas.effect.document.getroot() canvas.node = self.returnsGnode(canvas.root,"path") canvas.abstractShape = AbstractShape( None,canvas.node,self.canvas, None) self.assertEqual(returnValue,canvas.abstractShape.gradientHelper.getGradientHref("fill")) returnValue ="ovalGradient3022" self.assertNotEqual(returnValue,canvas.abstractShape.gradientHelper.getGradientHref("fill"))
def testGetTransform(self): m11 = (float(1), float(0), float(0.3802532), float(0.92488243), 0.0, 0.0) canvas = Canvas(0, 1) canvas.effect = Effect() canvas.document = canvas.effect.parse( "TestFiles/unit_test_svg_abstractShape_transformado.svg") canvas.root = canvas.effect.document.getroot() canvas.node = self.returnsGnode(canvas.root, "rect") canvas.abstractShape = AbstractShape(None, canvas.node, self.canvas, None) vetor = canvas.abstractShape.getTransform() self.assertEqual(m11, vetor)
def testGetTransform(self): m11 = (float(1),float(0),float(0.3802532),float(0.92488243),0.0,0.0) canvas = Canvas(0,1) canvas.effect = Effect() canvas.document = canvas.effect.parse("TestFiles/unit_test_svg_abstractShape_transformado.svg") canvas.root = canvas.effect.document.getroot() canvas.node = self.returnsGnode(canvas.root,"rect") canvas.abstractShape = AbstractShape( None,canvas.node,self.canvas, None) vetor = canvas.abstractShape.getTransform() self.assertEqual(m11, vetor)
def testGetGradientHref(self): returnValue = "linearGradient3022" canvas = Canvas(0, 1) canvas.effect = Effect() canvas.document = canvas.effect.parse( "TestFiles/unit_test_svg_abstractShape_transformado_GradienteLinear.svg" ) canvas.root = canvas.effect.document.getroot() canvas.node = self.returnsGnode(canvas.root, "path") canvas.abstractShape = AbstractShape(None, canvas.node, self.canvas, None) self.assertEqual( returnValue, canvas.abstractShape.gradientHelper.getGradientHref("fill")) returnValue = "ovalGradient3022" self.assertNotEqual( returnValue, canvas.abstractShape.gradientHelper.getGradientHref("fill"))
class TestCanvas(unittest.TestCase): def setUp(self): self.canvas = Canvas(100.0, 200.0) self.canvasWithContext = Canvas(100.0, 200.0, "foo") self.canvas.code = [] self.string_rgb = "FFBBAA" self.rgb = [251, 186, 10] def testBeginPathIfWritesRight(self): self.canvas.beginPath() self.assertEqual(self.canvas.code, ["\tctx.beginPath();\n"]) def testBeginPathIfWritesRightWithNewCtx(self): self.canvasWithContext.beginPath() self.assertEqual(self.canvasWithContext.code, ["\tfoo.beginPath();\n"]) def testPutStyleinCacheFirstElement(self): self.canvas.putStyleInCache({'foo': "bar"}) self.assertEqual(self.canvas.styleCache, {'foo': "bar"}) def testPutStyleInCacheAddSecondElement(self): self.canvas.putStyleInCache({'foo': "bar"}) self.canvas.putStyleInCache({'fooo': "baar"}) self.assertEqual(self.canvas.styleCache, { 'fooo': "baar", 'foo': "bar" }) def testPutStyleInCacheChangingValue(self): self.canvas.putStyleInCache({'foo': "bar"}) self.canvas.putStyleInCache({'foo': "baar"}) self.assertEqual(self.canvas.styleCache, {'foo': "baar"}) def testPutStyleInCacheWithNULLValue(self): self.canvas.putStyleInCache({'foo': "bar"}) self.canvas.putStyleInCache({'foo': ""}) self.assertEqual(self.canvas.styleCache, {'foo': "bar"}) def testGetColorWithALowerThenOne(self): retorno = self.canvas.getColor(self.string_rgb, 0) self.assertEqual(retorno, "'rgba(%d, %d, %d, %.1f)'" % (251, 186, 10, 0)) def testGetColorWithAHigherThenOne(self): retorno = self.canvas.getColor(self.string_rgb, 2) self.assertEqual(retorno, "'rgb(%d, %d, %d)'" % (251, 186, 10)) def testGetColorWithAEqualToOne(self): retorno = self.canvas.getColor(self.string_rgb, 1) self.assertEqual(retorno, "'rgb(%d, %d, %d)'" % (251, 186, 10)) def testBezierCurveTo(self): self.canvas.bezierCurveTo(4, 6, 2.3, -4, 1, 2) self.assertEqual(self.canvas.code, [ "\tctx.bezierCurveTo(%f, %f, %f, %f, %f, %f);\n" % (4, 6, 2.3, -4, 1, 2) ]) def testBezierCurveToWithNewCtx(self): self.canvasWithContext.bezierCurveTo(4, 6, 2, 4, 1, 2) self.assertEqual(self.canvasWithContext.code, [ "\tfoo.bezierCurveTo(%f, %f, %f, %f, %f, %f);\n" % (4, 6, 2, 4, 1, 2) ]) def testRectWithRXAndRY(self): self.canvas.rect(4, 6, 2, 4, 1, 2) self.assertEqual(self.canvas.code, [ '\tctx.moveTo(4.000000, 8.000000);\n', '\tctx.lineTo(4.000000, 8.000000);\n', '\tctx.quadraticCurveTo(4.000000, 10.000000, 5.000000, 10.000000);\n', '\tctx.lineTo(5.000000, 10.000000);\n', '\tctx.quadraticCurveTo(6.000000, 10.000000, 6.000000, 8.000000);\n', '\tctx.lineTo(6.000000, 8.000000);\n', '\tctx.quadraticCurveTo(6.000000, 6.000000, 5.000000, 6.000000);\n', '\tctx.lineTo(5.000000, 6.000000);\n', '\tctx.quadraticCurveTo(4.000000, 6.000000, 4.000000, 8.000000);\n' ]) def testRectWithRXAndRYCtx(self): self.canvasWithContext.rect(4, 6, 2, 4, 1, 2) self.assertEqual(self.canvasWithContext.code, [ '\tfoo.moveTo(4.000000, 8.000000);\n', '\tfoo.lineTo(4.000000, 8.000000);\n', '\tfoo.quadraticCurveTo(4.000000, 10.000000, 5.000000, 10.000000);\n', '\tfoo.lineTo(5.000000, 10.000000);\n', '\tfoo.quadraticCurveTo(6.000000, 10.000000, 6.000000, 8.000000);\n', '\tfoo.lineTo(6.000000, 8.000000);\n', '\tfoo.quadraticCurveTo(6.000000, 6.000000, 5.000000, 6.000000);\n', '\tfoo.lineTo(5.000000, 6.000000);\n', '\tfoo.quadraticCurveTo(4.000000, 6.000000, 4.000000, 8.000000);\n' ]) def testRectWithoutRXAndRY(self): self.canvas.rect(4, 6, 2, 4) self.assertEqual(self.canvas.code, ["\tctx.rect(%f, %f, %f, %f);\n" % (4, 6, 2, 4)]) def testRectWithoutRXAndRYCtx(self): self.canvasWithContext.rect(4, 6, 2, 4) self.assertEqual(self.canvasWithContext.code, ["\tfoo.rect(%f, %f, %f, %f);\n" % (4, 6, 2, 4)]) def testRectWithRX(self): self.canvas.rect(4, 6, 2, 4, 1) self.assertEqual(self.canvas.code, [ '\tctx.moveTo(4.000000, 6.000000);\n', '\tctx.lineTo(4.000000, 10.000000);\n', '\tctx.quadraticCurveTo(4.000000, 10.000000, 5.000000, 10.000000);\n', '\tctx.lineTo(5.000000, 10.000000);\n', '\tctx.quadraticCurveTo(6.000000, 10.000000, 6.000000, 10.000000);\n', '\tctx.lineTo(6.000000, 6.000000);\n', '\tctx.quadraticCurveTo(6.000000, 6.000000, 5.000000, 6.000000);\n', '\tctx.lineTo(5.000000, 6.000000);\n', '\tctx.quadraticCurveTo(4.000000, 6.000000, 4.000000, 6.000000);\n' ]) def testRectWithRXCtx(self): self.canvasWithContext.rect(4, 6, 2, 4, 1) self.assertEqual(self.canvasWithContext.code, [ '\tfoo.moveTo(4.000000, 6.000000);\n', '\tfoo.lineTo(4.000000, 10.000000);\n', '\tfoo.quadraticCurveTo(4.000000, 10.000000, 5.000000, 10.000000);\n', '\tfoo.lineTo(5.000000, 10.000000);\n', '\tfoo.quadraticCurveTo(6.000000, 10.000000, 6.000000, 10.000000);\n', '\tfoo.lineTo(6.000000, 6.000000);\n', '\tfoo.quadraticCurveTo(6.000000, 6.000000, 5.000000, 6.000000);\n', '\tfoo.lineTo(5.000000, 6.000000);\n', '\tfoo.quadraticCurveTo(4.000000, 6.000000, 4.000000, 6.000000);\n' ]) def testLineTo(self): self.canvas.lineTo(4, 6) self.assertEqual(self.canvas.code, ["\tctx.lineTo(%f, %f);\n" % (4, 6)]) def testLineToWithNewCtx(self): self.canvasWithContext.lineTo(4, 6) self.assertEqual(self.canvasWithContext.code, ["\tfoo.lineTo(%f, %f);\n" % (4, 6)]) def testMoveTo(self): self.canvas.moveTo(4, 6) self.assertEqual(self.canvas.code, ["\tctx.moveTo(%f, %f);\n" % (4, 6)]) def testMoveToWithNewCtx(self): self.canvasWithContext.moveTo(4, 6) self.assertEqual(self.canvasWithContext.code, ["\tfoo.moveTo(%f, %f);\n" % (4, 6)]) def testSetStrokeMiterlimit(self): self.canvas.setStrokeMiterlimit("banana") self.assertEqual(self.canvas.code, ["\tctx.miterLimit = %s;\n" % "banana"]) def testSetStrokeMiterlimitNewCtx(self): self.canvasWithContext.setStrokeMiterlimit("banana") self.assertEqual(self.canvasWithContext.code, ["\tfoo.miterLimit = %s;\n" % "banana"]) def testSetStrokeLinejoin(self): self.canvas.setStrokeLinejoin("banana") self.assertEqual(self.canvas.code, ["\tctx.lineJoin = '%s';\n" % "banana"]) def testSetStrokeLinejoinNewCtx(self): self.canvasWithContext.setStrokeLinejoin("banana") self.assertEqual(self.canvasWithContext.code, ["\tfoo.lineJoin = '%s';\n" % "banana"]) def testSetStrokeLinecap(self): self.canvas.setStrokeLinecap("banana") self.assertEqual(self.canvas.code, ["\tctx.lineCap = '%s';\n" % "banana"]) def testSetStrokeLinecapNewCtx(self): self.canvasWithContext.setStrokeLinecap("banana") self.assertEqual(self.canvasWithContext.code, ["\tfoo.lineCap = '%s';\n" % "banana"]) def testSetStrokeWidth(self): self.canvas.setStrokeWidth("2px") self.assertEqual(self.canvas.code, ["\tctx.lineWidth = %f;\n" % 2]) def testSetStrokeWidthNewCtx(self): self.canvasWithContext.setStrokeWidth("2px") self.assertEqual(self.canvasWithContext.code, ["\tfoo.lineWidth = %f;\n" % 2]) def testQuadraticCurveTo(self): self.canvas.quadraticCurveTo(4, 6, 2.3, -4) self.assertEqual( self.canvas.code, ["\tctx.quadraticCurveTo(%f, %f, %f, %f);\n" % (4, 6, 2.3, -4)]) def testQuadraticCurveToWithNewCtx(self): self.canvasWithContext.quadraticCurveTo(4, 6, 2, 4) self.assertEqual( self.canvasWithContext.code, ["\tfoo.quadraticCurveTo(%f, %f, %f, %f);\n" % (4, 6, 2, 4)]) def testFillText(self): self.canvas.fillText("batata", 4, 6) self.assertEqual( self.canvas.code, ["\tctx.fillText(\"%s\", %f, %f);\n" % ("batata", 4, 6)]) def testFillTextWithNewCtx(self): self.canvasWithContext.fillText("batata", 4, 6) self.assertEqual( self.canvasWithContext.code, ["\tfoo.fillText(\"%s\", %f, %f);\n" % ("batata", 4, 6)]) def testSave(self): self.canvas.save() self.assertEqual(self.canvas.code, ["\tctx.save();\n"]) def testSaveWithNewCtx(self): self.canvasWithContext.save() self.assertEqual(self.canvasWithContext.code, ["\tfoo.save();\n"]) def testClip(self): self.canvas.clip() self.assertEqual(self.canvas.code, ["\tctx.clip();\n"]) def testClipWithNewCtx(self): self.canvasWithContext.clip() self.assertEqual(self.canvasWithContext.code, ["\tfoo.clip();\n"]) def testArc(self): self.canvas.arc(1, 2, 3, 4, 5, 1) self.assertEqual( self.canvas.code, ["\tctx.arc(%f, %f, %f, %f, %.8f, %d);\n" % (1, 2, 3, 4, 5, 1)]) def testArcWithNewCtx(self): self.canvasWithContext.arc(1, 2, 3, 4, 5, 1) self.assertEqual( self.canvasWithContext.code, ["\tfoo.arc(%f, %f, %f, %f, %.8f, %d);\n" % (1, 2, 3, 4, 5, 1)]) def testWriteCorrectInsertion(self): text = "ctx.Texto" self.canvas.write(text) self.assertEqual(self.canvas.code[0], "\t" + text + "\n") def testWriteCorrectInsertionWithNewCtx(self): text = "ctx.Texto" self.canvasWithContext.write(text) self.assertEqual( self.canvasWithContext.code[0], "\t" + text.replace("ctx", self.canvasWithContext.obj) + "\n") def testOutput(self): from textwrap import dedent output = self.canvas.output() expected_output = """ <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Inkscape Output</title> </head> <body> <canvas id='canvas' width='%d' height='%d'></canvas> <script> var %s = document.getElementById("canvas").getContext("2d"); %s </script> </body> </html> """ expected_output = dedent(expected_output) % ( self.canvas.width, self.canvas.height, self.canvas.obj, "".join( self.canvas.code)) self.assertEqual(output, expected_output) def testCreateLinearGradient(self): href = "str" x1, y1, x2, y2 = 0.0, 2.0, 3.0, 4.0 data = (href, x1, y1, x2, y2) expectedList = [ "\tvar %s = ctx.createLinearGradient(%f,%f,%f,%f);\n" % data ] self.canvas.createLinearGradient(href, x1, y1, x2, y2) self.assertEqual(self.canvas.code, expectedList) def testCreateRadialGradient(self): href = "str" cx1, cy1, rx, cx2, cy2, ry = 0.0, 2.0, 3.0, 4.0, 5.0, 6.0 data = (href, cx1, cy1, rx, cx2, cy2, ry) expectedList = [ "\tvar %s = ctx.createRadialGradient(%f,%f,%f,%f,%f,%f);\n" % data ] self.canvas.createRadialGradient(href, cx1, cy1, rx, cx2, cy2, ry) self.assertEqual(self.canvas.code, expectedList) def testAddColorStop(self): href, pos, color = "href", 2.0, "color" data = (href, pos, color) expectedList = ["\t%s.addColorStop(%f, %s);\n" % data] self.canvas.addColorStop(href, pos, color) self.assertEqual(self.canvas.code, expectedList) def testSetOpacity(self): #Float Test value = 2.5 expectedReturn = "\tctx.globalAlpha = %.1f;\n" % float(value) self.canvas.setOpacity(value) self.assertEqual(self.canvas.code[0], expectedReturn) #Integer Test value = 2 expectedReturn = "\tctx.globalAlpha = %.1f;\n" % float(value) self.canvas.setOpacity(value) self.assertEqual(self.canvas.code[1], expectedReturn) def testSetFillNoOpacity(self): value = "url()" self.canvas.setFill(value) self.assertEqual(self.canvas.code, []) value = "0 0 255" fill = self.canvas.getColor(value, 1) self.canvas.setFill(value) self.assertEqual(self.canvas.code[0], "\tctx.fillStyle = %s;\n" % fill) value = "0 0 254" fill = self.canvas.getColor(value, 1) self.assertNotEqual(self.canvas.code[0], "\tctx.fillStyle = %s;\n" % fill) def testSetFillWithOpacity(self): self.canvas.style["fill-opacity"] = 0.5 value = "url()" self.canvas.setFill(value) self.assertEqual(self.canvas.code, []) value = "0 0 255" fill = self.canvas.getColor(value, 0.5) self.canvas.setFill(value) self.assertEqual(self.canvas.code[0], "\tctx.fillStyle = %s;\n" % fill) value = "0 0 254" fill = self.canvas.getColor(value, 0.5) self.assertNotEqual(self.canvas.code[0], "\tctx.fillStyle = %s;\n" % fill) def testSetStroke(self): value = "0 0 255" self.canvas.setStroke(value) self.assertEqual( self.canvas.code[0], "\tctx.strokeStyle = %s;\n" % self.canvas.getColor(value, 1)) value = "0 0 254" self.assertNotEqual( self.canvas.code[0], "\tctx.strokeStyle = %s;\n" % self.canvas.getColor(value, 1)) self.canvas.style["stroke-opacity"] = 0.5 value = "0 0 255" self.canvas.setStroke(value) self.assertEqual( self.canvas.code[1], "\tctx.strokeStyle = %s;\n" % self.canvas.getColor(value, 0.5)) value = "0 0 254" self.assertNotEqual( self.canvas.code[0], "\tctx.strokeStyle = %s;\n" % self.canvas.getColor(value, 0.5)) def testSetFont(self): value = "Fonte" self.canvas.setFont(value) self.assertEqual(self.canvas.code[0], "\tctx.font = \"%s\";\n" % value) def testTranslate(self): cx = cy = 1.0 self.canvas.translate(cx, cy) self.assertEqual(self.canvas.code[0], "\tctx.translate(%f, %f);\n" % (cx, cy)) def testRotate(self): angle = 1.0 self.canvas.rotate(angle) self.assertEqual(self.canvas.code[0], "\tctx.rotate(%f);\n" % angle) def testsScale(self): rx, ry = 1.0, 2.0 self.canvas.scale(rx, ry) self.assertEqual(self.canvas.code[0], "\tctx.scale(%f, %f);\n" % (rx, ry)) def testsTransform(self): m11, m12, m21, m22, dx, dy = 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 self.canvas.transform(m11, m12, m21, m22, dx, dy) self.assertEqual( self.canvas.code[0], "\tctx.transform(%f, %f, %f, %f, %f, %f);\n" % (m11, m12, m21, m22, dx, dy)) def testRestore(self): self.canvas.restore() self.assertEqual(self.canvas.code[0], "\tctx.restore();\n") def testClosePath(self): text = "ctx.closePath();" self.canvas.closePath(False) self.assertEquals(self.canvas.code, []) self.canvas.closePath(True) self.assertEqual(self.canvas.code[0], "\t" + text + "\n") def testFillWithValue(self): text = "ctx.fill();" self.canvas.style["fill"] = "fill" self.canvas.fill() self.assertEqual(self.canvas.code[0], "\t" + text + "\n") def testFillWithoutValue(self): self.canvas.style["fill"] = "none" self.canvas.fill() self.assertEqual(self.canvas.code, []) def testStrokeWithValue(self): text = "ctx.stroke();" self.canvas.style["stroke"] = "stroke" self.canvas.stroke() self.assertEqual(self.canvas.code[0], "\t" + text + "\n") def testStrokeWithoutValue(self): self.canvas.style["stroke"] = "none" self.canvas.stroke() self.assertEqual(self.canvas.code, [])
def setUp(self): self.canvas = Canvas(100.0, 200.0) self.canvasWithContext = Canvas(100.0, 200.0, "foo") self.canvas.code = [] self.string_rgb = "FFBBAA" self.rgb = [251, 186, 10]
class TestCanvas(unittest.TestCase): def setUp(self): self.canvas = Canvas(100.0, 200.0) self.canvasWithContext = Canvas(100.0, 200.0, "foo") self.canvas.code = [] self.string_rgb = "FFBBAA" self.rgb = [251, 186, 10] def testBeginPathIfWritesRight(self): self.canvas.beginPath() self.assertEqual(self.canvas.code, ["\tctx.beginPath();\n"]) def testBeginPathIfWritesRightWithNewCtx(self): self.canvasWithContext.beginPath() self.assertEqual(self.canvasWithContext.code, ["\tfoo.beginPath();\n"]) def testPutStyleinCacheFirstElement(self): self.canvas.putStyleInCache({'foo': "bar"}) self.assertEqual(self.canvas.styleCache, {'foo': "bar"}) def testPutStyleInCacheAddSecondElement(self): self.canvas.putStyleInCache({'foo': "bar"}) self.canvas.putStyleInCache({'fooo': "baar"}) self.assertEqual(self.canvas.styleCache, {'fooo': "baar", 'foo':"bar"}) def testPutStyleInCacheChangingValue(self): self.canvas.putStyleInCache({'foo': "bar"}) self.canvas.putStyleInCache({'foo': "baar"}) self.assertEqual(self.canvas.styleCache, {'foo': "baar"}) def testPutStyleInCacheWithNULLValue(self): self.canvas.putStyleInCache({'foo': "bar"}) self.canvas.putStyleInCache({'foo':""}) self.assertEqual(self.canvas.styleCache, {'foo': "bar"}) def testGetColorWithALowerThenOne(self): retorno = self.canvas.getColor(self.string_rgb, 0) self.assertEqual(retorno, "'rgba(%d, %d, %d, %.1f)'" % (251, 186, 10, 0)) def testGetColorWithAHigherThenOne(self): retorno = self.canvas.getColor(self.string_rgb, 2) self.assertEqual(retorno, "'rgb(%d, %d, %d)'" % (251, 186, 10)) def testGetColorWithAEqualToOne(self): retorno = self.canvas.getColor(self.string_rgb, 1) self.assertEqual(retorno, "'rgb(%d, %d, %d)'" % (251, 186, 10)) def testBezierCurveTo(self): self.canvas.bezierCurveTo(4, 6, 2.3, -4, 1, 2) self.assertEqual(self.canvas.code, ["\tctx.bezierCurveTo(%f, %f, %f, %f, %f, %f);\n" % (4, 6, 2.3, -4, 1, 2)]) def testBezierCurveToWithNewCtx(self): self.canvasWithContext.bezierCurveTo(4, 6, 2, 4, 1, 2) self.assertEqual(self.canvasWithContext.code, ["\tfoo.bezierCurveTo(%f, %f, %f, %f, %f, %f);\n" % (4, 6, 2, 4, 1, 2)]) def testRectWithRXAndRY(self): self.canvas.rect(4, 6, 2, 4, 1, 2) self.assertEqual(self.canvas.code, ['\tctx.moveTo(4.000000, 8.000000);\n', '\tctx.lineTo(4.000000, 8.000000);\n', '\tctx.quadraticCurveTo(4.000000, 10.000000, 5.000000, 10.000000);\n', '\tctx.lineTo(5.000000, 10.000000);\n', '\tctx.quadraticCurveTo(6.000000, 10.000000, 6.000000, 8.000000);\n', '\tctx.lineTo(6.000000, 8.000000);\n', '\tctx.quadraticCurveTo(6.000000, 6.000000, 5.000000, 6.000000);\n', '\tctx.lineTo(5.000000, 6.000000);\n', '\tctx.quadraticCurveTo(4.000000, 6.000000, 4.000000, 8.000000);\n']) def testRectWithRXAndRYCtx(self): self.canvasWithContext.rect(4, 6, 2, 4, 1, 2) self.assertEqual(self.canvasWithContext.code, ['\tfoo.moveTo(4.000000, 8.000000);\n', '\tfoo.lineTo(4.000000, 8.000000);\n', '\tfoo.quadraticCurveTo(4.000000, 10.000000, 5.000000, 10.000000);\n', '\tfoo.lineTo(5.000000, 10.000000);\n', '\tfoo.quadraticCurveTo(6.000000, 10.000000, 6.000000, 8.000000);\n', '\tfoo.lineTo(6.000000, 8.000000);\n', '\tfoo.quadraticCurveTo(6.000000, 6.000000, 5.000000, 6.000000);\n', '\tfoo.lineTo(5.000000, 6.000000);\n', '\tfoo.quadraticCurveTo(4.000000, 6.000000, 4.000000, 8.000000);\n']) def testRectWithoutRXAndRY(self): self.canvas.rect(4, 6, 2, 4) self.assertEqual(self.canvas.code, ["\tctx.rect(%f, %f, %f, %f);\n" % (4, 6, 2, 4)]) def testRectWithoutRXAndRYCtx(self): self.canvasWithContext.rect(4, 6, 2, 4) self.assertEqual(self.canvasWithContext.code, ["\tfoo.rect(%f, %f, %f, %f);\n" % (4, 6, 2, 4)]) def testRectWithRX(self): self.canvas.rect(4, 6, 2, 4, 1) self.assertEqual(self.canvas.code, ['\tctx.moveTo(4.000000, 6.000000);\n', '\tctx.lineTo(4.000000, 10.000000);\n', '\tctx.quadraticCurveTo(4.000000, 10.000000, 5.000000, 10.000000);\n', '\tctx.lineTo(5.000000, 10.000000);\n', '\tctx.quadraticCurveTo(6.000000, 10.000000, 6.000000, 10.000000);\n', '\tctx.lineTo(6.000000, 6.000000);\n', '\tctx.quadraticCurveTo(6.000000, 6.000000, 5.000000, 6.000000);\n', '\tctx.lineTo(5.000000, 6.000000);\n', '\tctx.quadraticCurveTo(4.000000, 6.000000, 4.000000, 6.000000);\n']) def testRectWithRXCtx(self): self.canvasWithContext.rect(4, 6, 2, 4, 1) self.assertEqual(self.canvasWithContext.code, ['\tfoo.moveTo(4.000000, 6.000000);\n', '\tfoo.lineTo(4.000000, 10.000000);\n', '\tfoo.quadraticCurveTo(4.000000, 10.000000, 5.000000, 10.000000);\n', '\tfoo.lineTo(5.000000, 10.000000);\n', '\tfoo.quadraticCurveTo(6.000000, 10.000000, 6.000000, 10.000000);\n', '\tfoo.lineTo(6.000000, 6.000000);\n', '\tfoo.quadraticCurveTo(6.000000, 6.000000, 5.000000, 6.000000);\n', '\tfoo.lineTo(5.000000, 6.000000);\n', '\tfoo.quadraticCurveTo(4.000000, 6.000000, 4.000000, 6.000000);\n']) def testLineTo(self): self.canvas.lineTo(4, 6) self.assertEqual(self.canvas.code, ["\tctx.lineTo(%f, %f);\n" % (4, 6)]) def testLineToWithNewCtx(self): self.canvasWithContext.lineTo(4, 6) self.assertEqual(self.canvasWithContext.code, ["\tfoo.lineTo(%f, %f);\n" % (4, 6)]) def testMoveTo(self): self.canvas.moveTo(4, 6) self.assertEqual(self.canvas.code, ["\tctx.moveTo(%f, %f);\n" % (4, 6)]) def testMoveToWithNewCtx(self): self.canvasWithContext.moveTo(4, 6) self.assertEqual(self.canvasWithContext.code, ["\tfoo.moveTo(%f, %f);\n" % (4, 6)]) def testSetStrokeMiterlimit(self): self.canvas.setStrokeMiterlimit("banana") self.assertEqual(self.canvas.code, ["\tctx.miterLimit = %s;\n" % "banana"]) def testSetStrokeMiterlimitNewCtx(self): self.canvasWithContext.setStrokeMiterlimit("banana") self.assertEqual(self.canvasWithContext.code, ["\tfoo.miterLimit = %s;\n" % "banana"]) def testSetStrokeLinejoin(self): self.canvas.setStrokeLinejoin("banana") self.assertEqual(self.canvas.code, ["\tctx.lineJoin = '%s';\n" % "banana"]) def testSetStrokeLinejoinNewCtx(self): self.canvasWithContext.setStrokeLinejoin("banana") self.assertEqual(self.canvasWithContext.code, ["\tfoo.lineJoin = '%s';\n" % "banana"]) def testSetStrokeLinecap(self): self.canvas.setStrokeLinecap("banana") self.assertEqual(self.canvas.code, ["\tctx.lineCap = '%s';\n" % "banana"]) def testSetStrokeLinecapNewCtx(self): self.canvasWithContext.setStrokeLinecap("banana") self.assertEqual(self.canvasWithContext.code, ["\tfoo.lineCap = '%s';\n" % "banana"]) def testSetStrokeWidth(self): self.canvas.setStrokeWidth("2px") self.assertEqual(self.canvas.code, ["\tctx.lineWidth = %f;\n" % 2]) def testSetStrokeWidthNewCtx(self): self.canvasWithContext.setStrokeWidth("2px") self.assertEqual(self.canvasWithContext.code, ["\tfoo.lineWidth = %f;\n" % 2]) def testQuadraticCurveTo(self): self.canvas.quadraticCurveTo(4, 6, 2.3, -4) self.assertEqual(self.canvas.code, ["\tctx.quadraticCurveTo(%f, %f, %f, %f);\n" % (4, 6, 2.3, -4)]) def testQuadraticCurveToWithNewCtx(self): self.canvasWithContext.quadraticCurveTo(4, 6, 2, 4) self.assertEqual(self.canvasWithContext.code, ["\tfoo.quadraticCurveTo(%f, %f, %f, %f);\n" % (4, 6, 2, 4)]) def testFillText(self): self.canvas.fillText("batata", 4, 6) self.assertEqual(self.canvas.code, ["\tctx.fillText(\"%s\", %f, %f);\n" % ("batata", 4, 6)]) def testFillTextWithNewCtx(self): self.canvasWithContext.fillText("batata", 4, 6) self.assertEqual(self.canvasWithContext.code, ["\tfoo.fillText(\"%s\", %f, %f);\n" % ("batata", 4, 6)]) def testSave(self): self.canvas.save() self.assertEqual(self.canvas.code, ["\tctx.save();\n"]) def testSaveWithNewCtx(self): self.canvasWithContext.save() self.assertEqual(self.canvasWithContext.code, ["\tfoo.save();\n"]) def testClip(self): self.canvas.clip() self.assertEqual(self.canvas.code, ["\tctx.clip();\n"]) def testClipWithNewCtx(self): self.canvasWithContext.clip() self.assertEqual(self.canvasWithContext.code, ["\tfoo.clip();\n"]) def testArc(self): self.canvas.arc(1, 2, 3, 4, 5, 1) self.assertEqual(self.canvas.code, ["\tctx.arc(%f, %f, %f, %f, %.8f, %d);\n" % (1, 2, 3, 4, 5, 1)]) def testArcWithNewCtx(self): self.canvasWithContext.arc(1, 2, 3, 4, 5, 1) self.assertEqual(self.canvasWithContext.code, ["\tfoo.arc(%f, %f, %f, %f, %.8f, %d);\n" % (1, 2, 3, 4, 5, 1)]) def testWriteCorrectInsertion(self): text = "ctx.Texto" self.canvas.write(text) self.assertEqual(self.canvas.code[0], "\t" + text + "\n") def testWriteCorrectInsertionWithNewCtx(self): text = "ctx.Texto" self.canvasWithContext.write(text) self.assertEqual(self.canvasWithContext.code[0], "\t" + text.replace("ctx", self.canvasWithContext.obj) + "\n") def testOutput(self): from textwrap import dedent output = self.canvas.output() expected_output = """ <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Inkscape Output</title> </head> <body> <canvas id='canvas' width='%d' height='%d'></canvas> <script> var %s = document.getElementById("canvas").getContext("2d"); %s </script> </body> </html> """ expected_output = dedent(expected_output) % (self.canvas.width, self.canvas.height, self.canvas.obj, "".join(self.canvas.code)) self.assertEqual(output, expected_output) def testCreateLinearGradient(self): href = "str" x1, y1, x2, y2 = 0.0 , 2.0 , 3.0, 4.0 data = (href, x1, y1, x2, y2) expectedList = ["\tvar %s = ctx.createLinearGradient(%f,%f,%f,%f);\n" % data] self.canvas.createLinearGradient(href,x1, y1, x2, y2) self.assertEqual(self.canvas.code, expectedList) def testCreateRadialGradient(self): href = "str" cx1, cy1, rx, cx2, cy2, ry = 0.0 , 2.0, 3.0, 4.0, 5.0, 6.0 data = (href, cx1, cy1, rx, cx2, cy2, ry) expectedList = ["\tvar %s = ctx.createRadialGradient(%f,%f,%f,%f,%f,%f);\n" % data] self.canvas.createRadialGradient(href, cx1, cy1, rx, cx2, cy2, ry) self.assertEqual(self.canvas.code, expectedList) def testAddColorStop(self): href, pos, color = "href" , 2.0, "color" data = (href, pos, color) expectedList = ["\t%s.addColorStop(%f, %s);\n" % data] self.canvas.addColorStop(href, pos, color) self.assertEqual(self.canvas.code, expectedList) def testSetOpacity(self): #Float Test value = 2.5 expectedReturn = "\tctx.globalAlpha = %.1f;\n" % float(value) self.canvas.setOpacity(value) self.assertEqual(self.canvas.code[0], expectedReturn) #Integer Test value = 2 expectedReturn = "\tctx.globalAlpha = %.1f;\n" % float(value) self.canvas.setOpacity(value) self.assertEqual(self.canvas.code[1], expectedReturn) def testSetFillNoOpacity(self): value = "url()" self.canvas.setFill(value) self.assertEqual(self.canvas.code, []) value = "0 0 255" fill = self.canvas.getColor(value, 1) self.canvas.setFill(value) self.assertEqual(self.canvas.code[0], "\tctx.fillStyle = %s;\n" % fill) value = "0 0 254" fill = self.canvas.getColor(value, 1) self.assertNotEqual(self.canvas.code[0], "\tctx.fillStyle = %s;\n" % fill) def testSetFillWithOpacity(self): self.canvas.style["fill-opacity"] = 0.5 value = "url()" self.canvas.setFill(value) self.assertEqual(self.canvas.code, []) value = "0 0 255" fill = self.canvas.getColor(value, 0.5) self.canvas.setFill(value) self.assertEqual(self.canvas.code[0], "\tctx.fillStyle = %s;\n" % fill) value = "0 0 254" fill = self.canvas.getColor(value, 0.5) self.assertNotEqual(self.canvas.code[0], "\tctx.fillStyle = %s;\n" % fill) def testSetStroke(self): value = "0 0 255" self.canvas.setStroke(value) self.assertEqual(self.canvas.code[0], "\tctx.strokeStyle = %s;\n" % self.canvas.getColor(value, 1)) value = "0 0 254" self.assertNotEqual(self.canvas.code[0], "\tctx.strokeStyle = %s;\n" % self.canvas.getColor(value, 1)) self.canvas.style["stroke-opacity"] = 0.5 value = "0 0 255" self.canvas.setStroke(value) self.assertEqual(self.canvas.code[1], "\tctx.strokeStyle = %s;\n" % self.canvas.getColor(value, 0.5)) value = "0 0 254" self.assertNotEqual(self.canvas.code[0], "\tctx.strokeStyle = %s;\n" % self.canvas.getColor(value, 0.5)) def testSetFont(self): value = "Fonte" self.canvas.setFont(value) self.assertEqual(self.canvas.code[0],"\tctx.font = \"%s\";\n" % value) def testTranslate(self): cx = cy = 1.0 self.canvas.translate(cx, cy) self.assertEqual(self.canvas.code[0],"\tctx.translate(%f, %f);\n" % (cx, cy)) def testRotate(self): angle = 1.0 self.canvas.rotate(angle) self.assertEqual(self.canvas.code[0],"\tctx.rotate(%f);\n" % angle) def testsScale(self): rx, ry = 1.0, 2.0 self.canvas.scale(rx, ry) self.assertEqual(self.canvas.code[0],"\tctx.scale(%f, %f);\n" % (rx, ry)) def testsTransform(self): m11, m12, m21, m22, dx, dy = 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 self.canvas.transform(m11, m12, m21, m22, dx, dy) self.assertEqual(self.canvas.code[0],"\tctx.transform(%f, %f, %f, %f, %f, %f);\n" % (m11, m12, m21, m22, dx, dy)) def testRestore(self): self.canvas.restore() self.assertEqual(self.canvas.code[0],"\tctx.restore();\n") def testClosePath(self): text = "ctx.closePath();" self.canvas.closePath(False) self.assertEquals(self.canvas.code, []) self.canvas.closePath(True) self.assertEqual(self.canvas.code[0],"\t"+text+"\n") def testFillWithValue(self): text = "ctx.fill();" self.canvas.style["fill"] = "fill" self.canvas.fill() self.assertEqual(self.canvas.code[0],"\t"+text+"\n") def testFillWithoutValue(self): self.canvas.style["fill"] = "none" self.canvas.fill() self.assertEqual(self.canvas.code,[]) def testStrokeWithValue(self): text = "ctx.stroke();" self.canvas.style["stroke"] = "stroke" self.canvas.stroke() self.assertEqual(self.canvas.code[0],"\t"+text+"\n") def testStrokeWithoutValue(self): self.canvas.style["stroke"] = "none" self.canvas.stroke() self.assertEqual(self.canvas.code,[])
def setUp(self): self.effect = Effect() self.document = None self.effect.parse("TestFiles/unit_test_svg_Rect_ComRxRy.svg") self.node = None self.canvas = Canvas(0, 0)
def testStart(self): canvas2 = Canvas(0, 2) canvas2.write("\n// #path3033") self.abstractShape.initDraw() self.assertEqual(self.abstractShape.canvasContext.code, canvas2.code) canvas3 = Canvas(0, 3) canvas3.effect = Effect() canvas3.document = canvas3.effect.parse( "TestFiles/unit_test_svg_abstractShape_transformado_Clip.svg") canvas3.root = canvas3.effect.document.getroot() canvas3.node = self.returnsGnode(canvas3.root, "path") canvas3.abstractShape = AbstractShape(None, canvas3.node, canvas3, None) canvas4 = Canvas(0, 4) canvas4.write("\n// #path2987") canvas4.save() canvas3.abstractShape.initDraw() self.assertEqual(canvas3.abstractShape.canvasContext.code, canvas4.code)
def testSetStyle(self): canvas = Canvas(0,0) canvas.setStrokeLinejoin("miter") canvas.setStroke("#000000") canvas.setStrokeLinecap("butt") canvas.setStrokeWidth("1px") canvas.setFill("#ff0000") stringStyle =self.abstractShape.getStyle() self.abstractShape.setStyle(stringStyle) self.assertEqual(canvas.code, self.abstractShape.canvasContext.code) self.assertEqual(self.abstractShape.canvasContext.style,stringStyle)
def testEnd(self): self.abstractShape.endDraw() self.assertEqual(self.abstractShape.canvasContext.code, []) canvas1 = Canvas(0, 3) canvas1.effect = Effect() canvas1.document = canvas1.effect.parse( "TestFiles/unit_test_svg_abstractShape_transformado.svg") canvas1.root = canvas1.effect.document.getroot() canvas1.node = self.returnsGnode(canvas1.root, "rect") canvas1.abstractShape = AbstractShape(None, canvas1.node, canvas1, None) canvas1.abstractShape.endDraw() canvas2 = Canvas(0, 2) canvas2.restore() self.assertEqual(canvas1.abstractShape.canvasContext.code, canvas2.code)
def testStart(self): canvas2 = Canvas(0,2) canvas2.write("\n// #path3033") self.abstractShape.initDraw() self.assertEqual(self.abstractShape.canvasContext.code,canvas2.code) canvas3 = Canvas(0,3) canvas3.effect = Effect() canvas3.document = canvas3.effect.parse("TestFiles/unit_test_svg_abstractShape_transformado_Clip.svg") canvas3.root = canvas3.effect.document.getroot() canvas3.node = self.returnsGnode(canvas3.root,"path") canvas3.abstractShape = AbstractShape( None,canvas3.node,canvas3, None) canvas4 = Canvas(0,4) canvas4.write("\n// #path2987") canvas4.save() canvas3.abstractShape.initDraw() self.assertEqual(canvas3.abstractShape.canvasContext.code,canvas4.code)
def testSetStyle(self): canvas = Canvas(0, 0) canvas.setStrokeLinejoin("miter") canvas.setStroke("#000000") canvas.setStrokeLinecap("butt") canvas.setStrokeWidth("1px") canvas.setFill("#ff0000") stringStyle = self.abstractShape.getStyle() self.abstractShape.setStyle(stringStyle) self.assertEqual(canvas.code, self.abstractShape.canvasContext.code) self.assertEqual(self.abstractShape.canvasContext.style, stringStyle)
def testHasGradient(self): canvas = Canvas(0, 1) canvas.effect = Effect() canvas.document = canvas.effect.parse( "TestFiles/unit_test_svg_abstractShape_transformado_GradienteLinear.svg" ) canvas.root = canvas.effect.document.getroot() canvas.node = self.returnsGnode(canvas.root, "path") canvas.abstractShape = AbstractShape(None, canvas.node, self.canvas, None) self.assertEqual( canvas.abstractShape.gradientHelper.hasGradient("fill"), "linear") canvas.document = canvas.effect.parse( "TestFiles/unit_test_svg_abstractShape_transformado_GradienteRadial.svg" ) canvas.root = canvas.effect.document.getroot() canvas.node = self.returnsGnode(canvas.root, "path") canvas.abstractShape = AbstractShape(None, canvas.node, self.canvas, None) self.assertEqual( canvas.abstractShape.gradientHelper.hasGradient("fill"), "radial") self.assertNotEqual( self.abstractShape.gradientHelper.hasGradient("fill"), "linear")