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

Side by Side Diff: chrome/browser/safe_browsing/two_phase_uploader_unittest.cc

Issue 2697193003: Network traffic annotation added to safe_browsing (Closed)
Patch Set: Comments addressed. Created 3 years, 9 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
« no previous file with comments | « chrome/browser/safe_browsing/two_phase_uploader.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "chrome/browser/safe_browsing/two_phase_uploader.h" 5 #include "chrome/browser/safe_browsing/two_phase_uploader.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include "base/files/file_path.h" 9 #include "base/files/file_path.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
11 #include "chrome/browser/safe_browsing/local_two_phase_testserver.h" 11 #include "chrome/browser/safe_browsing/local_two_phase_testserver.h"
12 #include "content/public/test/test_browser_thread_bundle.h" 12 #include "content/public/test/test_browser_thread_bundle.h"
13 #include "content/public/test/test_utils.h" 13 #include "content/public/test/test_utils.h"
14 #include "net/base/net_errors.h" 14 #include "net/base/net_errors.h"
15 #include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
15 #include "net/url_request/url_fetcher.h" 16 #include "net/url_request/url_fetcher.h"
16 #include "net/url_request/url_request_test_util.h" 17 #include "net/url_request/url_request_test_util.h"
17 #include "testing/gtest/include/gtest/gtest.h" 18 #include "testing/gtest/include/gtest/gtest.h"
18 19
19 using content::BrowserThread; 20 using content::BrowserThread;
20 using content::MessageLoopRunner; 21 using content::MessageLoopRunner;
21 22
22 namespace safe_browsing { 23 namespace safe_browsing {
23 24
24 namespace { 25 namespace {
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 scoped_refptr<MessageLoopRunner> runner = new MessageLoopRunner; 78 scoped_refptr<MessageLoopRunner> runner = new MessageLoopRunner;
78 LocalTwoPhaseTestServer test_server; 79 LocalTwoPhaseTestServer test_server;
79 ASSERT_TRUE(test_server.Start()); 80 ASSERT_TRUE(test_server.Start());
80 Delegate delegate; 81 Delegate delegate;
81 std::unique_ptr<TwoPhaseUploader> uploader(TwoPhaseUploader::Create( 82 std::unique_ptr<TwoPhaseUploader> uploader(TwoPhaseUploader::Create(
82 url_request_context_getter_.get(), 83 url_request_context_getter_.get(),
83 BrowserThread::GetTaskRunnerForThread(BrowserThread::DB).get(), 84 BrowserThread::GetTaskRunnerForThread(BrowserThread::DB).get(),
84 test_server.GetURL("start"), "metadata", GetTestFilePath(), 85 test_server.GetURL("start"), "metadata", GetTestFilePath(),
85 base::Bind(&Delegate::ProgressCallback, base::Unretained(&delegate)), 86 base::Bind(&Delegate::ProgressCallback, base::Unretained(&delegate)),
86 base::Bind(&Delegate::FinishCallback, base::Unretained(&delegate), 87 base::Bind(&Delegate::FinishCallback, base::Unretained(&delegate),
87 runner))); 88 runner),
89 TRAFFIC_ANNOTATION_FOR_TESTS));
88 uploader->Start(); 90 uploader->Start();
89 runner->Run(); 91 runner->Run();
90 EXPECT_EQ(TwoPhaseUploader::STATE_SUCCESS, delegate.state_); 92 EXPECT_EQ(TwoPhaseUploader::STATE_SUCCESS, delegate.state_);
91 EXPECT_EQ(net::OK, delegate.net_error_); 93 EXPECT_EQ(net::OK, delegate.net_error_);
92 EXPECT_EQ(200, delegate.response_code_); 94 EXPECT_EQ(200, delegate.response_code_);
93 EXPECT_EQ( 95 EXPECT_EQ(
94 "/start\n" // path of start request 96 "/start\n" // path of start request
95 "4c24b2612e94e2ae622e54397663f2b7bf0a2e17\n" // sha1sum of "metadata" 97 "4c24b2612e94e2ae622e54397663f2b7bf0a2e17\n" // sha1sum of "metadata"
96 "944857cc626f2cafe232521986b4c6d3f9993c97\n", // sha1sum of test file 98 "944857cc626f2cafe232521986b4c6d3f9993c97\n", // sha1sum of test file
97 delegate.response_); 99 delegate.response_);
98 } 100 }
99 101
100 TEST_F(TwoPhaseUploaderTest, BadPhaseOneResponse) { 102 TEST_F(TwoPhaseUploaderTest, BadPhaseOneResponse) {
101 scoped_refptr<MessageLoopRunner> runner = new MessageLoopRunner; 103 scoped_refptr<MessageLoopRunner> runner = new MessageLoopRunner;
102 LocalTwoPhaseTestServer test_server; 104 LocalTwoPhaseTestServer test_server;
103 ASSERT_TRUE(test_server.Start()); 105 ASSERT_TRUE(test_server.Start());
104 Delegate delegate; 106 Delegate delegate;
105 std::unique_ptr<TwoPhaseUploader> uploader(TwoPhaseUploader::Create( 107 std::unique_ptr<TwoPhaseUploader> uploader(TwoPhaseUploader::Create(
106 url_request_context_getter_.get(), 108 url_request_context_getter_.get(),
107 BrowserThread::GetTaskRunnerForThread(BrowserThread::DB).get(), 109 BrowserThread::GetTaskRunnerForThread(BrowserThread::DB).get(),
108 test_server.GetURL("start?p1code=500"), "metadata", GetTestFilePath(), 110 test_server.GetURL("start?p1code=500"), "metadata", GetTestFilePath(),
109 base::Bind(&Delegate::ProgressCallback, base::Unretained(&delegate)), 111 base::Bind(&Delegate::ProgressCallback, base::Unretained(&delegate)),
110 base::Bind(&Delegate::FinishCallback, base::Unretained(&delegate), 112 base::Bind(&Delegate::FinishCallback, base::Unretained(&delegate),
111 runner))); 113 runner),
114 TRAFFIC_ANNOTATION_FOR_TESTS));
112 uploader->Start(); 115 uploader->Start();
113 runner->Run(); 116 runner->Run();
114 EXPECT_EQ(TwoPhaseUploader::UPLOAD_METADATA, delegate.state_); 117 EXPECT_EQ(TwoPhaseUploader::UPLOAD_METADATA, delegate.state_);
115 EXPECT_EQ(net::OK, delegate.net_error_); 118 EXPECT_EQ(net::OK, delegate.net_error_);
116 EXPECT_EQ(500, delegate.response_code_); 119 EXPECT_EQ(500, delegate.response_code_);
117 EXPECT_EQ("", delegate.response_); 120 EXPECT_EQ("", delegate.response_);
118 } 121 }
119 122
120 TEST_F(TwoPhaseUploaderTest, BadPhaseTwoResponse) { 123 TEST_F(TwoPhaseUploaderTest, BadPhaseTwoResponse) {
121 scoped_refptr<MessageLoopRunner> runner = new MessageLoopRunner; 124 scoped_refptr<MessageLoopRunner> runner = new MessageLoopRunner;
122 LocalTwoPhaseTestServer test_server; 125 LocalTwoPhaseTestServer test_server;
123 ASSERT_TRUE(test_server.Start()); 126 ASSERT_TRUE(test_server.Start());
124 Delegate delegate; 127 Delegate delegate;
125 std::unique_ptr<TwoPhaseUploader> uploader(TwoPhaseUploader::Create( 128 std::unique_ptr<TwoPhaseUploader> uploader(TwoPhaseUploader::Create(
126 url_request_context_getter_.get(), 129 url_request_context_getter_.get(),
127 BrowserThread::GetTaskRunnerForThread(BrowserThread::DB).get(), 130 BrowserThread::GetTaskRunnerForThread(BrowserThread::DB).get(),
128 test_server.GetURL("start?p2code=500"), "metadata", GetTestFilePath(), 131 test_server.GetURL("start?p2code=500"), "metadata", GetTestFilePath(),
129 base::Bind(&Delegate::ProgressCallback, base::Unretained(&delegate)), 132 base::Bind(&Delegate::ProgressCallback, base::Unretained(&delegate)),
130 base::Bind(&Delegate::FinishCallback, base::Unretained(&delegate), 133 base::Bind(&Delegate::FinishCallback, base::Unretained(&delegate),
131 runner))); 134 runner),
135 TRAFFIC_ANNOTATION_FOR_TESTS));
132 uploader->Start(); 136 uploader->Start();
133 runner->Run(); 137 runner->Run();
134 EXPECT_EQ(TwoPhaseUploader::UPLOAD_FILE, delegate.state_); 138 EXPECT_EQ(TwoPhaseUploader::UPLOAD_FILE, delegate.state_);
135 EXPECT_EQ(net::OK, delegate.net_error_); 139 EXPECT_EQ(net::OK, delegate.net_error_);
136 EXPECT_EQ(500, delegate.response_code_); 140 EXPECT_EQ(500, delegate.response_code_);
137 EXPECT_EQ( 141 EXPECT_EQ(
138 "/start\n" // path of start request 142 "/start\n" // path of start request
139 "4c24b2612e94e2ae622e54397663f2b7bf0a2e17\n" // sha1sum of "metadata" 143 "4c24b2612e94e2ae622e54397663f2b7bf0a2e17\n" // sha1sum of "metadata"
140 "944857cc626f2cafe232521986b4c6d3f9993c97\n", // sha1sum of test file 144 "944857cc626f2cafe232521986b4c6d3f9993c97\n", // sha1sum of test file
141 delegate.response_); 145 delegate.response_);
142 } 146 }
143 147
144 TEST_F(TwoPhaseUploaderTest, PhaseOneConnectionClosed) { 148 TEST_F(TwoPhaseUploaderTest, PhaseOneConnectionClosed) {
145 scoped_refptr<MessageLoopRunner> runner = new MessageLoopRunner; 149 scoped_refptr<MessageLoopRunner> runner = new MessageLoopRunner;
146 LocalTwoPhaseTestServer test_server; 150 LocalTwoPhaseTestServer test_server;
147 ASSERT_TRUE(test_server.Start()); 151 ASSERT_TRUE(test_server.Start());
148 Delegate delegate; 152 Delegate delegate;
149 std::unique_ptr<TwoPhaseUploader> uploader(TwoPhaseUploader::Create( 153 std::unique_ptr<TwoPhaseUploader> uploader(TwoPhaseUploader::Create(
150 url_request_context_getter_.get(), 154 url_request_context_getter_.get(),
151 BrowserThread::GetTaskRunnerForThread(BrowserThread::DB).get(), 155 BrowserThread::GetTaskRunnerForThread(BrowserThread::DB).get(),
152 test_server.GetURL("start?p1close=1"), "metadata", GetTestFilePath(), 156 test_server.GetURL("start?p1close=1"), "metadata", GetTestFilePath(),
153 base::Bind(&Delegate::ProgressCallback, base::Unretained(&delegate)), 157 base::Bind(&Delegate::ProgressCallback, base::Unretained(&delegate)),
154 base::Bind(&Delegate::FinishCallback, base::Unretained(&delegate), 158 base::Bind(&Delegate::FinishCallback, base::Unretained(&delegate),
155 runner))); 159 runner),
160 TRAFFIC_ANNOTATION_FOR_TESTS));
156 uploader->Start(); 161 uploader->Start();
157 runner->Run(); 162 runner->Run();
158 EXPECT_EQ(TwoPhaseUploader::UPLOAD_METADATA, delegate.state_); 163 EXPECT_EQ(TwoPhaseUploader::UPLOAD_METADATA, delegate.state_);
159 EXPECT_EQ(net::ERR_EMPTY_RESPONSE, delegate.net_error_); 164 EXPECT_EQ(net::ERR_EMPTY_RESPONSE, delegate.net_error_);
160 EXPECT_EQ(net::URLFetcher::RESPONSE_CODE_INVALID, delegate.response_code_); 165 EXPECT_EQ(net::URLFetcher::RESPONSE_CODE_INVALID, delegate.response_code_);
161 EXPECT_EQ("", delegate.response_); 166 EXPECT_EQ("", delegate.response_);
162 } 167 }
163 168
164 TEST_F(TwoPhaseUploaderTest, PhaseTwoConnectionClosed) { 169 TEST_F(TwoPhaseUploaderTest, PhaseTwoConnectionClosed) {
165 scoped_refptr<MessageLoopRunner> runner = new MessageLoopRunner; 170 scoped_refptr<MessageLoopRunner> runner = new MessageLoopRunner;
166 LocalTwoPhaseTestServer test_server; 171 LocalTwoPhaseTestServer test_server;
167 ASSERT_TRUE(test_server.Start()); 172 ASSERT_TRUE(test_server.Start());
168 Delegate delegate; 173 Delegate delegate;
169 std::unique_ptr<TwoPhaseUploader> uploader(TwoPhaseUploader::Create( 174 std::unique_ptr<TwoPhaseUploader> uploader(TwoPhaseUploader::Create(
170 url_request_context_getter_.get(), 175 url_request_context_getter_.get(),
171 BrowserThread::GetTaskRunnerForThread(BrowserThread::DB).get(), 176 BrowserThread::GetTaskRunnerForThread(BrowserThread::DB).get(),
172 test_server.GetURL("start?p2close=1"), "metadata", GetTestFilePath(), 177 test_server.GetURL("start?p2close=1"), "metadata", GetTestFilePath(),
173 base::Bind(&Delegate::ProgressCallback, base::Unretained(&delegate)), 178 base::Bind(&Delegate::ProgressCallback, base::Unretained(&delegate)),
174 base::Bind(&Delegate::FinishCallback, base::Unretained(&delegate), 179 base::Bind(&Delegate::FinishCallback, base::Unretained(&delegate),
175 runner))); 180 runner),
181 TRAFFIC_ANNOTATION_FOR_TESTS));
176 uploader->Start(); 182 uploader->Start();
177 runner->Run(); 183 runner->Run();
178 EXPECT_EQ(TwoPhaseUploader::UPLOAD_FILE, delegate.state_); 184 EXPECT_EQ(TwoPhaseUploader::UPLOAD_FILE, delegate.state_);
179 EXPECT_EQ(net::ERR_EMPTY_RESPONSE, delegate.net_error_); 185 EXPECT_EQ(net::ERR_EMPTY_RESPONSE, delegate.net_error_);
180 EXPECT_EQ(net::URLFetcher::RESPONSE_CODE_INVALID, delegate.response_code_); 186 EXPECT_EQ(net::URLFetcher::RESPONSE_CODE_INVALID, delegate.response_code_);
181 EXPECT_EQ("", delegate.response_); 187 EXPECT_EQ("", delegate.response_);
182 } 188 }
183 189
184 } // namespace safe_browsing 190 } // namespace safe_browsing
OLDNEW
« no previous file with comments | « chrome/browser/safe_browsing/two_phase_uploader.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698