Chromium Code Reviews| Index: content/public/test/test_web_contents_factory.h |
| diff --git a/content/public/test/test_web_contents_factory.h b/content/public/test/test_web_contents_factory.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..8189da23b82c151416c9531453ed35cac82c6646 |
| --- /dev/null |
| +++ b/content/public/test/test_web_contents_factory.h |
| @@ -0,0 +1,51 @@ |
| +// Copyright 2015 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef CONTENT_PUBLIC_TEST_TEST_WEB_CONTENTS_FACTORY_H_ |
| +#define CONTENT_PUBLIC_TEST_TEST_WEB_CONTENTS_FACTORY_H_ |
| + |
| +#include "base/macros.h" |
| +#include "base/memory/scoped_vector.h" |
| + |
| +namespace content { |
| +class BrowserContext; |
| +class RenderViewHostTestEnabler; |
| +class WebContents; |
| + |
| +// A helper class to create test web contents (tabs) for unit tests, without |
| +// inheriting from RenderViewTestHarness. Can create web contents, and will |
| +// clean up after itself upon destruction. Owns all created web contents. |
| +// A few notes: |
| +// - Works well allocated on the stack, because it should be destroyed before |
| +// associated browser context. |
| +// - Doesn't play nice with web contents created any other way (because of |
| +// the implementation of RenderViewHostTestEnabler). But if you are creating |
| +// web contents already, what do you need this for? ;) |
| +// TODO(devlin): The API is currently a bit sparse; there may need to be methods |
| +// to, e.g., delete/close a web contents, access existing web contents, etc. |
| +// These can be added as-needed. |
| +class TestWebContentsFactory { |
| + public: |
| + TestWebContentsFactory(); |
| + ~TestWebContentsFactory(); |
| + |
| + // Creates a new WebContents with the given |context|, and returns it. |
|
sky
2015/02/28 17:30:45
Even though you say it in the class descriptions I
Devlin
2015/03/02 17:27:12
Done.
|
| + WebContents* CreateWebContents(BrowserContext* context); |
| + |
| + private: |
| + // The test factory (and friends) for creating test web contents. |
| + scoped_ptr<RenderViewHostTestEnabler> rvh_enabler_; |
| + |
| + // The vector of web contents that this class created. |
| + ScopedVector<WebContents> web_contents_; |
| + |
| + // True if the factory initialized aura (and should thus tear it down). |
| + bool tear_down_aura_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(TestWebContentsFactory); |
| +}; |
| + |
| +} // namespace content |
| + |
| +#endif // CONTENT_PUBLIC_TEST_TEST_WEB_CONTENTS_FACTORY_H_ |