Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(440)

Side by Side Diff: chrome/test/in_process_browser_test.h

Issue 126175: Close all browsers during InProcessBrowserTest cleanup, not just the main one... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_TEST_IN_PROCESS_BROWSER_TEST_H_ 5 #ifndef CHROME_TEST_IN_PROCESS_BROWSER_TEST_H_
6 #define CHROME_TEST_IN_PROCESS_BROWSER_TEST_H_ 6 #define CHROME_TEST_IN_PROCESS_BROWSER_TEST_H_
7 7
8 #include "chrome/common/notification_registrar.h"
9 #include "chrome/common/notification_observer.h"
10 #include "net/url_request/url_request_unittest.h" 8 #include "net/url_request/url_request_unittest.h"
11 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
12 10
13 class Browser; 11 class Browser;
14 class Profile; 12 class Profile;
15 namespace net { 13 namespace net {
16 class RuleBasedHostMapper; 14 class RuleBasedHostMapper;
17 } 15 }
18 16
19 // Base class for tests wanting to bring up a browser in the unit test process. 17 // Base class for tests wanting to bring up a browser in the unit test process.
(...skipping 12 matching lines...) Expand all
32 // 30 //
33 // By default InProcessBrowserTest creates a single Browser (as returned from 31 // By default InProcessBrowserTest creates a single Browser (as returned from
34 // the CreateBrowser method). You can obviously create more as needed. 32 // the CreateBrowser method). You can obviously create more as needed.
35 33
36 // Browsers created while InProcessBrowserTest is running are shown hidden. Use 34 // Browsers created while InProcessBrowserTest is running are shown hidden. Use
37 // the command line switch --show-windows to make them visible when debugging. 35 // the command line switch --show-windows to make them visible when debugging.
38 // 36 //
39 // InProcessBrowserTest disables the sandbox when running. 37 // InProcessBrowserTest disables the sandbox when running.
40 // 38 //
41 // See ui_test_utils for a handful of methods designed for use with this class. 39 // See ui_test_utils for a handful of methods designed for use with this class.
42 class InProcessBrowserTest : public testing::Test, public NotificationObserver { 40 class InProcessBrowserTest : public testing::Test {
43 public: 41 public:
44 InProcessBrowserTest(); 42 InProcessBrowserTest();
45 43
46 // We do this so we can be used in a Task. 44 // We do this so we can be used in a Task.
47 void AddRef() {} 45 void AddRef() {}
48 void Release() {} 46 void Release() {}
49 47
50 // Configures everything for an in process browser test, then invokes 48 // Configures everything for an in process browser test, then invokes
51 // BrowserMain. BrowserMain ends up invoking RunTestOnMainThreadLoop. 49 // BrowserMain. BrowserMain ends up invoking RunTestOnMainThreadLoop.
52 virtual void SetUp(); 50 virtual void SetUp();
53 51
54 // Restores state configured in SetUp. 52 // Restores state configured in SetUp.
55 virtual void TearDown(); 53 virtual void TearDown();
56 54
57 // Used to track when the browser_ is destroyed. Resets the |browser_| field
58 // to NULL.
59 virtual void Observe(NotificationType type,
60 const NotificationSource& source,
61 const NotificationDetails& details);
62
63 protected: 55 protected:
64 // Returns the browser created by CreateBrowser. 56 // Returns the browser created by CreateBrowser.
65 Browser* browser() const { return browser_; } 57 Browser* browser() const { return browser_; }
66 58
67 // Override this rather than TestBody. 59 // Override this rather than TestBody.
68 virtual void RunTestOnMainThread() = 0; 60 virtual void RunTestOnMainThread() = 0;
69 61
70 // Override this to add command line flags specific to your test. 62 // Override this to add command line flags specific to your test.
71 virtual void SetUpCommandLine(CommandLine* command_line) {} 63 virtual void SetUpCommandLine(CommandLine* command_line) {}
72 64
(...skipping 18 matching lines...) Expand all
91 void EnableSingleProcess() { single_process_ = true; } 83 void EnableSingleProcess() { single_process_ = true; }
92 84
93 private: 85 private:
94 // Invokes CreateBrowser to create a browser, then RunTestOnMainThread, and 86 // Invokes CreateBrowser to create a browser, then RunTestOnMainThread, and
95 // destroys the browser. 87 // destroys the browser.
96 void RunTestOnMainThreadLoop(); 88 void RunTestOnMainThreadLoop();
97 89
98 // Browser created from CreateBrowser. 90 // Browser created from CreateBrowser.
99 Browser* browser_; 91 Browser* browser_;
100 92
101 // Used to track when the browser is deleted.
102 NotificationRegistrar registrar_;
103
104 // HTTPServer, created when StartHTTPServer is invoked. 93 // HTTPServer, created when StartHTTPServer is invoked.
105 scoped_refptr<HTTPTestServer> http_server_; 94 scoped_refptr<HTTPTestServer> http_server_;
106 95
107 // Whether this test requires the browser windows to be shown (interactive 96 // Whether this test requires the browser windows to be shown (interactive
108 // tests for example need the windows shown). 97 // tests for example need the windows shown).
109 bool show_window_; 98 bool show_window_;
110 99
111 // Whether the JavaScript can access the DOMAutomationController (a JS object 100 // Whether the JavaScript can access the DOMAutomationController (a JS object
112 // that can send messages back to the browser). 101 // that can send messages back to the browser).
113 bool dom_automation_enabled_; 102 bool dom_automation_enabled_;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 parent_class::TearDownTestCase, \ 137 parent_class::TearDownTestCase, \
149 new ::testing::internal::TestFactoryImpl<\ 138 new ::testing::internal::TestFactoryImpl<\
150 GTEST_TEST_CLASS_NAME_(test_case_name, test_name)>);\ 139 GTEST_TEST_CLASS_NAME_(test_case_name, test_name)>);\
151 void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::RunTestOnMainThread() 140 void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::RunTestOnMainThread()
152 141
153 #define IN_PROC_BROWSER_TEST_F(test_fixture, test_name)\ 142 #define IN_PROC_BROWSER_TEST_F(test_fixture, test_name)\
154 IN_PROC_BROWSER_TEST_(test_fixture, test_name, test_fixture,\ 143 IN_PROC_BROWSER_TEST_(test_fixture, test_name, test_fixture,\
155 ::testing::internal::GetTypeId<test_fixture>()) 144 ::testing::internal::GetTypeId<test_fixture>())
156 145
157 #endif // CHROME_TEST_IN_PROCESS_BROWSER_TEST_H_ 146 #endif // CHROME_TEST_IN_PROCESS_BROWSER_TEST_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698