| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 // TestBrowserThreadBundle is a convenience class for creating a set of | 5 // TestBrowserThreadBundle is a convenience class for creating a set of |
| 6 // TestBrowserThreads, a blocking pool, and a task scheduler in unit tests. For | 6 // TestBrowserThreads, a blocking pool, and a task scheduler in unit tests. For |
| 7 // most tests, it is sufficient to just instantiate the TestBrowserThreadBundle | 7 // most tests, it is sufficient to just instantiate the TestBrowserThreadBundle |
| 8 // as a member variable. It is a good idea to put the TestBrowserThreadBundle as | 8 // as a member variable. It is a good idea to put the TestBrowserThreadBundle as |
| 9 // the first member variable in test classes, so it is destroyed last, and the | 9 // the first member variable in test classes, so it is destroyed last, and the |
| 10 // test threads always exist from the perspective of other classes. | 10 // test threads always exist from the perspective of other classes. |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 46 // IO_MAINLOOP option. Most of the time, IO_MAINLOOP avoids needing to use a | 46 // IO_MAINLOOP option. Most of the time, IO_MAINLOOP avoids needing to use a |
| 47 // REAL_IO_THREAD. | 47 // REAL_IO_THREAD. |
| 48 // | 48 // |
| 49 // For some tests it is important to emulate real browser startup. During real | 49 // For some tests it is important to emulate real browser startup. During real |
| 50 // browser startup, the main MessageLoop is created before other threads. | 50 // browser startup, the main MessageLoop is created before other threads. |
| 51 // Passing DONT_CREATE_THREADS to constructor will delay creating other threads | 51 // Passing DONT_CREATE_THREADS to constructor will delay creating other threads |
| 52 // until the test explicitly calls CreateThreads(). | 52 // until the test explicitly calls CreateThreads(). |
| 53 // | 53 // |
| 54 // DONT_CREATE_THREADS should only be used when the options specify at least | 54 // DONT_CREATE_THREADS should only be used when the options specify at least |
| 55 // one real thread other than the main thread. | 55 // one real thread other than the main thread. |
| 56 // | |
| 57 // TestBrowserThreadBundle may be instantiated in a scope where there is already | |
| 58 // a base::test::ScopedTaskEnvironment. In that case, it will use the | |
| 59 // MessageLoop and the TaskScheduler provided by this | |
| 60 // base::test::ScopedTaskEnvironment instead of creating its own. The ability to | |
| 61 // have a base::test::ScopedTaskEnvironment and a TestBrowserThreadBundle in the | |
| 62 // same scope is useful when a fixture that inherits from a fixture that | |
| 63 // provides a base::test::ScopedTaskEnvironment needs to add support for browser | |
| 64 // threads. | |
| 65 | 56 |
| 66 #ifndef CONTENT_PUBLIC_TEST_TEST_BROWSER_THREAD_BUNDLE_H_ | 57 #ifndef CONTENT_PUBLIC_TEST_TEST_BROWSER_THREAD_BUNDLE_H_ |
| 67 #define CONTENT_PUBLIC_TEST_TEST_BROWSER_THREAD_BUNDLE_H_ | 58 #define CONTENT_PUBLIC_TEST_TEST_BROWSER_THREAD_BUNDLE_H_ |
| 68 | 59 |
| 69 #include <memory> | 60 #include <memory> |
| 70 | 61 |
| 71 #include "base/macros.h" | 62 #include "base/macros.h" |
| 72 | 63 |
| 73 namespace base { | 64 namespace base { |
| 74 class MessageLoop; | 65 class MessageLoop; |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 120 | 111 |
| 121 int options_; | 112 int options_; |
| 122 bool threads_created_; | 113 bool threads_created_; |
| 123 | 114 |
| 124 DISALLOW_COPY_AND_ASSIGN(TestBrowserThreadBundle); | 115 DISALLOW_COPY_AND_ASSIGN(TestBrowserThreadBundle); |
| 125 }; | 116 }; |
| 126 | 117 |
| 127 } // namespace content | 118 } // namespace content |
| 128 | 119 |
| 129 #endif // CONTENT_PUBLIC_TEST_TEST_BROWSER_THREAD_BUNDLE_H_ | 120 #endif // CONTENT_PUBLIC_TEST_TEST_BROWSER_THREAD_BUNDLE_H_ |
| OLD | NEW |