Skip to content

Commit ecf2ab0

Browse files
committed
fix in frameset a bit more and change parseError()
--HG-- extra : convert_revision : svn%3Aacbfec75-9323-0410-a652-858a13e371e0/trunk%40386
1 parent 2538d8d commit ecf2ab0

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

src/parser.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,8 @@ def parse(self, stream, innerHTML=False):
9797

9898
return self.tree.getDocument()
9999

100-
def parseError(self, data=None):
100+
def parseError(self, data="XXX ERROR MESSAGE NEEDED"):
101+
# The idea is to make data mandatory.
101102
self.errors.append(data)
102103
if self.strict:
103104
raise ParseError
@@ -1544,7 +1545,8 @@ def __init__(self, parser, tree):
15441545
self.startTagHandler.default = self.startTagOther
15451546

15461547
self.endTagHandler = utils.MethodDispatcher([
1547-
("frameset", self.endTagFrameset)
1548+
("frameset", self.endTagFrameset),
1549+
("noframes", self.endTagNoframes)
15481550
])
15491551
self.endTagHandler.default = self.endTagOther
15501552

@@ -1579,6 +1581,10 @@ def endTagFrameset(self, name):
15791581
# "frameset" element (anymore) then switch.
15801582
self.parser.phase = self.parser.phases["afterFrameset"]
15811583

1584+
def endTagNoframes(self, name):
1585+
# XXX likely to be an innerHTML case here too
1586+
self.tree.openElements.pop()
1587+
15821588
def endTagOther(self, name):
15831589
self.parser.parseError("Unexpected end tag token (" + name +
15841590
") in the frameset phase.")

tests/test_parser.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ def runParserTest(self, input, output, errors):
5555
convertTreeDump(document.printTree())])
5656
self.assertEquals(output, convertTreeDump(document.printTree()),
5757
errorMsg)
58-
errorMsg2 = "\n".join(["\n\nInput errors: " + str(len(errors)),
59-
"Actual errors: " + str(len(p.errors))])
58+
errorMsg2 = "\n".join(["\n\nInput errors:\n" + "\n".join(errors),
59+
"Actual errors:\n" + "\n".join(p.errors)])
6060
self.assertEquals(len(p.errors), len(errors), errorMsg2)
6161

6262
def test_parser():

0 commit comments

Comments
 (0)