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_service_factory.h"
7#include "chrome/browser/ui/browser.h"
8#include "chrome/test/base/in_process_browser_test.h"
9#include "chrome/test/base/ui_test_utils.h"
10#include "components/search_engines/template_url_prepopulate_data.h"
11#include "components/search_engines/template_url_service.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