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)
Пример #3
0
 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)
Пример #8
0
 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"))
Пример #20
0
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, [])
Пример #21
0
 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]
Пример #22
0
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,[])
Пример #23
0
 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)
Пример #29
0
 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 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")