1// Copyright (c) 2012 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#ifndef CHROME_BROWSER_UI_BROWSER_NAVIGATOR_BROWSERTEST_H_
6#define CHROME_BROWSER_UI_BROWSER_NAVIGATOR_BROWSERTEST_H_
7
8#include <string>
9
10#include "chrome/browser/ui/browser.h"
11#include "chrome/test/base/in_process_browser_test.h"
12#include "content/public/browser/notification_types.h"
13
14class Profile;
15
16namespace base {
17class CommandLine;
18}
19
20namespace chrome {
21struct NavigateParams;
22}
23
24namespace content {
25class WebContents;
26}
27
28// Browsertest class for testing the browser navigation. It is also a base class
29// for the |BrowserGuestModeNavigation| which tests navigation while in guest
30// mode.
31class BrowserNavigatorTest : public InProcessBrowserTest,
32                             public content::NotificationObserver {
33 protected:
34  chrome::NavigateParams MakeNavigateParams() const;
35  chrome::NavigateParams MakeNavigateParams(Browser* browser) const;
36
37  Browser* CreateEmptyBrowserForType(Browser::Type type, Profile* profile);
38  Browser* CreateEmptyBrowserForApp(Profile* profile);
39
40  content::WebContents* CreateWebContents();
41
42  void RunSuppressTest(WindowOpenDisposition disposition);
43  void RunUseNonIncognitoWindowTest(const GURL& url);
44  void RunDoNothingIfIncognitoIsForcedTest(const GURL& url);
45
46  // InProcessBrowserTest:
47  virtual void SetUpCommandLine(base::CommandLine* command_line) OVERRIDE;
48
49  // content::NotificationObserver:
50  virtual void Observe(int type,
51                       const content::NotificationSource& source,
52                       const content::NotificationDetails& details) OVERRIDE;
53
54  bool OpenPOSTURLInNewForegroundTabAndGetTitle(const GURL& url,
55                                                const std::string& post_data,
56                                                bool is_browser_initiated,
57                                                base::string16* title);
58
59  size_t created_tab_contents_count_;
60};
61
62#endif  // CHROME_BROWSER_UI_BROWSER_NAVIGATOR_BROWSERTEST_H_
63