1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "components/test_runner/test_common.h"
7 namespace test_runner
{
11 const char layout_tests_pattern
[] = "/LayoutTests/";
12 const std::string::size_type layout_tests_pattern_size
=
13 sizeof(layout_tests_pattern
) - 1;
14 const char file_url_pattern
[] = "file:/";
15 const char file_test_prefix
[] = "(file test):";
16 const char data_url_pattern
[] = "data:";
17 const std::string::size_type data_url_pattern_size
=
18 sizeof(data_url_pattern
) - 1;
22 std::string
NormalizeLayoutTestURL(const std::string
& url
) {
23 std::string result
= url
;
25 if (!url
.find(file_url_pattern
) &&
26 ((pos
= url
.find(layout_tests_pattern
)) != std::string::npos
)) {
27 // adjust file URLs to match upstream results.
28 result
.replace(0, pos
+ layout_tests_pattern_size
, file_test_prefix
);
29 } else if (!url
.find(data_url_pattern
)) {
30 // URL-escape data URLs to match results upstream.
31 std::string path
= url
.substr(data_url_pattern_size
);
32 result
.replace(data_url_pattern_size
, url
.length(), path
);
37 } // namespace test_runner