15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef CHROME_BROWSER_UI_VIEWS_TABS_TAB_DRAG_CONTROLLER_INTERACTIVE_UITEST_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROME_BROWSER_UI_VIEWS_TABS_TAB_DRAG_CONTROLLER_INTERACTIVE_UITEST_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string> 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/test/base/in_process_browser_test.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class Browser; 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class BrowserList; 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class TabStrip; 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class TabStripModel; 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace content { 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebContents; 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace gfx { 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class Point; 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace views { 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class View; 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// TabDragControllerTest is the basis for the two tests that exercise 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// TabDragController. 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class TabDragControllerTest : public InProcessBrowserTest { 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TabDragControllerTest(); 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~TabDragControllerTest(); 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Cover for TabStrip::StopAnimating(true). 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void StopAnimating(TabStrip* tab_strip); 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Adds a new blank tab to |browser|, stops animations and resets the ids of 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // the tabs in |browser|. 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void AddTabAndResetBrowser(Browser* browser); 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Creates a new Browser and resizes |browser()| and the new browser to be 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // side by side. 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Browser* CreateAnotherWindowBrowserAndRelayout(); 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // The tab drag controller interactive ui tests only use the native desktop 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // for now. 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const BrowserList* native_browser_list; 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(TabDragControllerTest); 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace test { 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Returns the TabStrip for |browser|. 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TabStrip* GetTabStripForBrowser(Browser* browser); 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Returns the center of |view| in screen coordinates. 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)gfx::Point GetCenterInScreenCoordinates(const views::View* view); 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Sets the id of |web_contents| to |id|. 642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void SetID(content::WebContents* web_contents, int id); 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Resets the ids of all the tabs in |model| starting at |start|. That is, the 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// id of the first tab is set to |start|, the second tab |start + 1| ... 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ResetIDs(TabStripModel* model, int start); 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Returns a string representation of the ids of the tabs in |model|. Each id 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// is separated by a space. 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)std::string IDString(TabStripModel* model); 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 74c2db58bd994c04d98e4ee2cd7565b71548655fe3Ben Murdoch} // namespace test 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // CHROME_BROWSER_UI_VIEWS_TABS_TAB_DRAG_CONTROLLER_INTERACTIVE_UITEST_H_ 77