| OLD | NEW |
| 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 "chrome/browser/ui/search_engines/search_engine_tab_helper.h" | 5 #include "chrome/browser/ui/search_engines/search_engine_tab_helper.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/macros.h" | 9 #include "base/macros.h" |
| 10 #include "base/strings/stringprintf.h" | 10 #include "base/strings/stringprintf.h" |
| (...skipping 21 matching lines...) Expand all Loading... |
| 32 DCHECK(loop); | 32 DCHECK(loop); |
| 33 template_url_sub_ = service->RegisterOnLoadedCallback(base::Bind( | 33 template_url_sub_ = service->RegisterOnLoadedCallback(base::Bind( |
| 34 &TemplateURLServiceObserver::StopLoop, base::Unretained(this))); | 34 &TemplateURLServiceObserver::StopLoop, base::Unretained(this))); |
| 35 service->Load(); | 35 service->Load(); |
| 36 } | 36 } |
| 37 ~TemplateURLServiceObserver() {} | 37 ~TemplateURLServiceObserver() {} |
| 38 | 38 |
| 39 private: | 39 private: |
| 40 void StopLoop() { runner_->Quit(); } | 40 void StopLoop() { runner_->Quit(); } |
| 41 base::RunLoop* runner_; | 41 base::RunLoop* runner_; |
| 42 scoped_ptr<TemplateURLService::Subscription> template_url_sub_; | 42 std::unique_ptr<TemplateURLService::Subscription> template_url_sub_; |
| 43 | 43 |
| 44 DISALLOW_COPY_AND_ASSIGN(TemplateURLServiceObserver); | 44 DISALLOW_COPY_AND_ASSIGN(TemplateURLServiceObserver); |
| 45 }; | 45 }; |
| 46 | 46 |
| 47 testing::AssertionResult VerifyTemplateURLServiceLoad( | 47 testing::AssertionResult VerifyTemplateURLServiceLoad( |
| 48 TemplateURLService* service) { | 48 TemplateURLService* service) { |
| 49 if (service->loaded()) | 49 if (service->loaded()) |
| 50 return testing::AssertionSuccess(); | 50 return testing::AssertionSuccess(); |
| 51 base::RunLoop runner; | 51 base::RunLoop runner; |
| 52 TemplateURLServiceObserver observer(service, &runner); | 52 TemplateURLServiceObserver observer(service, &runner); |
| 53 runner.Run(); | 53 runner.Run(); |
| 54 if (service->loaded()) | 54 if (service->loaded()) |
| 55 return testing::AssertionSuccess(); | 55 return testing::AssertionSuccess(); |
| 56 return testing::AssertionFailure() << "TemplateURLService isn't loaded"; | 56 return testing::AssertionFailure() << "TemplateURLService isn't loaded"; |
| 57 } | 57 } |
| 58 | 58 |
| 59 } // namespace | 59 } // namespace |
| 60 | 60 |
| 61 class SearchEngineTabHelperBrowserTest : public InProcessBrowserTest { | 61 class SearchEngineTabHelperBrowserTest : public InProcessBrowserTest { |
| 62 public: | 62 public: |
| 63 SearchEngineTabHelperBrowserTest() {} | 63 SearchEngineTabHelperBrowserTest() {} |
| 64 ~SearchEngineTabHelperBrowserTest() override {} | 64 ~SearchEngineTabHelperBrowserTest() override {} |
| 65 | 65 |
| 66 private: | 66 private: |
| 67 scoped_ptr<HttpResponse> HandleRequest(const GURL& osdd_xml_url, | 67 std::unique_ptr<HttpResponse> HandleRequest(const GURL& osdd_xml_url, |
| 68 const HttpRequest& request) { | 68 const HttpRequest& request) { |
| 69 std::string html = base::StringPrintf( | 69 std::string html = base::StringPrintf( |
| 70 "<html>" | 70 "<html>" |
| 71 "<head>" | 71 "<head>" |
| 72 " <link rel='search' type='application/opensearchdescription+xml'" | 72 " <link rel='search' type='application/opensearchdescription+xml'" |
| 73 " href='%s'" | 73 " href='%s'" |
| 74 " title='ExampleSearch'>" | 74 " title='ExampleSearch'>" |
| 75 "</head>" | 75 "</head>" |
| 76 "</html>", | 76 "</html>", |
| 77 osdd_xml_url.spec().c_str()); | 77 osdd_xml_url.spec().c_str()); |
| 78 | 78 |
| 79 scoped_ptr<BasicHttpResponse> http_response(new BasicHttpResponse()); | 79 std::unique_ptr<BasicHttpResponse> http_response(new BasicHttpResponse()); |
| 80 http_response->set_code(net::HTTP_OK); | 80 http_response->set_code(net::HTTP_OK); |
| 81 http_response->set_content(html); | 81 http_response->set_content(html); |
| 82 http_response->set_content_type("text/html"); | 82 http_response->set_content_type("text/html"); |
| 83 return std::move(http_response); | 83 return std::move(http_response); |
| 84 } | 84 } |
| 85 | 85 |
| 86 // Starts a test server that serves a page pointing to a opensearch descriptor | 86 // Starts a test server that serves a page pointing to a opensearch descriptor |
| 87 // from a file:// url. | 87 // from a file:// url. |
| 88 bool StartTestServer() { | 88 bool StartTestServer() { |
| 89 GURL file_url = ui_test_utils::GetTestUrl( | 89 GURL file_url = ui_test_utils::GetTestUrl( |
| (...skipping 18 matching lines...) Expand all Loading... |
| 108 VerifyTemplateURLServiceLoad(url_service); | 108 VerifyTemplateURLServiceLoad(url_service); |
| 109 TemplateURLService::TemplateURLVector template_urls = | 109 TemplateURLService::TemplateURLVector template_urls = |
| 110 url_service->GetTemplateURLs(); | 110 url_service->GetTemplateURLs(); |
| 111 // Navigate to a page with a search descriptor. Path doesn't matter as the | 111 // Navigate to a page with a search descriptor. Path doesn't matter as the |
| 112 // test server always serves the same HTML. | 112 // test server always serves the same HTML. |
| 113 GURL url(embedded_test_server()->GetURL("/")); | 113 GURL url(embedded_test_server()->GetURL("/")); |
| 114 ui_test_utils::NavigateToURL(browser(), url); | 114 ui_test_utils::NavigateToURL(browser(), url); |
| 115 // No new search engines should be added. | 115 // No new search engines should be added. |
| 116 EXPECT_EQ(template_urls, url_service->GetTemplateURLs()); | 116 EXPECT_EQ(template_urls, url_service->GetTemplateURLs()); |
| 117 } | 117 } |
| OLD | NEW |