OLD | NEW |
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 "base/files/file_path.h" | 7 #include "base/files/file_path.h" |
8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
9 #include "chrome/browser/safe_browsing/local_two_phase_testserver.h" | 9 #include "chrome/browser/safe_browsing/local_two_phase_testserver.h" |
10 #include "content/public/test/test_browser_thread.h" | 10 #include "content/public/test/test_browser_thread.h" |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 | 76 |
77 scoped_refptr<net::TestURLRequestContextGetter> url_request_context_getter_; | 77 scoped_refptr<net::TestURLRequestContextGetter> url_request_context_getter_; |
78 }; | 78 }; |
79 | 79 |
80 TEST_F(TwoPhaseUploaderTest, UploadFile) { | 80 TEST_F(TwoPhaseUploaderTest, UploadFile) { |
81 scoped_refptr<MessageLoopRunner> runner = new MessageLoopRunner; | 81 scoped_refptr<MessageLoopRunner> runner = new MessageLoopRunner; |
82 LocalTwoPhaseTestServer test_server; | 82 LocalTwoPhaseTestServer test_server; |
83 ASSERT_TRUE(test_server.Start()); | 83 ASSERT_TRUE(test_server.Start()); |
84 Delegate delegate; | 84 Delegate delegate; |
85 scoped_ptr<TwoPhaseUploader> uploader(TwoPhaseUploader::Create( | 85 scoped_ptr<TwoPhaseUploader> uploader(TwoPhaseUploader::Create( |
86 url_request_context_getter_, | 86 url_request_context_getter_.get(), |
87 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB), | 87 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB), |
88 test_server.GetURL("start"), | 88 test_server.GetURL("start"), |
89 "metadata", | 89 "metadata", |
90 GetTestFilePath(), | 90 GetTestFilePath(), |
91 base::Bind(&Delegate::ProgressCallback, base::Unretained(&delegate)), | 91 base::Bind(&Delegate::ProgressCallback, base::Unretained(&delegate)), |
92 base::Bind(&Delegate::FinishCallback, base::Unretained(&delegate), | 92 base::Bind( |
93 runner))); | 93 &Delegate::FinishCallback, base::Unretained(&delegate), runner))); |
94 uploader->Start(); | 94 uploader->Start(); |
95 runner->Run(); | 95 runner->Run(); |
96 EXPECT_EQ(TwoPhaseUploader::STATE_SUCCESS, delegate.state_); | 96 EXPECT_EQ(TwoPhaseUploader::STATE_SUCCESS, delegate.state_); |
97 EXPECT_EQ(net::OK, delegate.net_error_); | 97 EXPECT_EQ(net::OK, delegate.net_error_); |
98 EXPECT_EQ(200, delegate.response_code_); | 98 EXPECT_EQ(200, delegate.response_code_); |
99 EXPECT_EQ( | 99 EXPECT_EQ( |
100 "/start\n" // path of start request | 100 "/start\n" // path of start request |
101 "4c24b2612e94e2ae622e54397663f2b7bf0a2e17\n" // sha1sum of "metadata" | 101 "4c24b2612e94e2ae622e54397663f2b7bf0a2e17\n" // sha1sum of "metadata" |
102 "944857cc626f2cafe232521986b4c6d3f9993c97\n", // sha1sum of test file | 102 "944857cc626f2cafe232521986b4c6d3f9993c97\n", // sha1sum of test file |
103 delegate.response_); | 103 delegate.response_); |
104 } | 104 } |
105 | 105 |
106 TEST_F(TwoPhaseUploaderTest, BadPhaseOneResponse) { | 106 TEST_F(TwoPhaseUploaderTest, BadPhaseOneResponse) { |
107 scoped_refptr<MessageLoopRunner> runner = new MessageLoopRunner; | 107 scoped_refptr<MessageLoopRunner> runner = new MessageLoopRunner; |
108 LocalTwoPhaseTestServer test_server; | 108 LocalTwoPhaseTestServer test_server; |
109 ASSERT_TRUE(test_server.Start()); | 109 ASSERT_TRUE(test_server.Start()); |
110 Delegate delegate; | 110 Delegate delegate; |
111 scoped_ptr<TwoPhaseUploader> uploader(TwoPhaseUploader::Create( | 111 scoped_ptr<TwoPhaseUploader> uploader(TwoPhaseUploader::Create( |
112 url_request_context_getter_, | 112 url_request_context_getter_.get(), |
113 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB), | 113 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB), |
114 test_server.GetURL("start?p1code=500"), | 114 test_server.GetURL("start?p1code=500"), |
115 "metadata", | 115 "metadata", |
116 GetTestFilePath(), | 116 GetTestFilePath(), |
117 base::Bind(&Delegate::ProgressCallback, base::Unretained(&delegate)), | 117 base::Bind(&Delegate::ProgressCallback, base::Unretained(&delegate)), |
118 base::Bind(&Delegate::FinishCallback, base::Unretained(&delegate), | 118 base::Bind( |
119 runner))); | 119 &Delegate::FinishCallback, base::Unretained(&delegate), runner))); |
120 uploader->Start(); | 120 uploader->Start(); |
121 runner->Run(); | 121 runner->Run(); |
122 EXPECT_EQ(TwoPhaseUploader::UPLOAD_METADATA, delegate.state_); | 122 EXPECT_EQ(TwoPhaseUploader::UPLOAD_METADATA, delegate.state_); |
123 EXPECT_EQ(net::OK, delegate.net_error_); | 123 EXPECT_EQ(net::OK, delegate.net_error_); |
124 EXPECT_EQ(500, delegate.response_code_); | 124 EXPECT_EQ(500, delegate.response_code_); |
125 EXPECT_EQ("", delegate.response_); | 125 EXPECT_EQ("", delegate.response_); |
126 } | 126 } |
127 | 127 |
128 TEST_F(TwoPhaseUploaderTest, BadPhaseTwoResponse) { | 128 TEST_F(TwoPhaseUploaderTest, BadPhaseTwoResponse) { |
129 scoped_refptr<MessageLoopRunner> runner = new MessageLoopRunner; | 129 scoped_refptr<MessageLoopRunner> runner = new MessageLoopRunner; |
130 LocalTwoPhaseTestServer test_server; | 130 LocalTwoPhaseTestServer test_server; |
131 ASSERT_TRUE(test_server.Start()); | 131 ASSERT_TRUE(test_server.Start()); |
132 Delegate delegate; | 132 Delegate delegate; |
133 scoped_ptr<TwoPhaseUploader> uploader(TwoPhaseUploader::Create( | 133 scoped_ptr<TwoPhaseUploader> uploader(TwoPhaseUploader::Create( |
134 url_request_context_getter_, | 134 url_request_context_getter_.get(), |
135 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB), | 135 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB), |
136 test_server.GetURL("start?p2code=500"), | 136 test_server.GetURL("start?p2code=500"), |
137 "metadata", | 137 "metadata", |
138 GetTestFilePath(), | 138 GetTestFilePath(), |
139 base::Bind(&Delegate::ProgressCallback, base::Unretained(&delegate)), | 139 base::Bind(&Delegate::ProgressCallback, base::Unretained(&delegate)), |
140 base::Bind(&Delegate::FinishCallback, base::Unretained(&delegate), | 140 base::Bind( |
141 runner))); | 141 &Delegate::FinishCallback, base::Unretained(&delegate), runner))); |
142 uploader->Start(); | 142 uploader->Start(); |
143 runner->Run(); | 143 runner->Run(); |
144 EXPECT_EQ(TwoPhaseUploader::UPLOAD_FILE, delegate.state_); | 144 EXPECT_EQ(TwoPhaseUploader::UPLOAD_FILE, delegate.state_); |
145 EXPECT_EQ(net::OK, delegate.net_error_); | 145 EXPECT_EQ(net::OK, delegate.net_error_); |
146 EXPECT_EQ(500, delegate.response_code_); | 146 EXPECT_EQ(500, delegate.response_code_); |
147 EXPECT_EQ( | 147 EXPECT_EQ( |
148 "/start\n" // path of start request | 148 "/start\n" // path of start request |
149 "4c24b2612e94e2ae622e54397663f2b7bf0a2e17\n" // sha1sum of "metadata" | 149 "4c24b2612e94e2ae622e54397663f2b7bf0a2e17\n" // sha1sum of "metadata" |
150 "944857cc626f2cafe232521986b4c6d3f9993c97\n", // sha1sum of test file | 150 "944857cc626f2cafe232521986b4c6d3f9993c97\n", // sha1sum of test file |
151 delegate.response_); | 151 delegate.response_); |
152 } | 152 } |
153 | 153 |
154 TEST_F(TwoPhaseUploaderTest, PhaseOneConnectionClosed) { | 154 TEST_F(TwoPhaseUploaderTest, PhaseOneConnectionClosed) { |
155 scoped_refptr<MessageLoopRunner> runner = new MessageLoopRunner; | 155 scoped_refptr<MessageLoopRunner> runner = new MessageLoopRunner; |
156 LocalTwoPhaseTestServer test_server; | 156 LocalTwoPhaseTestServer test_server; |
157 ASSERT_TRUE(test_server.Start()); | 157 ASSERT_TRUE(test_server.Start()); |
158 Delegate delegate; | 158 Delegate delegate; |
159 scoped_ptr<TwoPhaseUploader> uploader(TwoPhaseUploader::Create( | 159 scoped_ptr<TwoPhaseUploader> uploader(TwoPhaseUploader::Create( |
160 url_request_context_getter_, | 160 url_request_context_getter_.get(), |
161 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB), | 161 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB), |
162 test_server.GetURL("start?p1close=1"), | 162 test_server.GetURL("start?p1close=1"), |
163 "metadata", | 163 "metadata", |
164 GetTestFilePath(), | 164 GetTestFilePath(), |
165 base::Bind(&Delegate::ProgressCallback, base::Unretained(&delegate)), | 165 base::Bind(&Delegate::ProgressCallback, base::Unretained(&delegate)), |
166 base::Bind(&Delegate::FinishCallback, base::Unretained(&delegate), | 166 base::Bind( |
167 runner))); | 167 &Delegate::FinishCallback, base::Unretained(&delegate), runner))); |
168 uploader->Start(); | 168 uploader->Start(); |
169 runner->Run(); | 169 runner->Run(); |
170 EXPECT_EQ(TwoPhaseUploader::UPLOAD_METADATA, delegate.state_); | 170 EXPECT_EQ(TwoPhaseUploader::UPLOAD_METADATA, delegate.state_); |
171 EXPECT_EQ(net::ERR_EMPTY_RESPONSE, delegate.net_error_); | 171 EXPECT_EQ(net::ERR_EMPTY_RESPONSE, delegate.net_error_); |
172 EXPECT_EQ(net::URLFetcher::RESPONSE_CODE_INVALID, delegate.response_code_); | 172 EXPECT_EQ(net::URLFetcher::RESPONSE_CODE_INVALID, delegate.response_code_); |
173 EXPECT_EQ("", delegate.response_); | 173 EXPECT_EQ("", delegate.response_); |
174 } | 174 } |
175 | 175 |
176 TEST_F(TwoPhaseUploaderTest, PhaseTwoConnectionClosed) { | 176 TEST_F(TwoPhaseUploaderTest, PhaseTwoConnectionClosed) { |
177 scoped_refptr<MessageLoopRunner> runner = new MessageLoopRunner; | 177 scoped_refptr<MessageLoopRunner> runner = new MessageLoopRunner; |
178 LocalTwoPhaseTestServer test_server; | 178 LocalTwoPhaseTestServer test_server; |
179 ASSERT_TRUE(test_server.Start()); | 179 ASSERT_TRUE(test_server.Start()); |
180 Delegate delegate; | 180 Delegate delegate; |
181 scoped_ptr<TwoPhaseUploader> uploader(TwoPhaseUploader::Create( | 181 scoped_ptr<TwoPhaseUploader> uploader(TwoPhaseUploader::Create( |
182 url_request_context_getter_, | 182 url_request_context_getter_.get(), |
183 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB), | 183 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB), |
184 test_server.GetURL("start?p2close=1"), | 184 test_server.GetURL("start?p2close=1"), |
185 "metadata", | 185 "metadata", |
186 GetTestFilePath(), | 186 GetTestFilePath(), |
187 base::Bind(&Delegate::ProgressCallback, base::Unretained(&delegate)), | 187 base::Bind(&Delegate::ProgressCallback, base::Unretained(&delegate)), |
188 base::Bind(&Delegate::FinishCallback, base::Unretained(&delegate), | 188 base::Bind( |
189 runner))); | 189 &Delegate::FinishCallback, base::Unretained(&delegate), runner))); |
190 uploader->Start(); | 190 uploader->Start(); |
191 runner->Run(); | 191 runner->Run(); |
192 EXPECT_EQ(TwoPhaseUploader::UPLOAD_FILE, delegate.state_); | 192 EXPECT_EQ(TwoPhaseUploader::UPLOAD_FILE, delegate.state_); |
193 EXPECT_EQ(net::ERR_EMPTY_RESPONSE, delegate.net_error_); | 193 EXPECT_EQ(net::ERR_EMPTY_RESPONSE, delegate.net_error_); |
194 EXPECT_EQ(net::URLFetcher::RESPONSE_CODE_INVALID, delegate.response_code_); | 194 EXPECT_EQ(net::URLFetcher::RESPONSE_CODE_INVALID, delegate.response_code_); |
195 EXPECT_EQ("", delegate.response_); | 195 EXPECT_EQ("", delegate.response_); |
196 } | 196 } |
OLD | NEW |