summaryrefslogtreecommitdiffstats
path: root/share/extensions/tests/test_frame.py
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--share/extensions/tests/test_frame.py96
1 files changed, 96 insertions, 0 deletions
diff --git a/share/extensions/tests/test_frame.py b/share/extensions/tests/test_frame.py
new file mode 100644
index 0000000..6428065
--- /dev/null
+++ b/share/extensions/tests/test_frame.py
@@ -0,0 +1,96 @@
+# coding=utf-8
+#
+# Copyright (C) 2016 Richard White, rwhite8282@gmail.com
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+"""
+An Inkscape frame extension test class.
+"""
+from __future__ import absolute_import, print_function, unicode_literals
+
+import inkex
+from frame import Frame
+from inkex.tester import InkscapeExtensionTestMixin, TestCase
+
+
+class FrameTest(InkscapeExtensionTestMixin, TestCase):
+ effect_class = Frame
+
+ def get_frame(self, svg):
+ return svg.getElement('//svg:g[@id="layer1"]//svg:path[@inkscape:label="Frame"]')
+
+ def test_single_frame(self):
+ args = ['--corner_radius=20',
+ '--fill_color=-16777124',
+ '--id=rect3006',
+ '--position=inside',
+ '--stroke_color=255',
+ '--tab="stroke"',
+ '--width=10',
+ self.data_file('svg', 'single_box.svg')]
+ uut = Frame()
+ uut.run(args)
+ new_frame = self.get_frame(uut.svg)
+ self.assertIsNotNone(new_frame)
+ self.assertEqual('{http://www.w3.org/2000/svg}path', new_frame.tag)
+ new_frame_style = new_frame.attrib['style'].lower()
+ self.assertTrue('fill-opacity:0.36' in new_frame_style,
+ 'Invalid fill-opacity in "' + new_frame_style + '".')
+ self.assertTrue('stroke:#000000' in new_frame_style,
+ 'Invalid stroke in "' + new_frame_style + '".')
+ self.assertTrue('stroke-width:10.0' in new_frame_style,
+ 'Invalid stroke-width in "' + new_frame_style + '".')
+ self.assertTrue('fill:#ff0000' in new_frame_style,
+ 'Invalid fill in "' + new_frame_style + '".')
+
+ def test_single_frame_grouped(self):
+ args = ['--corner_radius=20',
+ '--fill_color=-16777124',
+ '--group=True',
+ '--id=rect3006',
+ '--position=inside',
+ '--stroke_color=255',
+ '--tab="stroke"',
+ '--width=10',
+ self.data_file('svg', 'single_box.svg')]
+ uut = Frame()
+ uut.run(args)
+ new_frame = self.get_frame(uut.svg)
+ self.assertIsNotNone(new_frame)
+ self.assertEqual('{http://www.w3.org/2000/svg}path', new_frame.tag)
+ group = new_frame.getparent()
+ self.assertEqual('{http://www.w3.org/2000/svg}g', group.tag)
+ self.assertEqual('{http://www.w3.org/2000/svg}rect', group[0].tag)
+ self.assertEqual('{http://www.w3.org/2000/svg}path', group[1].tag)
+ self.assertEqual("Frame", group[1].label)
+
+ def test_single_frame_clipped(self):
+ uut = self.assertEffect(
+ 'svg', 'single_box.svg',
+ clip=True,
+ corner_radius=20,
+ fill_color=-16777124,
+ id='rect3006',
+ position='inside',
+ stroke_color=255,
+ tab="stroke",
+ width=10)
+ new_frame = self.get_frame(uut.svg)
+ self.assertIsNotNone(new_frame)
+ self.assertEqual('{http://www.w3.org/2000/svg}path', new_frame.tag)
+ orig = list(uut.svg.selected.values())[0]
+ self.assertEqual('url(#clipPath5815)', orig.get('clip-path'))
+ clip_path = uut.svg.getElement('//svg:defs/svg:clipPath')
+ self.assertEqual('{http://www.w3.org/2000/svg}clipPath', clip_path.tag)