1// Copyright (c) 2014 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/ui/views/location_bar/location_icon_view.h" 6 7#include "base/command_line.h" 8#include "chrome/browser/ui/views/frame/browser_view.h" 9#include "chrome/browser/ui/views/location_bar/location_bar_view.h" 10#include "chrome/browser/ui/views/toolbar/toolbar_view.h" 11#include "chrome/browser/ui/views/website_settings/website_settings_popup_view.h" 12#include "chrome/test/base/in_process_browser_test.h" 13#include "chrome/test/base/interactive_test_utils.h" 14#include "ui/aura/window.h" 15 16namespace { 17 18typedef InProcessBrowserTest LocationIconViewTest; 19 20// Verify that clicking the location icon a second time hides the bubble. 21IN_PROC_BROWSER_TEST_F(LocationIconViewTest, HideOnSecondClick) { 22 BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser()); 23 views::View* location_icon_view = 24 browser_view->GetToolbarView()->location_bar()->location_icon_view(); 25 ASSERT_TRUE(location_icon_view); 26 27 // Verify that clicking once shows the location icon bubble. 28 scoped_refptr<content::MessageLoopRunner> runner1 = 29 new content::MessageLoopRunner; 30 ui_test_utils::MoveMouseToCenterAndPress( 31 location_icon_view, 32 ui_controls::LEFT, 33 ui_controls::DOWN | ui_controls::UP, 34 runner1->QuitClosure()); 35 runner1->Run(); 36 37 EXPECT_TRUE(WebsiteSettingsPopupView::IsPopupShowing()); 38 39 // Verify that clicking again doesn't reshow it. 40 scoped_refptr<content::MessageLoopRunner> runner2 = 41 new content::MessageLoopRunner; 42 ui_test_utils::MoveMouseToCenterAndPress( 43 location_icon_view, 44 ui_controls::LEFT, 45 ui_controls::DOWN | ui_controls::UP, 46 runner2->QuitClosure()); 47 runner2->Run(); 48 49 EXPECT_FALSE(WebsiteSettingsPopupView::IsPopupShowing()); 50} 51 52} // namespace 53