/* * Copyright (c) 2010-2017 Isode Limited. * All rights reserved. * See the COPYING file for more information. */ #include "gtest/gtest.h" #include #include using namespace Swift; namespace { const static std::string FULL_FORMATTED_OUTPUT("\n aqq\n bzz\n"); } TEST(XMLBeautifierTest, testBeautify) { auto beautifier = std::unique_ptr(new XMLBeautifier(true, false)); ASSERT_EQ(FULL_FORMATTED_OUTPUT, beautifier->beautify("aqqbzz")); ASSERT_TRUE(beautifier->wasReset()); ASSERT_EQ(0, beautifier->getLevel()); ASSERT_EQ(FULL_FORMATTED_OUTPUT, beautifier->beautify("aqqbzz")); ASSERT_TRUE(beautifier->wasReset()); ASSERT_EQ(0, beautifier->getLevel()); } TEST(XMLBeautifierTest, testBeautifyMultipleChunks) { auto beautifier = std::unique_ptr(new XMLBeautifier(true, false)); auto result = beautifier->beautify("aqq"); ASSERT_TRUE(beautifier->wasReset()); ASSERT_EQ(1, beautifier->getLevel()); result += beautifier->beautify("bzz"); ASSERT_FALSE(beautifier->wasReset()); ASSERT_EQ(0, beautifier->getLevel()); ASSERT_EQ(FULL_FORMATTED_OUTPUT, result); } TEST(XMLBeautifierTest, testBeautifyMultipleChunksMiddleElement) { auto beautifier = std::unique_ptr(new XMLBeautifier(true, false)); auto result = beautifier->beautify("wasReset()); ASSERT_EQ(0, beautifier->getLevel()); result += beautifier->beautify("ist>aqqbzz"); ASSERT_FALSE(beautifier->wasReset()); ASSERT_EQ(0, beautifier->getLevel()); ASSERT_EQ(FULL_FORMATTED_OUTPUT, result); } TEST(XMLBeautifierTest, testBeautifyInvalidMultipleChunks) { auto beautifier = std::unique_ptr(new XMLBeautifier(true, false)); ASSERT_EQ(std::string("\n aqq"), beautifier->beautify("aqq<")); ASSERT_TRUE(beautifier->wasReset()); ASSERT_EQ(2, beautifier->getLevel()); ASSERT_EQ(FULL_FORMATTED_OUTPUT, beautifier->beautify("aqqbzz")); ASSERT_TRUE(beautifier->wasReset()); ASSERT_EQ(0, beautifier->getLevel()); }