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

Side by Side Diff: net/url_request/url_request_file_dir_job_unittest.cc

Issue 2837543002: Test network annotation tags added to unittests in net/url_request. (Closed)
Patch Set: Created 3 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "net/url_request/url_request_file_dir_job.h" 5 #include "net/url_request/url_request_file_dir_job.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <string> 8 #include <string>
9 9
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
11 #include "base/files/file_util.h" 11 #include "base/files/file_util.h"
12 #include "base/files/scoped_temp_dir.h" 12 #include "base/files/scoped_temp_dir.h"
13 #include "base/macros.h" 13 #include "base/macros.h"
14 #include "base/memory/ref_counted.h" 14 #include "base/memory/ref_counted.h"
15 #include "base/message_loop/message_loop.h" 15 #include "base/message_loop/message_loop.h"
16 #include "base/run_loop.h" 16 #include "base/run_loop.h"
17 #include "base/test/scoped_task_scheduler.h" 17 #include "base/test/scoped_task_scheduler.h"
18 #include "net/base/filename_util.h" 18 #include "net/base/filename_util.h"
19 #include "net/base/io_buffer.h" 19 #include "net/base/io_buffer.h"
20 #include "net/base/net_errors.h" 20 #include "net/base/net_errors.h"
21 #include "net/test/gtest_util.h" 21 #include "net/test/gtest_util.h"
22 #include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
22 #include "net/url_request/url_request.h" 23 #include "net/url_request/url_request.h"
23 #include "net/url_request/url_request_test_util.h" 24 #include "net/url_request/url_request_test_util.h"
24 #include "testing/gmock/include/gmock/gmock.h" 25 #include "testing/gmock/include/gmock/gmock.h"
25 #include "testing/gtest/include/gtest/gtest.h" 26 #include "testing/gtest/include/gtest/gtest.h"
26 27
27 using net::test::IsError; 28 using net::test::IsError;
28 using net::test::IsOk; 29 using net::test::IsOk;
29 30
30 namespace net { 31 namespace net {
31 32
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 TEST_F(URLRequestFileDirTest, ListCompletionOnNoPending) { 109 TEST_F(URLRequestFileDirTest, ListCompletionOnNoPending) {
109 base::ScopedTempDir directory; 110 base::ScopedTempDir directory;
110 // It is necessary to pass an existing directory to UrlRequest object, 111 // It is necessary to pass an existing directory to UrlRequest object,
111 // but it will be deleted for testing purpose after request is started. 112 // but it will be deleted for testing purpose after request is started.
112 ASSERT_TRUE(directory.CreateUniqueTempDir()); 113 ASSERT_TRUE(directory.CreateUniqueTempDir());
113 TestJobFactory factory(directory.GetPath()); 114 TestJobFactory factory(directory.GetPath());
114 context_.set_job_factory(&factory); 115 context_.set_job_factory(&factory);
115 std::unique_ptr<URLRequest> request(context_.CreateRequest( 116 std::unique_ptr<URLRequest> request(context_.CreateRequest(
116 FilePathToFileURL( 117 FilePathToFileURL(
117 directory.GetPath().AppendASCII("this_path_does_not_exist")), 118 directory.GetPath().AppendASCII("this_path_does_not_exist")),
118 DEFAULT_PRIORITY, &delegate_)); 119 DEFAULT_PRIORITY, &delegate_, TRAFFIC_ANNOTATION_FOR_TESTS));
119 120
120 request->Start(); 121 request->Start();
121 ASSERT_TRUE(directory.Delete()); 122 ASSERT_TRUE(directory.Delete());
122 123
123 // Since the DirectoryLister is running on the network thread, this 124 // Since the DirectoryLister is running on the network thread, this
124 // will spin the message loop until the read error is returned to the 125 // will spin the message loop until the read error is returned to the
125 // URLRequestFileDirJob. 126 // URLRequestFileDirJob.
126 base::RunLoop().RunUntilIdle(); 127 base::RunLoop().RunUntilIdle();
127 ASSERT_TRUE(delegate_.got_response_started()); 128 ASSERT_TRUE(delegate_.got_response_started());
128 129
129 int bytes_read = request->Read(buffer_.get(), kBufferSize); 130 int bytes_read = request->Read(buffer_.get(), kBufferSize);
130 131
131 // The URLRequestFileDirJobShould return the cached read error synchronously. 132 // The URLRequestFileDirJobShould return the cached read error synchronously.
132 // If it's not returned synchronously, the code path this is intended to test 133 // If it's not returned synchronously, the code path this is intended to test
133 // was not executed. 134 // was not executed.
134 EXPECT_THAT(bytes_read, IsError(ERR_FILE_NOT_FOUND)); 135 EXPECT_THAT(bytes_read, IsError(ERR_FILE_NOT_FOUND));
135 } 136 }
136 137
137 // Test the case where reading the response completes synchronously. 138 // Test the case where reading the response completes synchronously.
138 TEST_F(URLRequestFileDirTest, DirectoryWithASingleFileSync) { 139 TEST_F(URLRequestFileDirTest, DirectoryWithASingleFileSync) {
139 base::ScopedTempDir directory; 140 base::ScopedTempDir directory;
140 ASSERT_TRUE(directory.CreateUniqueTempDir()); 141 ASSERT_TRUE(directory.CreateUniqueTempDir());
141 base::FilePath path; 142 base::FilePath path;
142 base::CreateTemporaryFileInDir(directory.GetPath(), &path); 143 base::CreateTemporaryFileInDir(directory.GetPath(), &path);
143 144
144 TestJobFactory factory(directory.GetPath()); 145 TestJobFactory factory(directory.GetPath());
145 context_.set_job_factory(&factory); 146 context_.set_job_factory(&factory);
146 147
147 std::unique_ptr<URLRequest> request(context_.CreateRequest( 148 std::unique_ptr<URLRequest> request(
148 FilePathToFileURL(path), DEFAULT_PRIORITY, &delegate_)); 149 context_.CreateRequest(FilePathToFileURL(path), DEFAULT_PRIORITY,
150 &delegate_, TRAFFIC_ANNOTATION_FOR_TESTS));
149 request->Start(); 151 request->Start();
150 EXPECT_TRUE(request->is_pending()); 152 EXPECT_TRUE(request->is_pending());
151 153
152 // Since the DirectoryLister is running on the network thread, this will spin 154 // Since the DirectoryLister is running on the network thread, this will spin
153 // the message loop until the URLRequetsFileDirJob has received the 155 // the message loop until the URLRequetsFileDirJob has received the
154 // entire directory listing and cached it. 156 // entire directory listing and cached it.
155 base::RunLoop().RunUntilIdle(); 157 base::RunLoop().RunUntilIdle();
156 158
157 // This will complete synchronously, since the URLRequetsFileDirJob had 159 // This will complete synchronously, since the URLRequetsFileDirJob had
158 // directory listing cached in memory. 160 // directory listing cached in memory.
(...skipping 11 matching lines...) Expand all
170 TEST_F(URLRequestFileDirTest, DirectoryWithASingleFileAsync) { 172 TEST_F(URLRequestFileDirTest, DirectoryWithASingleFileAsync) {
171 base::ScopedTempDir directory; 173 base::ScopedTempDir directory;
172 ASSERT_TRUE(directory.CreateUniqueTempDir()); 174 ASSERT_TRUE(directory.CreateUniqueTempDir());
173 base::FilePath path; 175 base::FilePath path;
174 base::CreateTemporaryFileInDir(directory.GetPath(), &path); 176 base::CreateTemporaryFileInDir(directory.GetPath(), &path);
175 177
176 TestJobFactory factory(directory.GetPath()); 178 TestJobFactory factory(directory.GetPath());
177 context_.set_job_factory(&factory); 179 context_.set_job_factory(&factory);
178 180
179 TestDelegate delegate; 181 TestDelegate delegate;
180 std::unique_ptr<URLRequest> request(context_.CreateRequest( 182 std::unique_ptr<URLRequest> request(
181 FilePathToFileURL(path), DEFAULT_PRIORITY, &delegate)); 183 context_.CreateRequest(FilePathToFileURL(path), DEFAULT_PRIORITY,
184 &delegate, TRAFFIC_ANNOTATION_FOR_TESTS));
182 request->Start(); 185 request->Start();
183 EXPECT_TRUE(request->is_pending()); 186 EXPECT_TRUE(request->is_pending());
184 187
185 base::RunLoop().Run(); 188 base::RunLoop().Run();
186 189
187 ASSERT_GT(delegate.bytes_received(), 0); 190 ASSERT_GT(delegate.bytes_received(), 0);
188 ASSERT_LE(delegate.bytes_received(), kBufferSize); 191 ASSERT_LE(delegate.bytes_received(), kBufferSize);
189 EXPECT_TRUE(delegate.data_received().find( 192 EXPECT_TRUE(delegate.data_received().find(
190 directory.GetPath().BaseName().MaybeAsASCII()) != 193 directory.GetPath().BaseName().MaybeAsASCII()) !=
191 std::string::npos); 194 std::string::npos);
(...skipping 10 matching lines...) Expand all
202 FILE_PATH_LITERAL("CreateNewSubDirectoryInDirectory"), 205 FILE_PATH_LITERAL("CreateNewSubDirectoryInDirectory"),
203 &sub_dir); 206 &sub_dir);
204 207
205 base::FilePath path; 208 base::FilePath path;
206 base::CreateTemporaryFileInDir(directory.GetPath(), &path); 209 base::CreateTemporaryFileInDir(directory.GetPath(), &path);
207 210
208 TestJobFactory factory(directory.GetPath()); 211 TestJobFactory factory(directory.GetPath());
209 context_.set_job_factory(&factory); 212 context_.set_job_factory(&factory);
210 213
211 TestDelegate delegate; 214 TestDelegate delegate;
212 std::unique_ptr<URLRequest> request(context_.CreateRequest( 215 std::unique_ptr<URLRequest> request(
213 FilePathToFileURL(path), DEFAULT_PRIORITY, &delegate)); 216 context_.CreateRequest(FilePathToFileURL(path), DEFAULT_PRIORITY,
217 &delegate, TRAFFIC_ANNOTATION_FOR_TESTS));
214 request->Start(); 218 request->Start();
215 EXPECT_TRUE(request->is_pending()); 219 EXPECT_TRUE(request->is_pending());
216 220
217 base::RunLoop().Run(); 221 base::RunLoop().Run();
218 222
219 ASSERT_GT(delegate.bytes_received(), 0); 223 ASSERT_GT(delegate.bytes_received(), 0);
220 ASSERT_LE(delegate.bytes_received(), kBufferSize); 224 ASSERT_LE(delegate.bytes_received(), kBufferSize);
221 EXPECT_TRUE(delegate.data_received().find( 225 EXPECT_TRUE(delegate.data_received().find(
222 directory.GetPath().BaseName().MaybeAsASCII()) != 226 directory.GetPath().BaseName().MaybeAsASCII()) !=
223 std::string::npos); 227 std::string::npos);
224 EXPECT_TRUE(delegate.data_received().find( 228 EXPECT_TRUE(delegate.data_received().find(
225 sub_dir.BaseName().MaybeAsASCII()) != std::string::npos); 229 sub_dir.BaseName().MaybeAsASCII()) != std::string::npos);
226 EXPECT_TRUE(delegate.data_received().find(path.BaseName().MaybeAsASCII()) != 230 EXPECT_TRUE(delegate.data_received().find(path.BaseName().MaybeAsASCII()) !=
227 std::string::npos); 231 std::string::npos);
228 } 232 }
229 233
230 TEST_F(URLRequestFileDirTest, EmptyDirectory) { 234 TEST_F(URLRequestFileDirTest, EmptyDirectory) {
231 base::ScopedTempDir directory; 235 base::ScopedTempDir directory;
232 ASSERT_TRUE(directory.CreateUniqueTempDir()); 236 ASSERT_TRUE(directory.CreateUniqueTempDir());
233 237
234 TestJobFactory factory(directory.GetPath()); 238 TestJobFactory factory(directory.GetPath());
235 context_.set_job_factory(&factory); 239 context_.set_job_factory(&factory);
236 240
237 TestDelegate delegate; 241 TestDelegate delegate;
238 std::unique_ptr<URLRequest> request(context_.CreateRequest( 242 std::unique_ptr<URLRequest> request(context_.CreateRequest(
239 FilePathToFileURL(directory.GetPath()), DEFAULT_PRIORITY, &delegate)); 243 FilePathToFileURL(directory.GetPath()), DEFAULT_PRIORITY, &delegate,
244 TRAFFIC_ANNOTATION_FOR_TESTS));
240 request->Start(); 245 request->Start();
241 EXPECT_TRUE(request->is_pending()); 246 EXPECT_TRUE(request->is_pending());
242 247
243 base::RunLoop().Run(); 248 base::RunLoop().Run();
244 249
245 ASSERT_GT(delegate.bytes_received(), 0); 250 ASSERT_GT(delegate.bytes_received(), 0);
246 ASSERT_LE(delegate.bytes_received(), kBufferSize); 251 ASSERT_LE(delegate.bytes_received(), kBufferSize);
247 EXPECT_TRUE(delegate.data_received().find( 252 EXPECT_TRUE(delegate.data_received().find(
248 directory.GetPath().BaseName().MaybeAsASCII()) != 253 directory.GetPath().BaseName().MaybeAsASCII()) !=
249 std::string::npos); 254 std::string::npos);
250 } 255 }
251 256
252 } // namespace 257 } // namespace
253 258
254 } // namespace net 259 } // namespace net
OLDNEW
« no previous file with comments | « net/url_request/url_request_context_builder_unittest.cc ('k') | net/url_request/url_request_file_job_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698