| Index: chrome/browser/ui/toolbar/toolbar_model_unittest.cc
|
| diff --git a/chrome/browser/ui/toolbar/toolbar_model_unittest.cc b/chrome/browser/ui/toolbar/toolbar_model_unittest.cc
|
| index 5c1e49debc39665f4c1df674a22a5c826dff9196..9a5405832dc9152242584f0465fe9c99ce289f0e 100644
|
| --- a/chrome/browser/ui/toolbar/toolbar_model_unittest.cc
|
| +++ b/chrome/browser/ui/toolbar/toolbar_model_unittest.cc
|
| @@ -1,13 +1,18 @@
|
| -// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| +// Copyright (c) 2012 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/ui/toolbar/toolbar_model.h"
|
|
|
| +#include "base/command_line.h"
|
| #include "base/utf_string_conversions.h"
|
| +#include "chrome/browser/search_engines/template_url.h"
|
| +#include "chrome/browser/search_engines/template_url_service.h"
|
| +#include "chrome/browser/search_engines/template_url_service_factory.h"
|
| #include "chrome/browser/ui/browser.h"
|
| #include "chrome/browser/ui/browser_tabstrip.h"
|
| #include "chrome/browser/ui/toolbar/toolbar_model.h"
|
| +#include "chrome/common/chrome_switches.h"
|
| #include "chrome/test/base/browser_with_test_window_test.h"
|
| #include "content/public/browser/web_contents.h"
|
| #include "content/public/common/url_constants.h"
|
| @@ -16,42 +21,181 @@ using content::OpenURLParams;
|
| using content::Referrer;
|
| using content::WebContents;
|
|
|
| +namespace {
|
| +
|
| +struct TestItem {
|
| + GURL url;
|
| + string16 expected_text;
|
| + // The expected text to display when Extended Instant is inactive.
|
| + string16 expected_replace_text_inactive;
|
| + // The expected text to display when Extended Instant is active.
|
| + string16 expected_replace_text_active;
|
| + bool would_replace;
|
| + bool should_display;
|
| +} test_items[] = {
|
| + {
|
| + GURL("view-source:http://www.google.com"),
|
| + ASCIIToUTF16("view-source:www.google.com"),
|
| + ASCIIToUTF16("view-source:www.google.com"),
|
| + ASCIIToUTF16("view-source:www.google.com"),
|
| + false,
|
| + true
|
| + },
|
| + {
|
| + GURL("view-source:chrome://newtab/"),
|
| + ASCIIToUTF16("view-source:chrome://newtab"),
|
| + ASCIIToUTF16("view-source:chrome://newtab"),
|
| + ASCIIToUTF16("view-source:chrome://newtab"),
|
| + false,
|
| + true
|
| + },
|
| + {
|
| + GURL("chrome-extension://monkey/balls.html"),
|
| + string16(),
|
| + string16(),
|
| + string16(),
|
| + false,
|
| + false
|
| + },
|
| + {
|
| + GURL("chrome://newtab/"),
|
| + string16(),
|
| + string16(),
|
| + string16(),
|
| + false,
|
| + false
|
| + },
|
| + {
|
| + GURL(chrome::kAboutBlankURL),
|
| + ASCIIToUTF16(chrome::kAboutBlankURL),
|
| + ASCIIToUTF16(chrome::kAboutBlankURL),
|
| + ASCIIToUTF16(chrome::kAboutBlankURL),
|
| + false,
|
| + true
|
| + },
|
| + {
|
| + GURL("http://searchurl/?q=tractor+supply"),
|
| + ASCIIToUTF16("searchurl/?q=tractor+supply"),
|
| + ASCIIToUTF16("searchurl/?q=tractor+supply"),
|
| + ASCIIToUTF16("searchurl/?q=tractor+supply"),
|
| + false,
|
| + true
|
| + },
|
| + {
|
| + GURL("http://google.com/search?q=tractor+supply"),
|
| + ASCIIToUTF16("google.com/search?q=tractor+supply"),
|
| + ASCIIToUTF16("google.com/search?q=tractor+supply"),
|
| + ASCIIToUTF16("google.com/search?q=tractor+supply"),
|
| + false,
|
| + true
|
| + },
|
| + {
|
| + GURL("http://google.com/search?q=tractor+supply&espv=1"),
|
| + ASCIIToUTF16("google.com/search?q=tractor+supply&espv=1"),
|
| + ASCIIToUTF16("google.com/search?q=tractor+supply&espv=1"),
|
| + ASCIIToUTF16("tractor supply"),
|
| + true,
|
| + true
|
| + }
|
| +};
|
| +
|
| +} // end namespace
|
| +
|
| class ToolbarModelTest : public BrowserWithTestWindowTest {
|
| public:
|
| ToolbarModelTest() {}
|
|
|
| + virtual void SetUp() OVERRIDE {
|
| + BrowserWithTestWindowTest::SetUp();
|
| + TemplateURLServiceFactory::GetInstance()->SetTestingFactoryAndUse(
|
| + profile(), &TemplateURLServiceFactory::BuildInstanceFor);
|
| + }
|
| + virtual void TearDown() OVERRIDE { BrowserWithTestWindowTest::TearDown(); }
|
| +
|
| protected:
|
| - void NavigateAndCheckText(const std::string& url,
|
| - const std::string& expected_text,
|
| +
|
| + void ResetDefaultTemplateURL() {
|
| + TemplateURLData data;
|
| + data.SetURL("http://google.com/search?q={searchTerms}");
|
| + TemplateURL* search_template_url = new TemplateURL(profile(), data);
|
| + TemplateURLService* template_url_service =
|
| + TemplateURLServiceFactory::GetForProfile(profile());
|
| + template_url_service->Add(search_template_url);
|
| + template_url_service->SetDefaultSearchProvider(search_template_url);
|
| + ASSERT_NE(0, search_template_url->id());
|
| + template_url_service->Load();
|
| + }
|
| +
|
| + void NavigateAndCheckText(const GURL& url,
|
| + const string16& expected_text,
|
| + const string16& expected_replace_text,
|
| + bool would_replace,
|
| bool should_display) {
|
| + NavigateAndCheckTextImpl(url, false, expected_text, would_replace,
|
| + should_display);
|
| + NavigateAndCheckTextImpl(url, true, expected_replace_text, would_replace,
|
| + should_display);
|
| + }
|
| +
|
| + private:
|
| + void NavigateAndCheckTextImpl(const GURL& url,
|
| + bool can_replace,
|
| + const string16 expected_text,
|
| + bool would_replace,
|
| + bool should_display) {
|
| WebContents* contents = chrome::GetWebContentsAt(browser(), 0);
|
| browser()->OpenURL(OpenURLParams(
|
| - GURL(url), Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED,
|
| + url, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED,
|
| false));
|
|
|
| + ToolbarModel* toolbar_model = browser()->toolbar_model();
|
| +
|
| // Check while loading.
|
| - EXPECT_EQ(should_display, browser()->toolbar_model()->ShouldDisplayURL());
|
| - EXPECT_EQ(ASCIIToUTF16(expected_text),
|
| - browser()->toolbar_model()->GetText());
|
| + EXPECT_EQ(should_display, toolbar_model->ShouldDisplayURL());
|
| + EXPECT_EQ(expected_text, toolbar_model->GetText(can_replace));
|
| + EXPECT_EQ(would_replace,
|
| + toolbar_model->WouldReplaceSearchURLWithSearchTerms());
|
|
|
| // Check after commit.
|
| CommitPendingLoad(&contents->GetController());
|
| - EXPECT_EQ(should_display, browser()->toolbar_model()->ShouldDisplayURL());
|
| - EXPECT_EQ(ASCIIToUTF16(expected_text),
|
| - browser()->toolbar_model()->GetText());
|
| + EXPECT_EQ(should_display, toolbar_model->ShouldDisplayURL());
|
| + EXPECT_EQ(expected_text, toolbar_model->GetText(can_replace));
|
| + EXPECT_EQ(would_replace,
|
| + toolbar_model->WouldReplaceSearchURLWithSearchTerms());
|
| }
|
| };
|
|
|
| -// Test that URLs are correctly shown or hidden both during navigation and
|
| -// after commit.
|
| -TEST_F(ToolbarModelTest, ShouldDisplayURL) {
|
| +// Test that we don't replace any URLs when the InstantExtended API is disabled.
|
| +TEST_F(ToolbarModelTest, ShouldDisplayURLInstantExtendedAPIDisabled) {
|
| + ASSERT_FALSE(CommandLine::ForCurrentProcess()->HasSwitch(
|
| + switches::kEnableInstantExtendedAPI))
|
| + << "This test expects Extended Instant to be disabled.";
|
| +
|
| + ResetDefaultTemplateURL();
|
| AddTab(browser(), GURL(chrome::kAboutBlankURL));
|
| + for (size_t i = 0; i < arraysize(test_items); ++i) {
|
| + const TestItem& test_item = test_items[i];
|
| + NavigateAndCheckText(test_item.url,
|
| + test_item.expected_text,
|
| + test_item.expected_replace_text_inactive,
|
| + false,
|
| + test_item.should_display);
|
| + }
|
| +}
|
| +
|
| +// Test that we don't replace any URLs when the InstantExtended API is enabled.
|
| +TEST_F(ToolbarModelTest, ShouldDisplayURLInstantExtendedAPIEnabled) {
|
| + CommandLine::ForCurrentProcess()->AppendSwitch(
|
| + switches::kEnableInstantExtendedAPI);
|
|
|
| - NavigateAndCheckText("view-source:http://www.google.com",
|
| - "view-source:www.google.com", true);
|
| - NavigateAndCheckText("view-source:chrome://newtab/",
|
| - "view-source:chrome://newtab", true);
|
| - NavigateAndCheckText("chrome-extension://monkey/balls.html", "", false);
|
| - NavigateAndCheckText("chrome://newtab/", "", false);
|
| - NavigateAndCheckText(chrome::kAboutBlankURL, chrome::kAboutBlankURL, true);
|
| + ResetDefaultTemplateURL();
|
| + AddTab(browser(), GURL(chrome::kAboutBlankURL));
|
| + for (size_t i = 0; i < arraysize(test_items); ++i) {
|
| + const TestItem& test_item = test_items[i];
|
| + NavigateAndCheckText(test_item.url,
|
| + test_item.expected_text,
|
| + test_item.expected_replace_text_active,
|
| + test_item.would_replace,
|
| + test_item.should_display);
|
| + }
|
| }
|
|
|