Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(179)

Side by Side Diff: content/shell/browser/layout_test/test_info_extractor.cc

Issue 1851933002: Convert //url to use std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: IWYU fixup 7 Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/shell/browser/layout_test/test_info_extractor.h" 5 #include "content/shell/browser/layout_test/test_info_extractor.h"
6 6
7 #include <iostream> 7 #include <iostream>
8 8
9 #include "base/base_paths.h" 9 #include "base/base_paths.h"
10 #include "base/files/file_util.h" 10 #include "base/files/file_util.h"
11 #include "base/memory/ptr_util.h"
11 #include "base/path_service.h" 12 #include "base/path_service.h"
12 #include "base/strings/sys_string_conversions.h" 13 #include "base/strings/sys_string_conversions.h"
13 #include "base/strings/utf_string_conversions.h" 14 #include "base/strings/utf_string_conversions.h"
14 #include "base/threading/thread_restrictions.h" 15 #include "base/threading/thread_restrictions.h"
15 #include "build/build_config.h" 16 #include "build/build_config.h"
16 #include "net/base/filename_util.h" 17 #include "net/base/filename_util.h"
17 18
18 namespace content { 19 namespace content {
19 20
20 namespace { 21 namespace {
(...skipping 13 matching lines...) Expand all
34 return false; 35 return false;
35 36
36 std::string test_location(kAndroidLayoutTestBase); 37 std::string test_location(kAndroidLayoutTestBase);
37 test_location.append(path_or_url.substr(strlen(kAndroidLayoutTestPath))); 38 test_location.append(path_or_url.substr(strlen(kAndroidLayoutTestPath)));
38 39
39 *url = GURL(test_location); 40 *url = GURL(test_location);
40 return true; 41 return true;
41 } 42 }
42 #endif // defined(OS_ANDROID) 43 #endif // defined(OS_ANDROID)
43 44
44 scoped_ptr<TestInfo> GetTestInfoFromLayoutTestName( 45 std::unique_ptr<TestInfo> GetTestInfoFromLayoutTestName(
45 const std::string& test_name) { 46 const std::string& test_name) {
46 // A test name is formated like file:///path/to/test'--pixel-test'pixelhash 47 // A test name is formated like file:///path/to/test'--pixel-test'pixelhash
47 std::string path_or_url = test_name; 48 std::string path_or_url = test_name;
48 std::string pixel_switch; 49 std::string pixel_switch;
49 std::string::size_type separator_position = path_or_url.find('\''); 50 std::string::size_type separator_position = path_or_url.find('\'');
50 if (separator_position != std::string::npos) { 51 if (separator_position != std::string::npos) {
51 pixel_switch = path_or_url.substr(separator_position + 1); 52 pixel_switch = path_or_url.substr(separator_position + 1);
52 path_or_url.erase(separator_position); 53 path_or_url.erase(separator_position);
53 } 54 }
54 separator_position = pixel_switch.find('\''); 55 separator_position = pixel_switch.find('\'');
55 std::string expected_pixel_hash; 56 std::string expected_pixel_hash;
56 if (separator_position != std::string::npos) { 57 if (separator_position != std::string::npos) {
57 expected_pixel_hash = pixel_switch.substr(separator_position + 1); 58 expected_pixel_hash = pixel_switch.substr(separator_position + 1);
58 pixel_switch.erase(separator_position); 59 pixel_switch.erase(separator_position);
59 } 60 }
60 const bool enable_pixel_dumping = 61 const bool enable_pixel_dumping =
61 (pixel_switch == "--pixel-test" || pixel_switch == "-p"); 62 (pixel_switch == "--pixel-test" || pixel_switch == "-p");
62 63
63 GURL test_url; 64 GURL test_url;
64 #if defined(OS_ANDROID) 65 #if defined(OS_ANDROID)
65 if (GetTestUrlForAndroid(path_or_url, &test_url)) { 66 if (GetTestUrlForAndroid(path_or_url, &test_url)) {
66 return make_scoped_ptr(new TestInfo(test_url, enable_pixel_dumping, 67 return base::WrapUnique(new TestInfo(
67 expected_pixel_hash, base::FilePath())); 68 test_url, enable_pixel_dumping, expected_pixel_hash, base::FilePath()));
68 } 69 }
69 #endif 70 #endif
70 71
71 test_url = GURL(path_or_url); 72 test_url = GURL(path_or_url);
72 if (!(test_url.is_valid() && test_url.has_scheme())) { 73 if (!(test_url.is_valid() && test_url.has_scheme())) {
73 // We're outside of the message loop here, and this is a test. 74 // We're outside of the message loop here, and this is a test.
74 base::ThreadRestrictions::ScopedAllowIO allow_io; 75 base::ThreadRestrictions::ScopedAllowIO allow_io;
75 #if defined(OS_WIN) 76 #if defined(OS_WIN)
76 base::FilePath::StringType wide_path_or_url = 77 base::FilePath::StringType wide_path_or_url =
77 base::SysNativeMBToWide(path_or_url); 78 base::SysNativeMBToWide(path_or_url);
(...skipping 13 matching lines...) Expand all
91 } 92 }
92 base::FilePath local_path; 93 base::FilePath local_path;
93 base::FilePath current_working_directory; 94 base::FilePath current_working_directory;
94 95
95 // We're outside of the message loop here, and this is a test. 96 // We're outside of the message loop here, and this is a test.
96 base::ThreadRestrictions::ScopedAllowIO allow_io; 97 base::ThreadRestrictions::ScopedAllowIO allow_io;
97 if (net::FileURLToFilePath(test_url, &local_path)) 98 if (net::FileURLToFilePath(test_url, &local_path))
98 current_working_directory = local_path.DirName(); 99 current_working_directory = local_path.DirName();
99 else 100 else
100 base::GetCurrentDirectory(&current_working_directory); 101 base::GetCurrentDirectory(&current_working_directory);
101 return make_scoped_ptr(new TestInfo(test_url, enable_pixel_dumping, 102 return base::WrapUnique(new TestInfo(test_url, enable_pixel_dumping,
102 expected_pixel_hash, 103 expected_pixel_hash,
103 current_working_directory)); 104 current_working_directory));
104 } 105 }
105 106
106 } // namespace 107 } // namespace
107 108
108 TestInfo::TestInfo(const GURL& url, 109 TestInfo::TestInfo(const GURL& url,
109 bool enable_pixel_dumping, 110 bool enable_pixel_dumping,
110 const std::string& expected_pixel_hash, 111 const std::string& expected_pixel_hash,
111 const base::FilePath& current_working_directory) 112 const base::FilePath& current_working_directory)
112 : url(url), 113 : url(url),
113 enable_pixel_dumping(enable_pixel_dumping), 114 enable_pixel_dumping(enable_pixel_dumping),
114 expected_pixel_hash(expected_pixel_hash), 115 expected_pixel_hash(expected_pixel_hash),
115 current_working_directory(current_working_directory) {} 116 current_working_directory(current_working_directory) {}
116 TestInfo::~TestInfo() {} 117 TestInfo::~TestInfo() {}
117 118
118 TestInfoExtractor::TestInfoExtractor( 119 TestInfoExtractor::TestInfoExtractor(
119 const base::CommandLine::StringVector& cmd_args) 120 const base::CommandLine::StringVector& cmd_args)
120 : cmdline_args_(cmd_args), cmdline_position_(0) {} 121 : cmdline_args_(cmd_args), cmdline_position_(0) {}
121 122
122 TestInfoExtractor::~TestInfoExtractor() {} 123 TestInfoExtractor::~TestInfoExtractor() {}
123 124
124 scoped_ptr<TestInfo> TestInfoExtractor::GetNextTest() { 125 std::unique_ptr<TestInfo> TestInfoExtractor::GetNextTest() {
125 if (cmdline_position_ >= cmdline_args_.size()) 126 if (cmdline_position_ >= cmdline_args_.size())
126 return nullptr; 127 return nullptr;
127 128
128 std::string test_string; 129 std::string test_string;
129 if (cmdline_args_[cmdline_position_] == FILE_PATH_LITERAL("-")) { 130 if (cmdline_args_[cmdline_position_] == FILE_PATH_LITERAL("-")) {
130 do { 131 do {
131 bool success = !!std::getline(std::cin, test_string, '\n'); 132 bool success = !!std::getline(std::cin, test_string, '\n');
132 if (!success) 133 if (!success)
133 return nullptr; 134 return nullptr;
134 } while (test_string.empty()); 135 } while (test_string.empty());
135 } else { 136 } else {
136 #if defined(OS_WIN) 137 #if defined(OS_WIN)
137 test_string = base::WideToUTF8(cmdline_args_[cmdline_position_++]); 138 test_string = base::WideToUTF8(cmdline_args_[cmdline_position_++]);
138 #else 139 #else
139 test_string = cmdline_args_[cmdline_position_++]; 140 test_string = cmdline_args_[cmdline_position_++];
140 #endif 141 #endif
141 } 142 }
142 143
143 DCHECK(!test_string.empty()); 144 DCHECK(!test_string.empty());
144 if (test_string == "QUIT") 145 if (test_string == "QUIT")
145 return nullptr; 146 return nullptr;
146 return GetTestInfoFromLayoutTestName(test_string); 147 return GetTestInfoFromLayoutTestName(test_string);
147 } 148 }
148 149
149 } // namespace content 150 } // namespace content
OLDNEW
« no previous file with comments | « content/shell/browser/layout_test/test_info_extractor.h ('k') | device/usb/webusb_descriptors.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698