Index: chrome/test/ui/ui_layout_test.cc |
diff --git a/chrome/test/ui/ui_layout_test.cc b/chrome/test/ui/ui_layout_test.cc |
index 699b7c6978b0723c88ecc69840d9a321f26e551b..c60c313737048a231dff516ead538eea1a9f5f22 100644 |
--- a/chrome/test/ui/ui_layout_test.cc |
+++ b/chrome/test/ui/ui_layout_test.cc |
@@ -43,29 +43,42 @@ UILayoutTest::~UILayoutTest() { |
} |
} |
+// Gets layout tests root. For the current git workflow, this is |
+// third_party/WebKit/LayoutTests |
+// On svn workflow (including build machines) and older git workflow, this is |
+// chrome/test/data/layout_tests/LayoutTests |
+// This function probes for the first and then fallbacks to the second. |
+static FilePath GetLayoutTestRoot() { |
+ FilePath src_root; |
+ PathService::Get(base::DIR_SOURCE_ROOT, &src_root); |
+ |
+ FilePath webkit_layout_tests = src_root; |
+ webkit_layout_tests = webkit_layout_tests.AppendASCII("third_party"); |
+ webkit_layout_tests = webkit_layout_tests.AppendASCII("WebKit"); |
+ webkit_layout_tests = webkit_layout_tests.AppendASCII("LayoutTests"); |
+ if (file_util::DirectoryExists(webkit_layout_tests)) |
+ return webkit_layout_tests; |
+ |
+ FilePath chrome_layout_tests = src_root; |
+ chrome_layout_tests = chrome_layout_tests.AppendASCII("chrome"); |
+ chrome_layout_tests = chrome_layout_tests.AppendASCII("test"); |
+ chrome_layout_tests = chrome_layout_tests.AppendASCII("data"); |
+ chrome_layout_tests = chrome_layout_tests.AppendASCII("layout_tests"); |
+ chrome_layout_tests = chrome_layout_tests.AppendASCII("LayoutTests"); |
+ return chrome_layout_tests; |
+} |
+ |
void UILayoutTest::InitializeForLayoutTest(const FilePath& test_parent_dir, |
const FilePath& test_case_dir, |
int port) { |
- FilePath src_dir; |
- PathService::Get(base::DIR_SOURCE_ROOT, &src_dir); |
- |
- src_dir = src_dir.AppendASCII("chrome"); |
- src_dir = src_dir.AppendASCII("test"); |
- src_dir = src_dir.AppendASCII("data"); |
- src_dir = src_dir.AppendASCII("layout_tests"); |
- src_dir = src_dir.AppendASCII("LayoutTests"); |
- |
- // Gets the file path to WebKit ui layout tests, that is, |
- // chrome/test/data/ui_tests/LayoutTests/... |
- // Note that we have to use our own copy of WebKit layout tests because our |
- // build machines do not have WebKit layout tests added. |
+ FilePath src_dir = GetLayoutTestRoot(); |
layout_test_dir_ = src_dir.Append(test_parent_dir); |
layout_test_dir_ = layout_test_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. |
- // chrome/test/data/layout_tests/LayoutTests/platform/chromium_***/... |
+ // $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); |
@@ -139,14 +152,7 @@ void UILayoutTest::InitializeForLayoutTest(const FilePath& test_parent_dir, |
void UILayoutTest::AddResourceForLayoutTest(const FilePath& parent_dir, |
const FilePath& resource_name) { |
- FilePath root_dir; |
- PathService::Get(base::DIR_SOURCE_ROOT, &root_dir); |
- |
- FilePath source = root_dir.AppendASCII("chrome"); |
- source = source.AppendASCII("test"); |
- source = source.AppendASCII("data"); |
- source = source.AppendASCII("layout_tests"); |
- source = source.AppendASCII("LayoutTests"); |
+ FilePath source = GetLayoutTestRoot(); |
source = source.Append(parent_dir); |
source = source.Append(resource_name); |