diff options
author | Dan Sinclair <dsinclair@chromium.org> | 2018-04-24 19:28:50 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-04-24 19:28:50 +0000 |
commit | b242943f5e949ce3d92dcb62c7497815ccd231d1 (patch) | |
tree | 890290b4c6907018d9236bfb26c2b82e6d0fd4b9 /core/fxcrt/xml/cfx_xmlparser_unittest.cpp | |
parent | 9afcfa46ee07bc22c94d49942f5a61d6a374fd2d (diff) | |
download | pdfium-b242943f5e949ce3d92dcb62c7497815ccd231d1.tar.xz |
Remove m_CurNodeType from CFX_XMLParser
This CL removes the m_CurNodeType member from CFX_XMLParser. This was,
essentially, duplicating the m_XMLNodeTypeStack. We now use the top() of
the stack element to find the same information.
Change-Id: I26507d2eee954837210aa42919ff061cfc8e85d8
Reviewed-on: https://pdfium-review.googlesource.com/31277
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Diffstat (limited to 'core/fxcrt/xml/cfx_xmlparser_unittest.cpp')
-rw-r--r-- | core/fxcrt/xml/cfx_xmlparser_unittest.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/core/fxcrt/xml/cfx_xmlparser_unittest.cpp b/core/fxcrt/xml/cfx_xmlparser_unittest.cpp index 790001cc27..b5c9be57cb 100644 --- a/core/fxcrt/xml/cfx_xmlparser_unittest.cpp +++ b/core/fxcrt/xml/cfx_xmlparser_unittest.cpp @@ -542,3 +542,30 @@ TEST(CFX_XMLParserTest, IsXMLNameChar) { EXPECT_TRUE(CFX_XMLTestParser::IsXMLNameChar(0xFFFD, true)); EXPECT_FALSE(CFX_XMLTestParser::IsXMLNameChar(0xFFFE, true)); } + +TEST(CFX_XMLParserTest, BadElementClose) { + const char* input = "</endtag>"; + + auto stream = MakeProxy(input); + auto root = pdfium::MakeUnique<CFX_XMLElement>(L"ROOT"); + + CFX_XMLTestParser parser(root.get(), stream); + ASSERT_EQ(FX_XmlSyntaxResult::Error, parser.DoSyntaxParse()); +} + +TEST(CFX_XMLParserTest, DoubleElementClose) { + const char* input = "<p></p></p>"; + + auto stream = MakeProxy(input); + auto root = pdfium::MakeUnique<CFX_XMLElement>(L"ROOT"); + + CFX_XMLTestParser parser(root.get(), stream); + ASSERT_EQ(FX_XmlSyntaxResult::ElementOpen, parser.DoSyntaxParse()); + ASSERT_EQ(FX_XmlSyntaxResult::TagName, parser.DoSyntaxParse()); + ASSERT_EQ(L"p", parser.GetTextData()); + ASSERT_EQ(FX_XmlSyntaxResult::ElementBreak, parser.DoSyntaxParse()); + ASSERT_EQ(L"", parser.GetTextData()); + ASSERT_EQ(FX_XmlSyntaxResult::ElementClose, parser.DoSyntaxParse()); + ASSERT_EQ(L"p", parser.GetTextData()); + ASSERT_EQ(FX_XmlSyntaxResult::Error, parser.DoSyntaxParse()); +} |