blob: 29a122cdc6775d661a3667d9374b734bf6db2967 [file] [log] [blame]
[email protected]a80de9112014-07-31 03:15:081// Copyright 2014 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 EXTENSIONS_BROWSER_EXTENSIONS_TEST_H_
6#define EXTENSIONS_BROWSER_EXTENSIONS_TEST_H_
7
[email protected]9fc5bdc82014-08-03 23:49:268#include "base/compiler_specific.h"
[email protected]a80de9112014-07-31 03:15:089#include "base/macros.h"
10#include "base/memory/scoped_ptr.h"
11#include "testing/gtest/include/gtest/gtest.h"
12
13namespace content {
jamescook30a1ccd2014-09-09 15:59:2114class BrowserContext;
[email protected]a80de9112014-07-31 03:15:0815class ContentClient;
16class ContentBrowserClient;
[email protected]a80de9112014-07-31 03:15:0817}
18
19namespace extensions {
20class TestExtensionsBrowserClient;
21
22// Base class for extensions module unit tests of browser process code. Sets up
23// the content module and extensions module client interfaces. Initializes
24// services for a browser context.
25//
26// NOTE: Use this class only in extensions_unittests, not in Chrome unit_tests.
27// BrowserContextKeyedServiceFactory singletons persist between tests.
28// In Chrome those factories assume any BrowserContext is a Profile and will
29// cause crashes if it is not. http://crbug.com/395820
30class ExtensionsTest : public testing::Test {
31 public:
32 ExtensionsTest();
dchengf9afb372014-10-27 21:43:1433 ~ExtensionsTest() override;
[email protected]a80de9112014-07-31 03:15:0834
jamescook30a1ccd2014-09-09 15:59:2135 // Returned as a BrowserContext since most users don't need methods from
36 // TestBrowserContext.
37 content::BrowserContext* browser_context() { return browser_context_.get(); }
38
39 // Returned as a TestExtensionsBrowserClient since most users need to call
40 // test-specific methods on it.
[email protected]a80de9112014-07-31 03:15:0841 TestExtensionsBrowserClient* extensions_browser_client() {
42 return extensions_browser_client_.get();
43 }
44
[email protected]9fc5bdc82014-08-03 23:49:2645 // testing::Test overrides:
dchengf9afb372014-10-27 21:43:1446 void SetUp() override;
47 void TearDown() override;
[email protected]9fc5bdc82014-08-03 23:49:2648
[email protected]a80de9112014-07-31 03:15:0849 private:
50 scoped_ptr<content::ContentClient> content_client_;
51 scoped_ptr<content::ContentBrowserClient> content_browser_client_;
jamescook30a1ccd2014-09-09 15:59:2152 scoped_ptr<content::BrowserContext> browser_context_;
[email protected]a80de9112014-07-31 03:15:0853 scoped_ptr<TestExtensionsBrowserClient> extensions_browser_client_;
54
55 DISALLOW_COPY_AND_ASSIGN(ExtensionsTest);
56};
57
58} // namespace extensions
59
60#endif // EXTENSIONS_BROWSER_EXTENSIONS_TEST_H_