From 3dcb97c78c77371c9493bd4550bed3e5e82361ba Mon Sep 17 00:00:00 2001 From: Nicholas Nethercote Date: Fri, 4 Nov 2016 14:36:23 +1100 Subject: [PATCH] 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 --- dom/base/test/TestGetURL.cpp | 87 --------- dom/base/test/TestNativeXMLHttpRequest.cpp | 100 ---------- .../test/gtest/TestNativeXMLHttpRequest.cpp | 58 ++++++ .../{ => gtest}/TestPlainTextSerializer.cpp | 173 ++++-------------- dom/base/test/gtest/moz.build | 2 + dom/base/test/moz.build | 6 - testing/cppunittest.ini | 5 - 7 files changed, 99 insertions(+), 332 deletions(-) delete mode 100644 dom/base/test/TestGetURL.cpp delete mode 100644 dom/base/test/TestNativeXMLHttpRequest.cpp create mode 100644 dom/base/test/gtest/TestNativeXMLHttpRequest.cpp rename dom/base/test/{ => gtest}/TestPlainTextSerializer.cpp (60%) diff --git a/dom/base/test/TestGetURL.cpp b/dom/base/test/TestGetURL.cpp deleted file mode 100644 index 824647c3bc07..000000000000 --- a/dom/base/test/TestGetURL.cpp +++ /dev/null @@ -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 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 secman = - do_GetService(NS_SCRIPTSECURITYMANAGER_CONTRACTID, &rv); - TEST_ENSURE_SUCCESS(rv, "Couldn't get script security manager!"); - - nsCOMPtr 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 \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; -} diff --git a/dom/base/test/TestNativeXMLHttpRequest.cpp b/dom/base/test/TestNativeXMLHttpRequest.cpp deleted file mode 100644 index 4d8fce65d11b..000000000000 --- a/dom/base/test/TestNativeXMLHttpRequest.cpp +++ /dev/null @@ -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 \ - "" - -#define TEST_URL \ - TEST_URL_PREFIX TEST_URL_CONTENT - -nsresult TestNativeXMLHttpRequest() -{ - nsresult rv; - - nsCOMPtr 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 secman = - do_GetService(NS_SCRIPTSECURITYMANAGER_CONTRACTID, &rv); - TEST_ENSURE_SUCCESS(rv, "Couldn't get script security manager!"); - - nsCOMPtr 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 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; -} diff --git a/dom/base/test/gtest/TestNativeXMLHttpRequest.cpp b/dom/base/test/gtest/TestNativeXMLHttpRequest.cpp new file mode 100644 index 000000000000..920d80e96243 --- /dev/null +++ b/dom/base/test/gtest/TestNativeXMLHttpRequest.cpp @@ -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 "" +#define TEST_URL TEST_URL_PREFIX TEST_URL_CONTENT + +TEST(NativeXMLHttpRequest, Test) +{ + nsresult rv; + + nsCOMPtr 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 secman = + do_GetService(NS_SCRIPTSECURITYMANAGER_CONTRACTID, &rv); + ASSERT_TRUE(NS_SUCCEEDED(rv)) << "Couldn't get script security manager"; + + nsCOMPtr 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 dom; + rv = xhr->GetResponseXML(getter_AddRefs(dom)); + ASSERT_TRUE(NS_SUCCEEDED(rv)) << "GetResponseXML failed"; + ASSERT_TRUE(dom) << "No DOM document constructed"; +} diff --git a/dom/base/test/TestPlainTextSerializer.cpp b/dom/base/test/gtest/TestPlainTextSerializer.cpp similarity index 60% rename from dom/base/test/TestPlainTextSerializer.cpp rename to dom/base/test/gtest/TestPlainTextSerializer.cpp index ba661a79593e..c293402096cf 100644 --- a/dom/base/test/TestPlainTextSerializer.cpp +++ b/dom/base/test/gtest/TestPlainTextSerializer.cpp @@ -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 utils = - do_GetService(NS_PARSERUTILS_CONTRACTID); + nsCOMPtr 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() "" NS_LINEBREAK ""); 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() "" NS_LINEBREAK ""); 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() "" NS_LINEBREAK ""); 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("basespan" "body"); 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; -} diff --git a/dom/base/test/gtest/moz.build b/dom/base/test/gtest/moz.build index e8e5f1c86aef..a211184e8611 100644 --- a/dom/base/test/gtest/moz.build +++ b/dom/base/test/gtest/moz.build @@ -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 += [ diff --git a/dom/base/test/moz.build b/dom/base/test/moz.build index 59938c573920..5e60632e47b8 100644 --- a/dom/base/test/moz.build +++ b/dom/base/test/moz.build @@ -9,12 +9,6 @@ XPCSHELL_TESTS_MANIFESTS += [ 'unit_ipc/xpcshell.ini', ] -GeckoCppUnitTests([ - 'TestGetURL', - 'TestNativeXMLHttpRequest', - 'TestPlainTextSerializer', -]) - MOCHITEST_MANIFESTS += [ 'mochitest.ini', 'websocket_hybi/mochitest.ini', diff --git a/testing/cppunittest.ini b/testing/cppunittest.ini index 35a0afa342f2..b3021ad1a508 100644 --- a/testing/cppunittest.ini +++ b/testing/cppunittest.ini @@ -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]