bookmark_unittest.cc revision 90dce4d38c5ff5333bea97d859d4e484e27edf0c
1// Copyright (c) 2013 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/search/search.h" 6#include "chrome/browser/search_engines/template_url_service.h" 7#include "chrome/browser/search_engines/template_url_service_factory.h" 8#include "chrome/browser/ui/tabs/tab_strip_model.h" 9#include "chrome/common/url_constants.h" 10#include "chrome/test/base/browser_with_test_window_test.h" 11#include "content/public/browser/navigation_entry.h" 12#include "content/public/browser/web_contents.h" 13 14typedef BrowserWithTestWindowTest BookmarkTest; 15 16// Verify that the detached bookmark bar is visible on the new tab page. 17TEST_F(BookmarkTest, DetachedBookmarkBarOnNTP) { 18 AddTab(browser(), GURL(chrome::kChromeUINewTabURL)); 19 EXPECT_EQ(BookmarkBar::DETACHED, browser()->bookmark_bar_state()); 20} 21 22// Verify that the detached bookmark bar is hidden on custom NTP pages. 23TEST_F(BookmarkTest, DetachedBookmarkBarOnCustomNTP) { 24 // Create a empty commited web contents. 25 content::WebContents* web_contents = content::WebContents::Create( 26 content::WebContents::CreateParams(browser()->profile())); 27 web_contents->GetController().LoadURL( 28 GURL(content::kAboutBlankURL), content::Referrer(), 29 content::PAGE_TRANSITION_LINK, std::string()); 30 31 // Give it a NTP virtual URL. 32 content::NavigationController* controller = &web_contents->GetController(); 33 content::NavigationEntry* entry = controller->GetVisibleEntry(); 34 entry->SetVirtualURL(GURL(chrome::kChromeUINewTabURL)); 35 36 // Verify that the detached bookmark bar is hidden. 37 EXPECT_EQ(BookmarkBar::HIDDEN, browser()->bookmark_bar_state()); 38 browser()->tab_strip_model()->AppendWebContents(web_contents, true); 39 EXPECT_EQ(BookmarkBar::HIDDEN, browser()->bookmark_bar_state()); 40} 41 42class BookmarkInstantExtendedTest : public BrowserWithTestWindowTest { 43 public: 44 BookmarkInstantExtendedTest() { 45 chrome::EnableInstantExtendedAPIForTesting(); 46 } 47 48 protected: 49 virtual TestingProfile* CreateProfile() OVERRIDE { 50 TestingProfile* profile = BrowserWithTestWindowTest::CreateProfile(); 51 // TemplateURLService is normally NULL during testing. Instant extended 52 // needs this service so set a custom factory function. 53 TemplateURLServiceFactory::GetInstance()->SetTestingFactory( 54 profile, &BookmarkInstantExtendedTest::CreateTemplateURLService); 55 return profile; 56 } 57 58 private: 59 static BrowserContextKeyedService* CreateTemplateURLService( 60 content::BrowserContext* profile) { 61 return new TemplateURLService(static_cast<Profile*>(profile)); 62 } 63 64 DISALLOW_COPY_AND_ASSIGN(BookmarkInstantExtendedTest); 65}; 66 67// Verify that in instant extended mode the detached bookmark bar is visible on 68// the new tab page. 69TEST_F(BookmarkInstantExtendedTest, DetachedBookmarkBarOnNTP) { 70 AddTab(browser(), GURL(chrome::kChromeUINewTabURL)); 71 EXPECT_EQ(BookmarkBar::DETACHED, browser()->bookmark_bar_state()); 72} 73