Index: chrome/browser/search_engines/template_url_scraper_unittest.cc |
=================================================================== |
--- chrome/browser/search_engines/template_url_scraper_unittest.cc (revision 0) |
+++ chrome/browser/search_engines/template_url_scraper_unittest.cc (revision 0) |
@@ -0,0 +1,90 @@ |
+// Copyright (c) 2009 The Chromium Authors. All rights reserved. Use of this |
+// source code is governed by a BSD-style license that can be found in the |
+// LICENSE file. |
+ |
+#include "chrome/browser/browser.h" |
+#include "chrome/browser/profile.h" |
+#include "chrome/browser/search_engines/template_url_model.h" |
+#include "chrome/browser/search_engines/template_url_prepopulate_data.h" |
+#include "chrome/common/notification_registrar.h" |
+#include "chrome/common/notification_source.h" |
+#include "chrome/common/notification_type.h" |
+#include "chrome/test/in_process_browser_test.h" |
+#include "chrome/test/ui_test_utils.h" |
+#include "net/base/host_resolver_unittest.h" |
+#include "net/base/net_util.h" |
+ |
+namespace { |
+class TemplateURLScraperTest : public InProcessBrowserTest { |
+ public: |
+ TemplateURLScraperTest() { |
+ } |
+ |
+ protected: |
+ virtual void ConfigureHostMapper(net::RuleBasedHostMapper* host_mapper) { |
+ InProcessBrowserTest::ConfigureHostMapper(host_mapper); |
+ // We use foo.com in our tests. |
+ host_mapper->AddRule("*.foo.com", "localhost"); |
+ } |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(TemplateURLScraperTest); |
+}; |
+ |
+class TemplateURLModelLoader : public NotificationObserver { |
+ public: |
+ explicit TemplateURLModelLoader(TemplateURLModel* model) : model_(model) { |
+ registrar_.Add(this, NotificationType::TEMPLATE_URL_MODEL_LOADED, |
+ Source<TemplateURLModel>(model)); |
+ model_->Load(); |
+ ui_test_utils::RunMessageLoop(); |
+ } |
+ |
+ virtual void Observe(NotificationType type, |
+ const NotificationSource& source, |
+ const NotificationDetails& details) { |
+ if (type == NotificationType::TEMPLATE_URL_MODEL_LOADED && |
+ Source<TemplateURLModel>(source).ptr() == model_) { |
+ MessageLoop::current()->Quit(); |
+ } |
+ } |
+ |
+ private: |
+ NotificationRegistrar registrar_; |
+ |
+ TemplateURLModel* model_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(TemplateURLModelLoader); |
+}; |
+ |
+} // namespace |
+ |
+/* |
+IN_PROC_BROWSER_TEST_F(TemplateURLScraperTest, ScrapeWithOnSubmit) { |
+ TemplateURLModel* template_urls = browser()->profile()->GetTemplateURLModel(); |
+ TemplateURLModelLoader loader(template_urls); |
+ |
+ std::vector<const TemplateURL*> all_urls = template_urls->GetTemplateURLs(); |
+ |
+ // We need to substract the default pre-populated engines that the profile is |
+ // set up with. |
+ size_t default_index = 0; |
+ std::vector<TemplateURL*> prepopulate_urls; |
+ TemplateURLPrepopulateData::GetPrepopulatedEngines( |
+ browser()->profile()->GetPrefs(), |
+ &prepopulate_urls, |
+ &default_index); |
+ |
+ EXPECT_EQ(prepopulate_urls.size(), all_urls.size()); |
+ |
+ scoped_refptr<HTTPTestServer> server( |
+ HTTPTestServer::CreateServerWithFileRootURL( |
+ L"chrome/test/data/template_url_scraper/submit_handler", L"/", |
+ g_browser_process->io_thread()->message_loop())); |
+ ui_test_utils::NavigateToURLBlockUntilNavigationsComplete( |
+ browser(), GURL("http://www.foo.com:1337/"), 2); |
+ |
+ all_urls = template_urls->GetTemplateURLs(); |
+ EXPECT_EQ(1, all_urls.size() - prepopulate_urls.size()); |
+} |
+*/ |