/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=8 sts=2 et sw=2 tw=80: */ /* 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 "Common.h" #include "gtest/gtest.h" #include "nsCRT.h" #include "nsIDocumentEncoder.h" #include "nsIParserUtils.h" #include "nsServiceManagerUtils.h" #include "nsString.h" TEST(PlainTextSerializerBlockQuoteCite, BlockQuoteCiteWrap) { nsAutoString test; test.AppendLiteral(u"
hello world"); const uint32_t wrapColumn = 10; ConvertBufToPlainText(test, nsIDocumentEncoder::OutputFormatted | nsIDocumentEncoder::OutputFormatFlowed | nsIDocumentEncoder::OutputCRLineBreak | nsIDocumentEncoder::OutputLFLineBreak, wrapColumn); constexpr auto expect = NS_LITERAL_STRING_FROM_CSTRING( "> hello \r\n" "> world\r\n"); ASSERT_EQ(test, expect) << "Wrong blockquote cite to text serialization"; } TEST(PlainTextSerializerBlockQuoteCite, BlockQuoteCiteNested) { nsAutoString test; test.AppendLiteral( u"
aaa" u""); const uint32_t wrapColumn = 20; ConvertBufToPlainText(test, nsIDocumentEncoder::OutputFormatted | nsIDocumentEncoder::OutputFormatFlowed | nsIDocumentEncoder::OutputCRLineBreak | nsIDocumentEncoder::OutputLFLineBreak, wrapColumn); constexpr auto expect = NS_LITERAL_STRING_FROM_CSTRING( "> aaa\r\n" ">> bbb\r\n" ">>> ccc\r\n" ">> ddd\r\n" "> eee\r\n"); ASSERT_EQ(test, expect) << "Wrong nested blockquote cite to text serialization"; } TEST(PlainTextSerializerBlockQuoteCite, LineBreakAfterBlockQuoteCite) { nsAutoString test; test.AppendLiteral( u"bbb" u"eee" u"ccc" u"ddd" u"
hello world\n
aaabbb"); const uint32_t wrapColumn = 20; ConvertBufToPlainText(test, nsIDocumentEncoder::OutputFormatted | nsIDocumentEncoder::OutputFormatFlowed | nsIDocumentEncoder::OutputCRLineBreak | nsIDocumentEncoder::OutputLFLineBreak, wrapColumn); constexpr auto expect = NS_LITERAL_STRING_FROM_CSTRING( "> hello world\r\n" "aaa\r\n\r\n" "bbb\r\n"); ASSERT_EQ(test, expect) << "Wrong blockquote cite to text serialization"; } TEST(PlainTextSerializerBlockQuoteCite, TextAfterBlockQuoteCite) { nsAutoString test; test.AppendLiteral( u"
hello worldaaa
bbbccc"); const uint32_t wrapColumn = 20; ConvertBufToPlainText(test, nsIDocumentEncoder::OutputFormatted | nsIDocumentEncoder::OutputFormatFlowed | nsIDocumentEncoder::OutputCRLineBreak | nsIDocumentEncoder::OutputLFLineBreak, wrapColumn); constexpr auto expect = NS_LITERAL_STRING_FROM_CSTRING( "> hello world\r\n" "aaa\r\n\r\n" "bbb\r\n\r\n" "ccc\r\n"); ASSERT_EQ(test, expect) << "Wrong blockquote cite to text serialization"; } TEST(PlainTextSerializerBlockQuoteCite, SelectAfterBlockQuoteCite) { nsAutoString test; test.AppendLiteral( u"
first blockquote" u"
bbb" u"
second blockquote" u"
ccc"); const uint32_t wrapColumn = 20; ConvertBufToPlainText(test, nsIDocumentEncoder::OutputFormatted | nsIDocumentEncoder::OutputFormatFlowed | nsIDocumentEncoder::OutputCRLineBreak | nsIDocumentEncoder::OutputLFLineBreak, wrapColumn); constexpr auto expect = NS_LITERAL_STRING_FROM_CSTRING( "> first blockquote\r\n\r\n" "bbb\r\n" "> second blockquote\r\n\r\n" "ccc\r\n"); ASSERT_EQ(test, expect) << "Wrong blockquote cite to text serialization"; }