Index: content/test/layout_browsertest.cc |
diff --git a/content/test/layout_browsertest.cc b/content/test/layout_browsertest.cc |
deleted file mode 100644 |
index d6aeb25c35cb57c90ee8b10584494aee1a49fc13..0000000000000000000000000000000000000000 |
--- a/content/test/layout_browsertest.cc |
+++ /dev/null |
@@ -1,217 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "content/test/layout_browsertest.h" |
- |
-#include <sstream> |
- |
-#include "base/command_line.h" |
-#include "base/file_util.h" |
-#include "base/files/file_path.h" |
-#include "base/files/scoped_temp_dir.h" |
-#include "base/path_service.h" |
-#include "base/rand_util.h" |
-#include "base/run_loop.h" |
-#include "base/string_util.h" |
-#include "base/stringprintf.h" |
-#include "base/utf_string_conversions.h" |
-#include "content/browser/web_contents/web_contents_impl.h" |
-#include "content/public/common/content_paths.h" |
-#include "content/public/test/browser_test_utils.h" |
-#include "content/public/test/layouttest_support.h" |
-#include "content/shell/common/shell_switches.h" |
-#include "content/shell/shell.h" |
-#include "content/shell/webkit_test_controller.h" |
-#include "content/test/content_browser_test_utils.h" |
-#include "content/test/layout_test_http_server.h" |
-#include "net/base/net_util.h" |
- |
-#if defined(OS_WIN) |
-static const char kPlatformName[] = "chromium-win"; |
-#elif defined(OS_MACOSX) |
-static const char kPlatformName[] = "chromium-mac"; |
-#elif defined(OS_LINUX) |
-static const char kPlatformName[] = "chromium-linux"; |
-#elif defined(OS_OPENBSD) |
-static const char kPlatformName[] = "chromium-openbsd"; |
-#elif defined(OS_ANDROID) |
-static const char kPlatformName[] = "chromium-android"; |
-#else |
-#error No known OS defined |
-#endif |
- |
-namespace content { |
-namespace { |
- |
-bool ReadExpectedResult(const base::FilePath& result_dir_path, |
- const std::string test_case_file_name, |
- std::string* expected_result_value) { |
- base::FilePath expected_result_path(result_dir_path); |
- expected_result_path = expected_result_path.AppendASCII(test_case_file_name); |
- expected_result_path = expected_result_path.InsertBeforeExtension( |
- FILE_PATH_LITERAL("-expected")); |
- expected_result_path = |
- expected_result_path.ReplaceExtension(FILE_PATH_LITERAL("txt")); |
- return file_util::ReadFileToString( |
- expected_result_path, expected_result_value); |
-} |
- |
-} // namespace |
- |
-InProcessBrowserLayoutTest::InProcessBrowserLayoutTest( |
- const base::FilePath& test_parent_dir, const base::FilePath& test_case_dir) |
- : test_parent_dir_(test_parent_dir), test_case_dir_(test_case_dir), |
- port_(-2) { |
-} |
- |
-InProcessBrowserLayoutTest::InProcessBrowserLayoutTest( |
- const base::FilePath& test_parent_dir, |
- const base::FilePath& test_case_dir, |
- int port) |
- : test_parent_dir_(test_parent_dir), test_case_dir_(test_case_dir), |
- port_(port) { |
-} |
- |
-InProcessBrowserLayoutTest::~InProcessBrowserLayoutTest() { |
- if (test_http_server_) |
- CHECK(test_http_server_->Stop()); |
-} |
- |
-void InProcessBrowserLayoutTest::SetUpInProcessBrowserTestFixture() { |
- EnableBrowserLayoutTestMode(); |
- |
- base::FilePath src_dir; |
- ASSERT_TRUE(PathService::Get(DIR_LAYOUT_TESTS, &src_dir)); |
- base::FilePath absolute_parent_dir = src_dir.Append(test_parent_dir_); |
- ASSERT_TRUE(file_util::DirectoryExists(absolute_parent_dir)); |
- layout_test_dir_ = absolute_parent_dir.Append(test_case_dir_); |
- ASSERT_TRUE(file_util::DirectoryExists(layout_test_dir_)); |
- |
- // Gets the file path to rebased expected result directory for the current |
- // platform. |
- // $LayoutTestRoot/platform/chromium_***/... |
- rebase_result_dir_ = src_dir.AppendASCII("platform"); |
- rebase_result_dir_ = rebase_result_dir_.AppendASCII(kPlatformName); |
- rebase_result_dir_ = rebase_result_dir_.Append(test_parent_dir_); |
- rebase_result_dir_ = rebase_result_dir_.Append(test_case_dir_); |
- |
- // Generic chromium expected results. Not OS-specific. For example, |
- // v8-specific differences go here. |
- // chrome/test/data/layout_tests/LayoutTests/platform/chromium/... |
- rebase_result_chromium_dir_ = src_dir.AppendASCII("platform"). |
- AppendASCII("chromium"). |
- Append(test_parent_dir_). |
- Append(test_case_dir_); |
- |
- // Gets the file path to rebased expected result directory under the |
- // win32 platform. This is used by other non-win32 platform to use the same |
- // rebased expected results. |
-#if !defined(OS_WIN) |
- rebase_result_win_dir_ = src_dir.AppendASCII("platform"). |
- AppendASCII("chromium-win"). |
- Append(test_parent_dir_). |
- Append(test_case_dir_); |
-#endif |
- |
- if (port_ != -2) { |
- // Layout tests expect that the server points at the |
- // LayoutTests\http\tests directory. |
- if (port_ == -1) |
- port_ = base::RandInt(1024, 65535); |
- test_http_server_.reset(new LayoutTestHttpServer( |
- absolute_parent_dir, port_)); |
- ASSERT_TRUE(test_http_server_->Start()); |
- } |
-} |
- |
-void InProcessBrowserLayoutTest::SetUpCommandLine(CommandLine* command_line) { |
- command_line->AppendSwitch(switches::kDumpRenderTree); |
-} |
- |
-void InProcessBrowserLayoutTest::SetUpOnMainThread() { |
- test_controller_.reset(new WebKitTestController); |
-} |
- |
-void InProcessBrowserLayoutTest::RunLayoutTest( |
- const std::string& test_case_file_name) { |
- GURL url = net::FilePathToFileURL( |
- layout_test_dir_.AppendASCII(test_case_file_name)); |
- RunLayoutTestInternal(test_case_file_name, url); |
-} |
- |
-void InProcessBrowserLayoutTest::RunHttpLayoutTest( |
- const std::string& test_case_file_name) { |
- DCHECK(test_http_server_.get()); |
- GURL url(base::StringPrintf( |
- "http://127.0.0.1:%d/%s/%s", port_, test_case_dir_.MaybeAsASCII().c_str(), |
- test_case_file_name.c_str())); |
- RunLayoutTestInternal(test_case_file_name, url); |
-} |
- |
-void InProcessBrowserLayoutTest::RunLayoutTestInternal( |
- const std::string& test_case_file_name, const GURL& url) { |
- std::stringstream result; |
- scoped_ptr<WebKitTestResultPrinter> printer( |
- new WebKitTestResultPrinter(&result, NULL)); |
- printer->set_capture_text_only(true); |
- test_controller_->set_printer(printer.release()); |
- |
- LOG(INFO) << "Navigating to URL " << url << " and blocking."; |
- ASSERT_TRUE(test_controller_->PrepareForLayoutTest( |
- url, layout_test_dir_, false, std::string())); |
- base::RunLoop run_loop; |
- run_loop.Run(); |
- LOG(INFO) << "Navigation completed."; |
- ASSERT_TRUE(test_controller_->ResetAfterLayoutTest()); |
- |
- std::string actual_text = result.str();; |
- |
- std::string expected_text; |
- // Reads the expected result. First try to read from rebase directory. |
- // If failed, read from original directory. |
- if (!ReadExpectedResult(rebase_result_dir_, |
- test_case_file_name, |
- &expected_text) && |
- !ReadExpectedResult(rebase_result_chromium_dir_, |
- test_case_file_name, |
- &expected_text)) { |
- if (rebase_result_win_dir_.empty() || |
- !ReadExpectedResult(rebase_result_win_dir_, |
- test_case_file_name, |
- &expected_text)) |
- ReadExpectedResult(layout_test_dir_, |
- test_case_file_name, |
- &expected_text); |
- } |
- ASSERT_TRUE(!expected_text.empty()); |
- |
- CommandLine* command_line = CommandLine::ForCurrentProcess(); |
- if (command_line->HasSwitch(switches::kOutputLayoutTestDifferences)) { |
- EXPECT_EQ(expected_text, actual_text) << |
- SaveResults(expected_text, actual_text); |
- } else { |
- EXPECT_EQ(expected_text, actual_text); |
- } |
-} |
- |
-std::string InProcessBrowserLayoutTest::SaveResults(const std::string& expected, |
- const std::string& actual) { |
- base::FilePath cwd; |
- EXPECT_TRUE(file_util::CreateNewTempDirectory( |
- base::FilePath::StringType(), &cwd)); |
- base::FilePath expected_filename = |
- cwd.Append(FILE_PATH_LITERAL("expected.txt")); |
- base::FilePath actual_filename = cwd.Append(FILE_PATH_LITERAL("actual.txt")); |
- EXPECT_NE(-1, file_util::WriteFile(expected_filename, |
- expected.c_str(), |
- expected.size())); |
- EXPECT_NE(-1, file_util::WriteFile(actual_filename, |
- actual.c_str(), |
- actual.size())); |
- return base::StringPrintf("Wrote %"PRFilePath" %"PRFilePath, |
- expected_filename.value().c_str(), |
- actual_filename.value().c_str()); |
-} |
- |
-} // namespace content |