mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-30 05:35:31 +00:00
e368dc9c85
This patch was generated by a script. Here's the source of the script for future reference: function convert() { echo "Converting $1 to $2..." find . ! -wholename "*nsprpub*" \ ! -wholename "*security/nss*" \ ! -wholename "*/.hg*" \ ! -wholename "obj-ff-dbg*" \ ! -name nsXPCOMCID.h \ ! -name prtypes.h \ -type f \ \( -iname "*.cpp" \ -o -iname "*.h" \ -o -iname "*.c" \ -o -iname "*.cc" \ -o -iname "*.idl" \ -o -iname "*.ipdl" \ -o -iname "*.ipdlh" \ -o -iname "*.mm" \) | \ xargs -n 1 sed -i -e "s/\b$1\b/$2/g" } convert PRInt8 int8_t convert PRUint8 uint8_t convert PRInt16 int16_t convert PRUint16 uint16_t convert PRInt32 int32_t convert PRUint32 uint32_t convert PRInt64 int64_t convert PRUint64 uint64_t convert PRIntn int convert PRUintn unsigned convert PRSize size_t convert PROffset32 int32_t convert PROffset64 int64_t convert PRPtrdiff ptrdiff_t convert PRFloat64 double
157 lines
4.2 KiB
C++
157 lines
4.2 KiB
C++
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* 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 "TestHarness.h"
|
|
|
|
#include "nsServiceManagerUtils.h"
|
|
#include "nsStringGlue.h"
|
|
#include "nsIDocumentEncoder.h"
|
|
#include "nsCRT.h"
|
|
#include "nsIParserUtils.h"
|
|
|
|
void
|
|
ConvertBufToPlainText(nsString &aConBuf, int aFlag)
|
|
{
|
|
nsCOMPtr<nsIParserUtils> utils =
|
|
do_GetService(NS_PARSERUTILS_CONTRACTID);
|
|
utils->ConvertToPlainText(aConBuf, aFlag, 72, aConBuf);
|
|
}
|
|
|
|
// Test for ASCII with format=flowed; delsp=yes
|
|
nsresult
|
|
TestASCIIWithFlowedDelSp()
|
|
{
|
|
nsString test;
|
|
nsString result;
|
|
|
|
test.AssignLiteral("<html><body>"
|
|
"Firefox Firefox Firefox Firefox "
|
|
"Firefox Firefox Firefox Firefox "
|
|
"Firefox Firefox Firefox Firefox"
|
|
"</body></html>");
|
|
|
|
ConvertBufToPlainText(test, nsIDocumentEncoder::OutputFormatted |
|
|
nsIDocumentEncoder::OutputCRLineBreak |
|
|
nsIDocumentEncoder::OutputLFLineBreak |
|
|
nsIDocumentEncoder::OutputFormatFlowed |
|
|
nsIDocumentEncoder::OutputFormatDelSp);
|
|
|
|
// create result case
|
|
result.AssignLiteral("Firefox Firefox Firefox Firefox "
|
|
"Firefox Firefox Firefox Firefox "
|
|
"Firefox \r\nFirefox Firefox Firefox\r\n");
|
|
|
|
if (!test.Equals(result)) {
|
|
fail("Wrong HTML to ASCII text serialization with format=flowed; delsp=yes");
|
|
return NS_ERROR_FAILURE;
|
|
}
|
|
|
|
passed("HTML to ASCII text serialization with format=flowed; delsp=yes");
|
|
|
|
return NS_OK;
|
|
}
|
|
|
|
// Test for CJK with format=flowed; delsp=yes
|
|
nsresult
|
|
TestCJKWithFlowedDelSp()
|
|
{
|
|
nsString test;
|
|
nsString result;
|
|
|
|
test.AssignLiteral("<html><body>");
|
|
for (uint32_t i = 0; i < 40; i++) {
|
|
// Insert Kanji (U+5341)
|
|
test.Append(0x5341);
|
|
}
|
|
test.AppendLiteral("</body></html>");
|
|
|
|
ConvertBufToPlainText(test, nsIDocumentEncoder::OutputFormatted |
|
|
nsIDocumentEncoder::OutputCRLineBreak |
|
|
nsIDocumentEncoder::OutputLFLineBreak |
|
|
nsIDocumentEncoder::OutputFormatFlowed |
|
|
nsIDocumentEncoder::OutputFormatDelSp);
|
|
|
|
// create result case
|
|
for (uint32_t i = 0; i < 36; i++) {
|
|
result.Append(0x5341);
|
|
}
|
|
result.Append(NS_LITERAL_STRING(" \r\n"));
|
|
for (uint32_t i = 0; i < 4; i++) {
|
|
result.Append(0x5341);
|
|
}
|
|
result.Append(NS_LITERAL_STRING("\r\n"));
|
|
|
|
if (!test.Equals(result)) {
|
|
fail("Wrong HTML to CJK text serialization with format=flowed; delsp=yes");
|
|
return NS_ERROR_FAILURE;
|
|
}
|
|
|
|
passed("HTML to CJK text serialization with format=flowed; delsp=yes");
|
|
|
|
return NS_OK;
|
|
}
|
|
|
|
nsresult
|
|
TestPrettyPrintedHtml()
|
|
{
|
|
nsString test;
|
|
test.AppendLiteral(
|
|
"<html>" NS_LINEBREAK
|
|
"<body>" NS_LINEBREAK
|
|
" first<br>" NS_LINEBREAK
|
|
" second<br>" NS_LINEBREAK
|
|
"</body>" NS_LINEBREAK "</html>");
|
|
|
|
ConvertBufToPlainText(test, 0);
|
|
if (!test.EqualsLiteral("first" NS_LINEBREAK "second" NS_LINEBREAK)) {
|
|
fail("Wrong prettyprinted html to text serialization");
|
|
return NS_ERROR_FAILURE;
|
|
}
|
|
|
|
passed("prettyprinted HTML to text serialization test");
|
|
return NS_OK;
|
|
}
|
|
|
|
nsresult
|
|
TestPlainTextSerializer()
|
|
{
|
|
nsString test;
|
|
test.AppendLiteral("<html><base>base</base><head><span>span</span></head>"
|
|
"<body>body</body></html>");
|
|
ConvertBufToPlainText(test, 0);
|
|
if (!test.EqualsLiteral("basespanbody")) {
|
|
fail("Wrong html to text serialization");
|
|
return NS_ERROR_FAILURE;
|
|
}
|
|
|
|
passed("HTML to text serialization test");
|
|
|
|
nsresult rv = TestASCIIWithFlowedDelSp();
|
|
NS_ENSURE_SUCCESS(rv, rv);
|
|
|
|
rv = TestCJKWithFlowedDelSp();
|
|
NS_ENSURE_SUCCESS(rv, rv);
|
|
|
|
rv = TestPrettyPrintedHtml();
|
|
NS_ENSURE_SUCCESS(rv, rv);
|
|
|
|
// Add new tests here...
|
|
return NS_OK;
|
|
}
|
|
|
|
int main(int argc, char** argv)
|
|
{
|
|
ScopedXPCOM xpcom("PlainTextSerializer");
|
|
if (xpcom.failed())
|
|
return 1;
|
|
|
|
int retval = 0;
|
|
if (NS_FAILED(TestPlainTextSerializer())) {
|
|
retval = 1;
|
|
}
|
|
|
|
return retval;
|
|
}
|