Apply the patches submitted by Jan Thor in bug 714731. These patches remove attributes whose value equals its default value per the SVG specification, except if an element's parent node defines a non-default value explicitly, and add unit tests.
This commit is contained in:
parent
2b68c7ed37
commit
bdae2bafae
4 changed files with 236 additions and 64 deletions
56
testscour.py
56
testscour.py
|
|
@ -456,7 +456,7 @@ class ConvertFillOpacityPropertyToAttr(unittest.TestCase):
|
|||
class ConvertFillRuleOpacityPropertyToAttr(unittest.TestCase):
|
||||
def runTest(self):
|
||||
doc = scour.scourXmlFile('unittests/fill-none.svg')
|
||||
self.assertEquals(doc.getElementsByTagNameNS(SVGNS, 'path')[1].getAttribute('fill-rule'), 'nonzero',
|
||||
self.assertEquals(doc.getElementsByTagNameNS(SVGNS, 'path')[1].getAttribute('fill-rule'), 'evenodd',
|
||||
'fill-rule property not converted to XML attribute' )
|
||||
|
||||
class CollapseSinglyReferencedGradients(unittest.TestCase):
|
||||
|
|
@ -1151,6 +1151,60 @@ class PathEmptyMove(unittest.TestCase):
|
|||
self.assertEquals(doc.getElementsByTagName('path')[0].getAttribute('d'), 'm100 100l200 100z');
|
||||
self.assertEquals(doc.getElementsByTagName('path')[1].getAttribute('d'), 'm100 100v200l100 100z');
|
||||
|
||||
class DefaultsRemovalToplevel(unittest.TestCase):
|
||||
def runTest(self):
|
||||
doc = scour.scourXmlFile('unittests/cascading-default-attribute-removal.svg')
|
||||
self.assertEquals(doc.getElementsByTagName('path')[1].getAttribute('fill-rule'), '',
|
||||
'Default attribute fill-rule:nonzero not removed');
|
||||
|
||||
class DefaultsRemovalToplevelInverse(unittest.TestCase):
|
||||
def runTest(self):
|
||||
doc = scour.scourXmlFile('unittests/cascading-default-attribute-removal.svg')
|
||||
self.assertEquals(doc.getElementsByTagName('path')[0].getAttribute('fill-rule'), 'evenodd',
|
||||
'Non-Default attribute fill-rule:evenodd removed');
|
||||
|
||||
class DefaultsRemovalToplevelFormat(unittest.TestCase):
|
||||
def runTest(self):
|
||||
doc = scour.scourXmlFile('unittests/cascading-default-attribute-removal.svg')
|
||||
self.assertEquals(doc.getElementsByTagName('path')[0].getAttribute('stroke-width'), '',
|
||||
'Default attribute stroke-width:1.00 not removed');
|
||||
|
||||
class DefaultsRemovalInherited(unittest.TestCase):
|
||||
def runTest(self):
|
||||
doc = scour.scourXmlFile('unittests/cascading-default-attribute-removal.svg')
|
||||
self.assertEquals(doc.getElementsByTagName('path')[3].getAttribute('fill-rule'), '',
|
||||
'Default attribute fill-rule:nonzero not removed in child');
|
||||
|
||||
class DefaultsRemovalInheritedInverse(unittest.TestCase):
|
||||
def runTest(self):
|
||||
doc = scour.scourXmlFile('unittests/cascading-default-attribute-removal.svg')
|
||||
self.assertEquals(doc.getElementsByTagName('path')[2].getAttribute('fill-rule'), 'evenodd',
|
||||
'Non-Default attribute fill-rule:evenodd removed in child');
|
||||
|
||||
class DefaultsRemovalInheritedFormat(unittest.TestCase):
|
||||
def runTest(self):
|
||||
doc = scour.scourXmlFile('unittests/cascading-default-attribute-removal.svg')
|
||||
self.assertEquals(doc.getElementsByTagName('path')[2].getAttribute('stroke-width'), '',
|
||||
'Default attribute stroke-width:1.00 not removed in child');
|
||||
|
||||
class DefaultsRemovalOverwrite(unittest.TestCase):
|
||||
def runTest(self):
|
||||
doc = scour.scourXmlFile('unittests/cascading-default-attribute-removal.svg')
|
||||
self.assertEquals(doc.getElementsByTagName('path')[5].getAttribute('fill-rule'), 'nonzero',
|
||||
'Default attribute removed, although it overwrites parent element');
|
||||
|
||||
class DefaultsRemovalOverwriteMarker(unittest.TestCase):
|
||||
def runTest(self):
|
||||
doc = scour.scourXmlFile('unittests/cascading-default-attribute-removal.svg')
|
||||
self.assertEquals(doc.getElementsByTagName('path')[4].getAttribute('marker-start'), 'none',
|
||||
'Default marker attribute removed, although it overwrites parent element');
|
||||
|
||||
class DefaultsRemovalNonOverwrite(unittest.TestCase):
|
||||
def runTest(self):
|
||||
doc = scour.scourXmlFile('unittests/cascading-default-attribute-removal.svg')
|
||||
self.assertEquals(doc.getElementsByTagName('path')[10].getAttribute('fill-rule'), '',
|
||||
'Default attribute not removed, although its parent used default');
|
||||
|
||||
# TODO: write tests for --enable-viewboxing
|
||||
# TODO; write a test for embedding rasters
|
||||
# TODO: write a test for --disable-embed-rasters
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue