Bug 1314827 (attempt 2) - gtestify dom/base/test/*.cpp. r=baku.

--HG--
rename : dom/base/test/TestNativeXMLHttpRequest.cpp => dom/base/test/gtest/TestNativeXMLHttpRequest.cpp
rename : dom/base/test/TestPlainTextSerializer.cpp => dom/base/test/gtest/TestPlainTextSerializer.cpp
This commit is contained in:
Nicholas Nethercote 2016-11-04 14:36:23 +11:00
parent d087a35e38
commit 3dcb97c78c
7 changed files with 99 additions and 332 deletions

View File

@ -1,87 +0,0 @@
/* -*- 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 "TestHarness.h"
#include "nsIPrincipal.h"
#include "nsIScriptSecurityManager.h"
#include "nsIXMLHttpRequest.h"
#define TEST_ENSURE_BASE(_test, _msg) \
PR_BEGIN_MACRO \
if (_test) { \
fail(_msg); \
return NS_ERROR_FAILURE; \
} \
PR_END_MACRO
#define TEST_ENSURE_SUCCESS(_rv, _msg) \
TEST_ENSURE_BASE(NS_FAILED(_rv), _msg)
#define TEST_ENSURE_FAILED(_rv, _msg) \
TEST_ENSURE_BASE(NS_SUCCEEDED(_rv), _msg)
nsresult TestGetURL(const nsCString& aURL)
{
nsresult rv;
nsCOMPtr<nsIXMLHttpRequest> xhr =
do_CreateInstance(NS_XMLHTTPREQUEST_CONTRACTID, &rv);
TEST_ENSURE_SUCCESS(rv, "Couldn't create nsIXMLHttpRequest instance!");
NS_NAMED_LITERAL_CSTRING(getString, "GET");
const nsAString& empty = EmptyString();
nsCOMPtr<nsIScriptSecurityManager> secman =
do_GetService(NS_SCRIPTSECURITYMANAGER_CONTRACTID, &rv);
TEST_ENSURE_SUCCESS(rv, "Couldn't get script security manager!");
nsCOMPtr<nsIPrincipal> systemPrincipal;
rv = secman->GetSystemPrincipal(getter_AddRefs(systemPrincipal));
TEST_ENSURE_SUCCESS(rv, "Couldn't get system principal!");
rv = xhr->Init(systemPrincipal, nullptr, nullptr, nullptr);
TEST_ENSURE_SUCCESS(rv, "Couldn't initialize the XHR!");
rv = xhr->Open(getString, aURL, false, empty, empty);
TEST_ENSURE_SUCCESS(rv, "OpenRequest failed!");
rv = xhr->Send(nullptr);
TEST_ENSURE_SUCCESS(rv, "Send failed!");
nsAutoString response;
rv = xhr->GetResponseText(response);
TEST_ENSURE_SUCCESS(rv, "GetResponse failed!");
nsAutoCString responseUTF8 = NS_ConvertUTF16toUTF8(response);
printf("#BEGIN\n");
printf("%s", responseUTF8.get());
printf("\n#EOF\n");
return NS_OK;
}
int main(int argc, char** argv)
{
if (argc < 2) {
printf("Usage: TestGetURL <url>\n");
exit(0);
}
ScopedXPCOM xpcom("XMLHttpRequest");
if (xpcom.failed())
return 1;
nsAutoCString targetURL(argv[1]);
int retval = 0;
if (NS_FAILED(TestGetURL(targetURL))) {
retval = 1;
}
return retval;
}

View File

@ -1,100 +0,0 @@
/* -*- 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 "TestHarness.h"
#include "nsIDOMDocument.h"
#include "nsIPrincipal.h"
#include "nsIScriptSecurityManager.h"
#include "nsIXMLHttpRequest.h"
#define TEST_ENSURE_BASE(_test, _msg) \
PR_BEGIN_MACRO \
if (_test) { \
fail(_msg); \
return NS_ERROR_FAILURE; \
} \
PR_END_MACRO
#define TEST_ENSURE_SUCCESS(_rv, _msg) \
TEST_ENSURE_BASE(NS_FAILED(_rv), _msg)
#define TEST_ENSURE_FAILED(_rv, _msg) \
TEST_ENSURE_BASE(NS_SUCCEEDED(_rv), _msg)
#define TEST_URL_PREFIX \
"data:text/xml,"
#define TEST_URL_CONTENT \
"<foo><bar></bar></foo>"
#define TEST_URL \
TEST_URL_PREFIX TEST_URL_CONTENT
nsresult TestNativeXMLHttpRequest()
{
nsresult rv;
nsCOMPtr<nsIXMLHttpRequest> xhr =
do_CreateInstance(NS_XMLHTTPREQUEST_CONTRACTID, &rv);
TEST_ENSURE_SUCCESS(rv, "Couldn't create nsIXMLHttpRequest instance!");
NS_NAMED_LITERAL_CSTRING(getString, "GET");
NS_NAMED_LITERAL_CSTRING(testURL, TEST_URL);
const nsAString& empty = EmptyString();
nsCOMPtr<nsIScriptSecurityManager> secman =
do_GetService(NS_SCRIPTSECURITYMANAGER_CONTRACTID, &rv);
TEST_ENSURE_SUCCESS(rv, "Couldn't get script security manager!");
nsCOMPtr<nsIPrincipal> systemPrincipal;
rv = secman->GetSystemPrincipal(getter_AddRefs(systemPrincipal));
TEST_ENSURE_SUCCESS(rv, "Couldn't get system principal!");
rv = xhr->Init(systemPrincipal, nullptr, nullptr, nullptr);
TEST_ENSURE_SUCCESS(rv, "Couldn't initialize the XHR!");
rv = xhr->Open(getString, testURL, false, empty, empty);
TEST_ENSURE_SUCCESS(rv, "Open failed!");
rv = xhr->Send(nullptr);
TEST_ENSURE_SUCCESS(rv, "Send failed!");
nsAutoString response;
rv = xhr->GetResponseText(response);
TEST_ENSURE_SUCCESS(rv, "GetResponse failed!");
if (!response.EqualsLiteral(TEST_URL_CONTENT)) {
fail("Response text does not match!");
return NS_ERROR_FAILURE;
}
nsCOMPtr<nsIDOMDocument> dom;
rv = xhr->GetResponseXML(getter_AddRefs(dom));
TEST_ENSURE_SUCCESS(rv, "GetResponseXML failed!");
if (!dom) {
fail("No DOM document constructed!");
return NS_ERROR_FAILURE;
}
passed("Native XMLHttpRequest");
return NS_OK;
}
int main(int argc, char** argv)
{
ScopedXPCOM xpcom("XMLHttpRequest");
if (xpcom.failed())
return 1;
int retval = 0;
if (NS_FAILED(TestNativeXMLHttpRequest())) {
retval = 1;
}
return retval;
}

View File

@ -0,0 +1,58 @@
/* -*- 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 "gtest/gtest.h"
#include "nsContentUtils.h"
#include "nsIDOMDocument.h"
#include "nsIPrincipal.h"
#include "nsIScriptSecurityManager.h"
#include "nsIXMLHttpRequest.h"
#define TEST_URL_PREFIX "data:text/xml,"
#define TEST_URL_CONTENT "<foo><bar></bar></foo>"
#define TEST_URL TEST_URL_PREFIX TEST_URL_CONTENT
TEST(NativeXMLHttpRequest, Test)
{
nsresult rv;
nsCOMPtr<nsIXMLHttpRequest> xhr =
do_CreateInstance(NS_XMLHTTPREQUEST_CONTRACTID, &rv);
ASSERT_TRUE(NS_SUCCEEDED(rv)) << "Couldn't create nsIXMLHttpRequest instance";
NS_NAMED_LITERAL_CSTRING(getString, "GET");
NS_NAMED_LITERAL_CSTRING(testURL, TEST_URL);
const nsAString& empty = EmptyString();
nsCOMPtr<nsIScriptSecurityManager> secman =
do_GetService(NS_SCRIPTSECURITYMANAGER_CONTRACTID, &rv);
ASSERT_TRUE(NS_SUCCEEDED(rv)) << "Couldn't get script security manager";
nsCOMPtr<nsIPrincipal> systemPrincipal;
rv = secman->GetSystemPrincipal(getter_AddRefs(systemPrincipal));
ASSERT_TRUE(NS_SUCCEEDED(rv)) << "Couldn't get system principal";
rv = xhr->Init(systemPrincipal, nullptr, nullptr, nullptr);
ASSERT_TRUE(NS_SUCCEEDED(rv)) << "Couldn't initialize the XHR";
rv = xhr->Open(getString, testURL, false, empty, empty);
ASSERT_TRUE(NS_SUCCEEDED(rv)) << "Open failed";
rv = xhr->Send(nullptr);
ASSERT_TRUE(NS_SUCCEEDED(rv)) << "Send failed";
nsAutoString response;
rv = xhr->GetResponseText(response);
ASSERT_TRUE(NS_SUCCEEDED(rv)) << "GetResponse failed";
ASSERT_TRUE(response.EqualsLiteral(TEST_URL_CONTENT)) <<
"Response text does not match";
nsCOMPtr<nsIDOMDocument> dom;
rv = xhr->GetResponseXML(getter_AddRefs(dom));
ASSERT_TRUE(NS_SUCCEEDED(rv)) << "GetResponseXML failed";
ASSERT_TRUE(dom) << "No DOM document constructed";
}

View File

@ -4,7 +4,7 @@
* 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 "gtest/gtest.h"
#include "nsServiceManagerUtils.h"
#include "nsStringGlue.h"
@ -15,14 +15,12 @@
void
ConvertBufToPlainText(nsString &aConBuf, int aFlag)
{
nsCOMPtr<nsIParserUtils> utils =
do_GetService(NS_PARSERUTILS_CONTRACTID);
nsCOMPtr<nsIParserUtils> utils = do_GetService(NS_PARSERUTILS_CONTRACTID);
utils->ConvertToPlainText(aConBuf, aFlag, 72, aConBuf);
}
// Test for ASCII with format=flowed; delsp=yes
nsresult
TestASCIIWithFlowedDelSp()
TEST(PlainTextSerializer, ASCIIWithFlowedDelSp)
{
nsString test;
nsString result;
@ -44,19 +42,12 @@ TestASCIIWithFlowedDelSp()
"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;
ASSERT_TRUE(test.Equals(result)) <<
"Wrong HTML to ASCII text serialization with format=flowed; delsp=yes";
}
// Test for CJK with format=flowed; delsp=yes
nsresult
TestCJKWithFlowedDelSp()
TEST(PlainTextSerializer, CJKWithFlowedDelSp)
{
nsString test;
nsString result;
@ -84,19 +75,12 @@ TestCJKWithFlowedDelSp()
}
result.AppendLiteral("\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;
ASSERT_TRUE(test.Equals(result)) <<
"Wrong HTML to CJK text serialization with format=flowed; delsp=yes";
}
// Test for CJK with DisallowLineBreaking
nsresult
TestCJKWithDisallowLineBreaking()
TEST(PlainTextSerializer, CJKWithDisallowLineBreaking)
{
nsString test;
nsString result;
@ -120,19 +104,12 @@ TestCJKWithDisallowLineBreaking()
}
result.AppendLiteral("\r\n");
if (!test.Equals(result)) {
fail("Wrong HTML to CJK text serialization with OutputDisallowLineBreaking");
return NS_ERROR_FAILURE;
}
passed("HTML to CJK text serialization with OutputDisallowLineBreaking");
return NS_OK;
ASSERT_TRUE(test.Equals(result)) <<
"Wrong HTML to CJK text serialization with OutputDisallowLineBreaking";
}
// Test for ASCII with format=flowed; and quoted lines in preformatted span.
nsresult
TestPreformatFlowedQuotes()
TEST(PlainTextSerializer, PreformatFlowedQuotes)
{
nsString test;
nsString result;
@ -157,18 +134,13 @@ TestPreformatFlowedQuotes()
">\r\n"
">> Firefox Firefox Firefox Firefox \r\n"
">> Firefox Firefox Firefox Firefox\r\n");
if (!test.Equals(result)) {
fail("Wrong HTML to ASCII text serialization with format=flowed; and quoted lines");
return NS_ERROR_FAILURE;
}
passed("HTML to ASCII text serialization with format=flowed; and quoted lines");
return NS_OK;
ASSERT_TRUE(test.Equals(result)) <<
"Wrong HTML to ASCII text serialization with format=flowed; and quoted "
"lines";
}
nsresult
TestPrettyPrintedHtml()
TEST(PlainTextSerializer, PrettyPrintedHtml)
{
nsString test;
test.AppendLiteral(
@ -179,17 +151,11 @@ TestPrettyPrintedHtml()
"</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;
ASSERT_TRUE(test.EqualsLiteral("first" NS_LINEBREAK "second" NS_LINEBREAK)) <<
"Wrong prettyprinted html to text serialization";
}
nsresult
TestPreElement()
TEST(PlainTextSerializer, PreElement)
{
nsString test;
test.AppendLiteral(
@ -202,17 +168,12 @@ TestPreElement()
"</body>" NS_LINEBREAK "</html>");
ConvertBufToPlainText(test, 0);
if (!test.EqualsLiteral(" first" NS_LINEBREAK " second" NS_LINEBREAK NS_LINEBREAK)) {
fail("Wrong prettyprinted html to text serialization");
return NS_ERROR_FAILURE;
}
passed("prettyprinted HTML to text serialization test");
return NS_OK;
ASSERT_TRUE(test.EqualsLiteral(" first" NS_LINEBREAK
" second" NS_LINEBREAK NS_LINEBREAK)) <<
"Wrong prettyprinted html to text serialization";
}
nsresult
TestBlockElement()
TEST(PlainTextSerializer, BlockElement)
{
nsString test;
test.AppendLiteral(
@ -227,17 +188,11 @@ TestBlockElement()
"</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;
ASSERT_TRUE(test.EqualsLiteral("first" NS_LINEBREAK "second" NS_LINEBREAK)) <<
"Wrong prettyprinted html to text serialization";
}
nsresult
TestPreWrapElementForThunderbird()
TEST(PlainTextSerializer, PreWrapElementForThunderbird)
{
// This test examines the magic pre-wrap setup that Thunderbird relies on.
nsString test;
@ -252,75 +207,25 @@ TestPreWrapElementForThunderbird()
ConvertBufToPlainText(test, nsIDocumentEncoder::OutputWrap);
// "\n\n first\nline is\ntoo long\n second\nline is\neven\nloooonger\n\n\n"
if (!test.EqualsLiteral(NS_LINEBREAK NS_LINEBREAK
" first" NS_LINEBREAK
"line is" NS_LINEBREAK
"too long" NS_LINEBREAK
" second" NS_LINEBREAK
"line is" NS_LINEBREAK
"even" NS_LINEBREAK
"loooonger" NS_LINEBREAK
NS_LINEBREAK NS_LINEBREAK)) {
fail("Wrong prettyprinted html to text serialization");
return NS_ERROR_FAILURE;
}
passed("prettyprinted HTML to text serialization test");
return NS_OK;
ASSERT_TRUE(test.EqualsLiteral(NS_LINEBREAK NS_LINEBREAK
" first" NS_LINEBREAK
"line is" NS_LINEBREAK
"too long" NS_LINEBREAK
" second" NS_LINEBREAK
"line is" NS_LINEBREAK
"even" NS_LINEBREAK
"loooonger" NS_LINEBREAK
NS_LINEBREAK NS_LINEBREAK)) <<
"Wrong prettyprinted html to text serialization";
}
nsresult
TestPlainTextSerializer()
TEST(PlainTextSerializer, Simple)
{
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);
rv = TestPreElement();
NS_ENSURE_SUCCESS(rv, rv);
rv = TestBlockElement();
NS_ENSURE_SUCCESS(rv, rv);
rv = TestPreWrapElementForThunderbird();
NS_ENSURE_SUCCESS(rv, rv);
rv = TestCJKWithDisallowLineBreaking();
NS_ENSURE_SUCCESS(rv, rv);
rv = TestPreformatFlowedQuotes();
NS_ENSURE_SUCCESS(rv, rv);
// Add new tests here...
return NS_OK;
ASSERT_TRUE(test.EqualsLiteral("basespanbody")) <<
"Wrong html to text serialization";
}
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;
}

View File

@ -5,7 +5,9 @@
# file, you can obtain one at http://mozilla.org/MPL/2.0/.
UNIFIED_SOURCES += [
'TestNativeXMLHttpRequest.cpp',
'TestParserDialogOptions.cpp',
'TestPlainTextSerializer.cpp',
]
LOCAL_INCLUDES += [

View File

@ -9,12 +9,6 @@ XPCSHELL_TESTS_MANIFESTS += [
'unit_ipc/xpcshell.ini',
]
GeckoCppUnitTests([
'TestGetURL',
'TestNativeXMLHttpRequest',
'TestPlainTextSerializer',
])
MOCHITEST_MANIFESTS += [
'mochitest.ini',
'websocket_hybi/mochitest.ini',

View File

@ -32,7 +32,6 @@ skip-if = os != 'win'
[TestFastBernoulliTrial]
[TestFloatingPoint]
[TestFunction]
[TestGetURL]
[TestIntegerPrintfMacros]
[TestIntegerRange]
[TestIsCertBuiltInRoot]
@ -43,15 +42,11 @@ skip-if = os != 'win'
[TestMacroForEach]
[TestMathAlgorithms]
[TestMaybe]
[TestNativeXMLHttpRequest]
skip-if = os == 'b2g' || os == 'android' #Bug 919642
[TestNtPathToDosPath]
skip-if = os != 'win'
[TestPLDHash]
skip-if = os == 'b2g' #Bug 1038197
[TestPair]
[TestPlainTextSerializer]
skip-if = os == 'b2g' || os == 'android' #Bug 919599
[TestPoisonArea]
skip-if = os == 'android' # Bug 1147630
[TestRefPtr]