TestPlainTextSerializerBlockQuoteCite.cpp (4644B)
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */ 3 /* This Source Code Form is subject to the terms of the Mozilla Public 4 * License, v. 2.0. If a copy of the MPL was not distributed with this 5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 6 7 #include "Common.h" 8 #include "gtest/gtest.h" 9 #include "nsCRT.h" 10 #include "nsIDocumentEncoder.h" 11 #include "nsIParserUtils.h" 12 #include "nsServiceManagerUtils.h" 13 #include "nsString.h" 14 15 TEST(PlainTextSerializerBlockQuoteCite, BlockQuoteCiteWrap) 16 { 17 nsAutoString test; 18 test.AppendLiteral(u"<blockquote type=cite>hello world</blockquote>"); 19 20 const uint32_t wrapColumn = 10; 21 ConvertBufToPlainText(test, 22 nsIDocumentEncoder::OutputFormatted | 23 nsIDocumentEncoder::OutputFormatFlowed | 24 nsIDocumentEncoder::OutputCRLineBreak | 25 nsIDocumentEncoder::OutputLFLineBreak, 26 wrapColumn); 27 28 constexpr auto expect = NS_LITERAL_STRING_FROM_CSTRING( 29 "> hello \r\n" 30 "> world\r\n"); 31 32 ASSERT_EQ(test, expect) << "Wrong blockquote cite to text serialization"; 33 } 34 35 TEST(PlainTextSerializerBlockQuoteCite, BlockQuoteCiteNested) 36 { 37 nsAutoString test; 38 test.AppendLiteral( 39 u"<blockquote type=cite>aaa" 40 u"<blockquote type=cite>bbb" 41 u"<blockquote type=cite>ccc" 42 u"</blockquote><pre>ddd</pre>" 43 u"</blockquote>eee" 44 u"</blockquote>"); 45 46 const uint32_t wrapColumn = 20; 47 ConvertBufToPlainText(test, 48 nsIDocumentEncoder::OutputFormatted | 49 nsIDocumentEncoder::OutputFormatFlowed | 50 nsIDocumentEncoder::OutputCRLineBreak | 51 nsIDocumentEncoder::OutputLFLineBreak, 52 wrapColumn); 53 54 constexpr auto expect = NS_LITERAL_STRING_FROM_CSTRING( 55 "> aaa\r\n" 56 ">> bbb\r\n" 57 ">>> ccc\r\n" 58 ">> ddd\r\n" 59 "> eee\r\n"); 60 61 ASSERT_EQ(test, expect) 62 << "Wrong nested blockquote cite to text serialization"; 63 } 64 65 TEST(PlainTextSerializerBlockQuoteCite, LineBreakAfterBlockQuoteCite) 66 { 67 nsAutoString test; 68 test.AppendLiteral( 69 u"<blockquote type=cite>hello world</blockquote>\n<pre>aaa</pre>bbb"); 70 71 const uint32_t wrapColumn = 20; 72 ConvertBufToPlainText(test, 73 nsIDocumentEncoder::OutputFormatted | 74 nsIDocumentEncoder::OutputFormatFlowed | 75 nsIDocumentEncoder::OutputCRLineBreak | 76 nsIDocumentEncoder::OutputLFLineBreak, 77 wrapColumn); 78 79 constexpr auto expect = NS_LITERAL_STRING_FROM_CSTRING( 80 "> hello world\r\n" 81 "aaa\r\n\r\n" 82 "bbb\r\n"); 83 84 ASSERT_EQ(test, expect) << "Wrong blockquote cite to text serialization"; 85 } 86 87 TEST(PlainTextSerializerBlockQuoteCite, TextAfterBlockQuoteCite) 88 { 89 nsAutoString test; 90 test.AppendLiteral( 91 u"<blockquote type=cite>hello world</blockquote>aaa<pre>bbb</pre>ccc"); 92 93 const uint32_t wrapColumn = 20; 94 ConvertBufToPlainText(test, 95 nsIDocumentEncoder::OutputFormatted | 96 nsIDocumentEncoder::OutputFormatFlowed | 97 nsIDocumentEncoder::OutputCRLineBreak | 98 nsIDocumentEncoder::OutputLFLineBreak, 99 wrapColumn); 100 101 constexpr auto expect = NS_LITERAL_STRING_FROM_CSTRING( 102 "> hello world\r\n" 103 "aaa\r\n\r\n" 104 "bbb\r\n\r\n" 105 "ccc\r\n"); 106 107 ASSERT_EQ(test, expect) << "Wrong blockquote cite to text serialization"; 108 } 109 110 TEST(PlainTextSerializerBlockQuoteCite, SelectAfterBlockQuoteCite) 111 { 112 nsAutoString test; 113 test.AppendLiteral( 114 u"<blockquote type=cite>first blockquote</blockquote>" 115 u"<select><option>aaa</option></select><pre>bbb</pre>" 116 u"<blockquote type=cite>second blockquote</blockquote>" 117 u"<select><option>\r\n</option></select><pre>ccc</pre>"); 118 119 const uint32_t wrapColumn = 20; 120 ConvertBufToPlainText(test, 121 nsIDocumentEncoder::OutputFormatted | 122 nsIDocumentEncoder::OutputFormatFlowed | 123 nsIDocumentEncoder::OutputCRLineBreak | 124 nsIDocumentEncoder::OutputLFLineBreak, 125 wrapColumn); 126 127 constexpr auto expect = NS_LITERAL_STRING_FROM_CSTRING( 128 "> first blockquote\r\n\r\n" 129 "bbb\r\n" 130 "> second blockquote\r\n\r\n" 131 "ccc\r\n"); 132 133 ASSERT_EQ(test, expect) << "Wrong blockquote cite to text serialization"; 134 }