tor-browser

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

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 }