[1.5.x] Fixed HTML comparisons of class="foo bar" and class="bar foo" in tests

Refs #17758

Backport of 8bc410b445 from master
This commit is contained in:
Luke Plant 2012-12-24 02:11:32 +00:00
parent 00aea69f06
commit 2164cd00ec
1 changed files with 8 additions and 0 deletions

View File

@ -182,6 +182,14 @@ class Parser(HTMLParser):
self.handle_endtag(tag) self.handle_endtag(tag)
def handle_starttag(self, tag, attrs): def handle_starttag(self, tag, attrs):
# Special case handling of 'class' attribute, so that comparisons of DOM
# instances are not sensitive to ordering of classes.
attrs = [
(name, " ".join(sorted(value.split(" "))))
if name == "class"
else (name, value)
for name, value in attrs
]
element = Element(tag, attrs) element = Element(tag, attrs)
self.current.append(element) self.current.append(element)
if tag not in self.SELF_CLOSING_TAGS: if tag not in self.SELF_CLOSING_TAGS: