diff options
Diffstat (limited to 'chrome/browser/extensions/extension_prefs_unittest.h')
-rw-r--r-- | chrome/browser/extensions/extension_prefs_unittest.h | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/chrome/browser/extensions/extension_prefs_unittest.h b/chrome/browser/extensions/extension_prefs_unittest.h new file mode 100644 index 0000000..18040e4 --- /dev/null +++ b/chrome/browser/extensions/extension_prefs_unittest.h @@ -0,0 +1,92 @@ +// Copyright (c) 2012 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 CHROME_BROWSER_EXTENSIONS_EXTENSION_PREFS_UNITTEST_H_ +#define CHROME_BROWSER_EXTENSIONS_EXTENSION_PREFS_UNITTEST_H_ +#pragma once + +#include "base/message_loop.h" +#include "chrome/browser/extensions/test_extension_prefs.h" +#include "content/test/test_browser_thread.h" +#include "testing/gtest/include/gtest/gtest.h" + +// Base class for extension preference-related unit tests. +class ExtensionPrefsTest : public testing::Test { + public: + ExtensionPrefsTest(); + virtual ~ExtensionPrefsTest(); + + // This function will get called once, and is the right place to do operations + // on ExtensionPrefs that write data. + virtual void Initialize() = 0; + + // This function will be called twice - once while the original ExtensionPrefs + // object is still alive, and once after recreation. Thus, it tests that + // things don't break after any ExtensionPrefs startup work. + virtual void Verify() = 0; + + // This function is called to Register preference default values. + virtual void RegisterPreferences(); + + virtual void SetUp() OVERRIDE; + + virtual void TearDown() OVERRIDE; + + protected: + ExtensionPrefs* prefs() { return prefs_.prefs(); } + + MessageLoop message_loop_; + content::TestBrowserThread ui_thread_; + content::TestBrowserThread file_thread_; + + TestExtensionPrefs prefs_; + + private: + DISALLOW_COPY_AND_ASSIGN(ExtensionPrefsTest); +}; + +class ExtensionPrefsPrepopulatedTest : public ExtensionPrefsTest { + public: + ExtensionPrefsPrepopulatedTest(); + virtual ~ExtensionPrefsPrepopulatedTest(); + + virtual void RegisterPreferences() OVERRIDE; + + void InstallExtControlledPref(Extension *ext, + const std::string& key, + Value* val); + + void InstallExtControlledPrefIncognito(Extension *ext, + const std::string& key, + Value* val); + + void InstallExtControlledPrefIncognitoSessionOnly( + Extension *ext, + const std::string& key, + Value* val); + + void InstallExtension(Extension *ext); + + void UninstallExtension(const std::string& extension_id); + + // Weak references, for convenience. + Extension* ext1_; + Extension* ext2_; + Extension* ext3_; + + // Flags indicating whether each of the extensions has been installed, yet. + bool installed[3]; + + private: + void EnsureExtensionInstalled(Extension *ext); + + void EnsureExtensionUninstalled(const std::string& extension_id); + + scoped_refptr<Extension> ext1_scoped_; + scoped_refptr<Extension> ext2_scoped_; + scoped_refptr<Extension> ext3_scoped_; +}; + + +#endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_PREFS_UNITTEST_H_ |