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/ui/app_list/search/webstore/webstore_provider.h" | 5 #include "chrome/browser/ui/app_list/search/webstore/webstore_provider.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 |
| 9 #include <memory> |
8 #include <string> | 10 #include <string> |
9 #include <utility> | 11 #include <utility> |
10 | 12 |
11 #include "base/bind.h" | 13 #include "base/bind.h" |
12 #include "base/command_line.h" | 14 #include "base/command_line.h" |
13 #include "base/macros.h" | 15 #include "base/macros.h" |
14 #include "base/memory/scoped_ptr.h" | |
15 #include "base/run_loop.h" | 16 #include "base/run_loop.h" |
16 #include "base/strings/utf_string_conversions.h" | 17 #include "base/strings/utf_string_conversions.h" |
17 #include "chrome/browser/profiles/profile_manager.h" | 18 #include "chrome/browser/profiles/profile_manager.h" |
18 #include "chrome/browser/ui/app_list/search/webstore/webstore_result.h" | 19 #include "chrome/browser/ui/app_list/search/webstore/webstore_result.h" |
19 #include "chrome/common/chrome_switches.h" | 20 #include "chrome/common/chrome_switches.h" |
20 #include "chrome/test/base/in_process_browser_test.h" | 21 #include "chrome/test/base/in_process_browser_test.h" |
21 #include "content/public/browser/browser_thread.h" | 22 #include "content/public/browser/browser_thread.h" |
22 #include "extensions/common/extension.h" | 23 #include "extensions/common/extension.h" |
23 #include "net/test/embedded_test_server/embedded_test_server.h" | 24 #include "net/test/embedded_test_server/embedded_test_server.h" |
24 #include "net/test/embedded_test_server/http_request.h" | 25 #include "net/test/embedded_test_server/http_request.h" |
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
214 const std::string& mock_server_response, | 215 const std::string& mock_server_response, |
215 const ParsedSearchResult* expected_results, | 216 const ParsedSearchResult* expected_results, |
216 size_t expected_result_size) { | 217 size_t expected_result_size) { |
217 RunQuery(query, mock_server_response); | 218 RunQuery(query, mock_server_response); |
218 VerifyResults(expected_results, expected_result_size); | 219 VerifyResults(expected_results, expected_result_size); |
219 } | 220 } |
220 | 221 |
221 WebstoreProvider* webstore_provider() { return webstore_provider_.get(); } | 222 WebstoreProvider* webstore_provider() { return webstore_provider_.get(); } |
222 | 223 |
223 private: | 224 private: |
224 scoped_ptr<HttpResponse> HandleRequest(const HttpRequest& request) { | 225 std::unique_ptr<HttpResponse> HandleRequest(const HttpRequest& request) { |
225 scoped_ptr<BasicHttpResponse> response(new BasicHttpResponse); | 226 std::unique_ptr<BasicHttpResponse> response(new BasicHttpResponse); |
226 | 227 |
227 if (request.relative_url.find("/jsonsearch?") != std::string::npos) { | 228 if (request.relative_url.find("/jsonsearch?") != std::string::npos) { |
228 if (mock_server_response_ == "ERROR_NOT_FOUND") { | 229 if (mock_server_response_ == "ERROR_NOT_FOUND") { |
229 response->set_code(net::HTTP_NOT_FOUND); | 230 response->set_code(net::HTTP_NOT_FOUND); |
230 } else if (mock_server_response_ == "ERROR_INTERNAL_SERVER_ERROR") { | 231 } else if (mock_server_response_ == "ERROR_INTERNAL_SERVER_ERROR") { |
231 response->set_code(net::HTTP_INTERNAL_SERVER_ERROR); | 232 response->set_code(net::HTTP_INTERNAL_SERVER_ERROR); |
232 } else { | 233 } else { |
233 response->set_code(net::HTTP_OK); | 234 response->set_code(net::HTTP_OK); |
234 response->set_content(mock_server_response_); | 235 response->set_content(mock_server_response_); |
235 } | 236 } |
236 } | 237 } |
237 | 238 |
238 return std::move(response); | 239 return std::move(response); |
239 } | 240 } |
240 | 241 |
241 void OnSearchResultsFetched() { | 242 void OnSearchResultsFetched() { |
242 if (run_loop_) | 243 if (run_loop_) |
243 run_loop_->Quit(); | 244 run_loop_->Quit(); |
244 } | 245 } |
245 | 246 |
246 scoped_ptr<base::RunLoop> run_loop_; | 247 std::unique_ptr<base::RunLoop> run_loop_; |
247 | 248 |
248 std::string mock_server_response_; | 249 std::string mock_server_response_; |
249 | 250 |
250 scoped_ptr<WebstoreProvider> webstore_provider_; | 251 std::unique_ptr<WebstoreProvider> webstore_provider_; |
251 | 252 |
252 DISALLOW_COPY_AND_ASSIGN(WebstoreProviderTest); | 253 DISALLOW_COPY_AND_ASSIGN(WebstoreProviderTest); |
253 }; | 254 }; |
254 | 255 |
255 IN_PROC_BROWSER_TEST_F(WebstoreProviderTest, Basic) { | 256 IN_PROC_BROWSER_TEST_F(WebstoreProviderTest, Basic) { |
256 struct { | 257 struct { |
257 const char* query; | 258 const char* query; |
258 const char* mock_server_response; | 259 const char* mock_server_response; |
259 const char* expected_result_titles; | 260 const char* expected_result_titles; |
260 const ParsedSearchResult* expected_results; | 261 const ParsedSearchResult* expected_results; |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
335 | 336 |
336 IN_PROC_BROWSER_TEST_F(WebstoreProviderTest, SearchCache) { | 337 IN_PROC_BROWSER_TEST_F(WebstoreProviderTest, SearchCache) { |
337 RunQueryAndVerify("fun", kOneResult, kParsedOneResult, 1); | 338 RunQueryAndVerify("fun", kOneResult, kParsedOneResult, 1); |
338 | 339 |
339 // No result is provided but the provider gets the result from the cache. | 340 // No result is provided but the provider gets the result from the cache. |
340 RunQueryAndVerify("fun", "", kParsedOneResult, 1); | 341 RunQueryAndVerify("fun", "", kParsedOneResult, 1); |
341 } | 342 } |
342 | 343 |
343 } // namespace test | 344 } // namespace test |
344 } // namespace app_list | 345 } // namespace app_list |
OLD | NEW |