summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extension_prefs_unittest.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/extensions/extension_prefs_unittest.h')
-rw-r--r--chrome/browser/extensions/extension_prefs_unittest.h92
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_