/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * */ #include #include #include #include #include namespace { /// Subclass of HTMLParser that can sense the import result. class TestHTMLParser : public HTMLParser { public: TestHTMLParser(SvStream& rStream); virtual void NextToken(HtmlTokenId nToken) override; /// Make this public for test purposes. using HTMLParser::SetNamespace; OUString m_aDocument; int m_nLineBreakCount = 0; }; TestHTMLParser::TestHTMLParser(SvStream& rStream) : HTMLParser(rStream) { } void TestHTMLParser::NextToken(HtmlTokenId nToken) { if (nToken == HtmlTokenId::TEXTTOKEN) m_aDocument += aToken; else if (nToken == HtmlTokenId::LINEBREAK) ++m_nLineBreakCount; } /// Tests HTMLParser. class Test : public CppUnit::TestFixture { public: void testTdf114428(); void testLineBreak(); CPPUNIT_TEST_SUITE(Test); CPPUNIT_TEST(testTdf114428); CPPUNIT_TEST(testLineBreak); CPPUNIT_TEST_SUITE_END(); }; void Test::testTdf114428() { SvMemoryStream aStream; OString aDocument("\nhello"); aStream.WriteBytes(aDocument.getStr(), aDocument.getLength()); aStream.Seek(0); tools::SvRef xParser = new TestHTMLParser(aStream); xParser->CallParser(); // This was ' hello', XML declaration // was not ignored. CPPUNIT_ASSERT_EQUAL(OUString("hello"), xParser->m_aDocument.trim()); } void Test::testLineBreak() { SvMemoryStream aStream; OString aDocument("aaa

bbb"); aStream.WriteBytes(aDocument.getStr(), aDocument.getLength()); aStream.Seek(0); tools::SvRef xParser = new TestHTMLParser(aStream); xParser->SetNamespace("reqif-xhtml"); xParser->CallParser(); // This was 2,

was interpreted as 2 line breaks in XHTML mode. CPPUNIT_ASSERT_EQUAL(1, xParser->m_nLineBreakCount); } CPPUNIT_TEST_SUITE_REGISTRATION(Test); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */