/* -*- 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"
bbb" u"
ccc" u"
ddd
" u"
eee" 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"
hello world
\n
aaa
bbb"); 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 world
aaa
bbb
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( "> 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"; }