diff options
Diffstat (limited to '')
-rw-r--r-- | share/extensions/tests/test_hershey.py | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/share/extensions/tests/test_hershey.py b/share/extensions/tests/test_hershey.py new file mode 100644 index 0000000..f76eac8 --- /dev/null +++ b/share/extensions/tests/test_hershey.py @@ -0,0 +1,57 @@ +# coding=utf-8 +# tests for the hershey-text extension (hershey.py and hershey.inx) +from lxml import etree + +from inkex.tester import ComparisonMixin, InkscapeExtensionTestMixin, TestCase +from inkex.tester.filters import CompareNumericFuzzy, CompareOrderIndependentStyle +from inkex.tester.svg import svg, svg_file, uu_svg + +from hershey import Hershey + +class HersheyComparisonMixin(ComparisonMixin): + comparisons_outfile_dict = {} # pairs of args and expected outputs + + def setUp(self): + self.effect_class = Hershey + self.compare_filters = [CompareNumericFuzzy(), CompareOrderIndependentStyle()] + + self.comparisons = self.comparisons_outfile_dict.keys() + + def get_compare_outfile(self, args, addout=None): + ''' get the correct outfile to compare from comparisons_dict; ''' + return self.data_file('refs', self.comparisons_outfile_dict[args]) + +class TestHersheyBasic(InkscapeExtensionTestMixin, HersheyComparisonMixin, TestCase): + compare_file = 'svg/hershey_input.svg' # a huge number of inputs + comparisons_outfile_dict = { + # default parameters: + (): 'hershey.out', + # same as above, but explicit parameters. same output: + ('--tab="render"', '--fontface="HersheySans1"', '--preserve="False"'): 'hershey.out', + } + +class TestHersheyTrivialInput(InkscapeExtensionTestMixin, HersheyComparisonMixin, TestCase): + compare_file = 'svg/hershey_trivial_input.svg' + comparisons_outfile_dict = { + # loading a different font: + ('--fontface="EMSAllure"', ): 'hershey_loadfont.out', + # using the "other font" option. same output as above: + ('--fontface="other"', '--otherfont="EMSAllure"'): 'hershey_loadfont.out', + # tests preserve text option + ('--fontface="EMSOsmotron"', '--preserve=true'): 'hershey_preservetext.out', + # tests when just part of the input file is selected + ('--id=A',): 'hershey_partialselection.out', + } + +class TestHersheyTables(InkscapeExtensionTestMixin, HersheyComparisonMixin, TestCase): + compare_file = 'svg/default-inkscape-SVG.svg' + comparisons_outfile_dict = { + # generates a simple font table: + ('--tab="utilities"', '--action="sample"', '--text="I am a quick brown fox"'): 'hershey_fonttable.out', + # generates a simple font table, while testing UTF-8 input + ('--tab="utilities"', '--action="sample"', '--text="Î âm å qù¡çk brõwñ fø×"'): 'hershey_encoding.out', + # generates a glyph table in the font "EMSOsmotron" + ('--tab="utilities"', '--action="table"', '--fontface="other"', '--otherfont="EMSOsmotron"'): 'hershey_glyphtable.out', + } + + |