tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 194f39d870caae856234f0a611c05a4a5c9792fc
parent 7f8cb6c34c8dcc40672258b59319e80eae916e0a
Author: Edgar Chen <echen@mozilla.com>
Date:   Tue, 14 Oct 2025 07:44:07 +0000

Bug 1992067 - Add more nsPlainTextSerializer gtest for <blockquote type=cite>; r=masayuki

Differential Revision: https://phabricator.services.mozilla.com/D267174

Diffstat:
Mdom/serializers/gtest/TestPlainTextSerializerBlockQuoteCite.cpp | 103++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 102 insertions(+), 1 deletion(-)

diff --git a/dom/serializers/gtest/TestPlainTextSerializerBlockQuoteCite.cpp b/dom/serializers/gtest/TestPlainTextSerializerBlockQuoteCite.cpp @@ -12,7 +12,7 @@ #include "nsServiceManagerUtils.h" #include "nsString.h" -TEST(PlainTextSerializerBlockQuoteCite, BlockQuoteCite) +TEST(PlainTextSerializerBlockQuoteCite, BlockQuoteCiteWrap) { nsAutoString test; test.AppendLiteral(u"<blockquote type=cite>hello world</blockquote>"); @@ -31,3 +31,104 @@ TEST(PlainTextSerializerBlockQuoteCite, BlockQuoteCite) ASSERT_EQ(test, expect) << "Wrong blockquote cite to text serialization"; } + +TEST(PlainTextSerializerBlockQuoteCite, BlockQuoteCiteNested) +{ + nsAutoString test; + test.AppendLiteral( + u"<blockquote type=cite>aaa" + u"<blockquote type=cite>bbb" + u"<blockquote type=cite>ccc" + u"</blockquote><pre>ddd</pre>" + u"</blockquote>eee" + u"</blockquote>"); + + 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"<blockquote type=cite>hello world</blockquote>\n<pre>aaa</pre>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"<blockquote type=cite>hello world</blockquote>aaa<pre>bbb</pre>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"<blockquote type=cite>first blockquote</blockquote>" + u"<select><option>aaa</option></select><pre>bbb</pre>" + u"<blockquote type=cite>second blockquote</blockquote>" + u"<select><option>\r\n</option></select><pre>ccc</pre>"); + + 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"; +}