зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1583348 - Implement gTest for mozilla::dom::DOMParser::CreateWithoutGlobal(). r=bz
This commit is contained in:
Родитель
9fd9610780
Коммит
4c4181f772
|
@ -0,0 +1,54 @@
|
|||
/* -*- 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 "gtest/gtest.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsISupportsPrimitives.h"
|
||||
#include "nsString.h"
|
||||
#include "mozilla/dom/DOMParser.h"
|
||||
#include "mozilla/dom/Document.h"
|
||||
#include "nsIDocumentEncoder.h"
|
||||
#include "mozilla/ErrorResult.h"
|
||||
|
||||
// This is a test for mozilla::dom::DOMParser::CreateWithoutGlobal() which was
|
||||
// implemented for use in Thunderbird's MailNews module.
|
||||
|
||||
// int main(int argc, char** argv)
|
||||
TEST(TestParser, TestParserMain)
|
||||
{
|
||||
bool allTestsPassed = false;
|
||||
NS_NAMED_LITERAL_STRING(
|
||||
htmlInput,
|
||||
"<html><head>"
|
||||
"<meta http-equiv=\"content-type\" content=\"text/html; charset=\">"
|
||||
"</head><body>Hello <b>Thunderbird!</b></body></html>");
|
||||
|
||||
do {
|
||||
// Parse the HTML source.
|
||||
mozilla::IgnoredErrorResult rv2;
|
||||
RefPtr<mozilla::dom::DOMParser> parser =
|
||||
mozilla::dom::DOMParser::CreateWithoutGlobal(rv2);
|
||||
if (rv2.Failed()) break;
|
||||
nsCOMPtr<mozilla::dom::Document> document = parser->ParseFromString(
|
||||
htmlInput, mozilla::dom::SupportedType::Text_html, rv2);
|
||||
if (rv2.Failed()) break;
|
||||
|
||||
// Serialize it back to HTML source again.
|
||||
nsCOMPtr<nsIDocumentEncoder> encoder =
|
||||
do_createDocumentEncoder("text/html");
|
||||
if (!encoder) break;
|
||||
nsresult rv = encoder->Init(document, NS_LITERAL_STRING("text/html"),
|
||||
nsIDocumentEncoder::OutputRaw);
|
||||
if (NS_FAILED(rv)) break;
|
||||
nsString parsed;
|
||||
rv = encoder->EncodeToString(parsed);
|
||||
if (NS_FAILED(rv)) break;
|
||||
|
||||
EXPECT_TRUE(parsed.Equals(htmlInput));
|
||||
allTestsPassed = true;
|
||||
} while (false);
|
||||
|
||||
EXPECT_TRUE(allTestsPassed);
|
||||
}
|
|
@ -7,6 +7,7 @@
|
|||
UNIFIED_SOURCES += [
|
||||
'TestContentUtils.cpp',
|
||||
'TestMimeType.cpp',
|
||||
'TestParser.cpp',
|
||||
'TestPlainTextSerializer.cpp',
|
||||
'TestXPathGenerator.cpp',
|
||||
]
|
||||
|
|
Загрузка…
Ссылка в новой задаче