/* * This project is licensed under the MIT license. For more information see the * LICENSE file. */ #include #include "gmock/gmock.h" #include "maddy/htmlparser.h" // ----------------------------------------------------------------------------- class MADDY_HTMLPARSER : public ::testing::Test { protected: std::shared_ptr pParser; void SetUp() override { this->pParser = std::make_shared( nullptr, nullptr ); } }; // ----------------------------------------------------------------------------- TEST_F(MADDY_HTMLPARSER, IsFinishedReturnsFalseInTheBeginning) { ASSERT_FALSE(pParser->IsFinished()); } TEST_F(MADDY_HTMLPARSER, IsStartingLineReturnsFalseWhenFacedWithNoSmallerThan) { const std::vector markdown = { "> quote" , "some text" , "* list" , "1. numbered list" , "|table>" }; for (size_t i = 0; i < markdown.size(); ++i) { ASSERT_FALSE(maddy::HtmlParser::IsStartingLine(markdown[i])); } } TEST_F(MADDY_HTMLPARSER, IsStartingLineReturnsTrueWhenFacedWithSmallerThan) { const std::string markdown = "
test element
"; ASSERT_TRUE(maddy::HtmlParser::IsStartingLine(markdown)); } TEST_F(MADDY_HTMLPARSER, ItReplacesNoHtml) { const std::vector markdown { "some text in a paragraph" , "" , "
some HTML
" , "" , "
more" , "HTML" , "
" , "" }; const std::string expected = "some text in a paragraph
some HTML
more HTML
"; for (std::string md : markdown) { pParser->AddLine(md); } ASSERT_TRUE(pParser->IsFinished()); std::stringstream& output(pParser->GetResult()); const std::string& outputString = output.str(); ASSERT_EQ(expected, outputString); }