1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "chrome/browser/profiles/profile.h" 6#include "chrome/browser/search_engines/template_url_prepopulate_data.h" 7#include "chrome/browser/search_engines/template_url_service.h" 8#include "chrome/browser/search_engines/template_url_service_factory.h" 9#include "chrome/browser/ui/browser.h" 10#include "chrome/test/base/in_process_browser_test.h" 11#include "chrome/test/base/ui_test_utils.h" 12#include "net/base/net_util.h" 13#include "net/dns/mock_host_resolver.h" 14 15namespace { 16class TemplateURLScraperTest : public InProcessBrowserTest { 17 public: 18 TemplateURLScraperTest() { 19 } 20 21 private: 22 DISALLOW_COPY_AND_ASSIGN(TemplateURLScraperTest); 23}; 24 25class TemplateURLServiceLoader { 26 public: 27 explicit TemplateURLServiceLoader(TemplateURLService* model) : model_(model) { 28 scoped_refptr<content::MessageLoopRunner> message_loop_runner = 29 new content::MessageLoopRunner; 30 scoped_ptr<TemplateURLService::Subscription> subscription = 31 model_->RegisterOnLoadedCallback( 32 message_loop_runner->QuitClosure()); 33 model_->Load(); 34 message_loop_runner->Run(); 35 } 36 37 private: 38 TemplateURLService* model_; 39 40 DISALLOW_COPY_AND_ASSIGN(TemplateURLServiceLoader); 41}; 42 43} // namespace 44 45/* 46IN_PROC_BROWSER_TEST_F(TemplateURLScraperTest, ScrapeWithOnSubmit) { 47 host_resolver()->AddRule("*.foo.com", "localhost"); 48 49 TemplateURLService* template_urls = 50 TemplateURLServiceFactory::GetInstance(browser()->profile()); 51 TemplateURLServiceLoader loader(template_urls); 52 53 TemplateURLService::TemplateURLVector all_urls = 54 template_urls->GetTemplateURLs(); 55 56 // We need to substract the default pre-populated engines that the profile is 57 // set up with. 58 size_t default_index = 0; 59 std::vector<TemplateURL*> prepopulate_urls; 60 TemplateURLPrepopulateData::GetPrepopulatedEngines( 61 browser()->profile()->GetPrefs(), 62 &prepopulate_urls, 63 &default_index); 64 65 EXPECT_EQ(prepopulate_urls.size(), all_urls.size()); 66 67 scoped_refptr<HTTPTestServer> server( 68 HTTPTestServer::CreateServerWithFileRootURL( 69 L"chrome/test/data/template_url_scraper/submit_handler", L"/", 70 g_browser_process->io_thread()->message_loop())); 71 ui_test_utils::NavigateToURLBlockUntilNavigationsComplete( 72 browser(), GURL("http://www.foo.com:1337/"), 2); 73 74 all_urls = template_urls->GetTemplateURLs(); 75 EXPECT_EQ(1, all_urls.size() - prepopulate_urls.size()); 76} 77*/ 78