diff options
author | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-04 16:36:25 +0000 |
---|---|---|
committer | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-04 16:36:25 +0000 |
commit | 17c4f3c7c289c840f8b285f7834ab7007f85e35e (patch) | |
tree | e21af5a41aba26623cf56d6fe2412c34a32daafc /chrome/browser/extensions/extension_shelf_model_unittest.cc | |
parent | cd659ee5e9e02a3fdf261fb9ebdf25801661b5fa (diff) | |
download | chromium_src-17c4f3c7c289c840f8b285f7834ab7007f85e35e.zip chromium_src-17c4f3c7c289c840f8b285f7834ab7007f85e35e.tar.gz chromium_src-17c4f3c7c289c840f8b285f7834ab7007f85e35e.tar.bz2 |
Add an ExtensionBrowserTest base class that allows in-process browser tests of extensions using ExtensionsService directly, rather than TestExtensionLoaded. Use it to re-enable some old browser tests that had been disabled.
Review URL: http://codereview.chromium.org/150213
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19930 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_shelf_model_unittest.cc')
-rw-r--r-- | chrome/browser/extensions/extension_shelf_model_unittest.cc | 49 |
1 files changed, 15 insertions, 34 deletions
diff --git a/chrome/browser/extensions/extension_shelf_model_unittest.cc b/chrome/browser/extensions/extension_shelf_model_unittest.cc index b41754c..d1e2217 100644 --- a/chrome/browser/extensions/extension_shelf_model_unittest.cc +++ b/chrome/browser/extensions/extension_shelf_model_unittest.cc @@ -3,11 +3,13 @@ // found in the LICENSE file. #include "chrome/browser/browser.h" +#include "chrome/browser/extensions/extension_browsertest.h" #include "chrome/browser/extensions/extension_host.h" #include "chrome/browser/extensions/extension_shelf_model.h" #include "chrome/browser/extensions/extensions_service.h" -#include "chrome/browser/extensions/test_extension_loader.h" #include "chrome/browser/profile.h" +#include "chrome/browser/views/extensions/extension_shelf.h" +#include "chrome/browser/views/frame/browser_view.h" #include "chrome/common/chrome_paths.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/extensions/extension_error_reporter.h" @@ -26,31 +28,28 @@ const char* kExtensionId = "behllobkkfkfnphdnhnkndlbkcpglgmj"; // It would be nice to refactor things so that ExtensionShelfModel, // ExtensionHost and ExtensionsService could run without so much of the browser // in place. -class ExtensionShelfModelTest : public InProcessBrowserTest, +class ExtensionShelfModelTest : public ExtensionBrowserTest, public ExtensionShelfModelObserver { public: virtual void SetUp() { - // Initialize the error reporter here, or BrowserMain will create it with - // the wrong MessageLoop. - ExtensionErrorReporter::Init(false); inserted_count_ = 0; removed_count_ = 0; moved_count_ = 0; - InProcessBrowserTest::SetUp(); } - virtual void SetUpCommandLine(CommandLine* command_line) { - command_line->AppendSwitch(switches::kEnableExtensions); - } - virtual Browser* CreateBrowser(Profile* profile) { Browser* b = InProcessBrowserTest::CreateBrowser(profile); - model_ = new ExtensionShelfModel(b); + BrowserView* browser_view = static_cast<BrowserView*>(b->window()); + model_ = browser_view->extension_shelf()->model(); model_->AddObserver(this); return b; } + virtual void CleanUpOnMainThread() { + model_->RemoveObserver(this); + } + virtual void ToolstripInsertedAt(ExtensionHost* toolstrip, int index) { inserted_count_++; } @@ -73,21 +72,11 @@ class ExtensionShelfModelTest : public InProcessBrowserTest, int moved_count_; }; -// TODO(erikkay): http://crbug.com/15291 disabled because fails on build-bot. -IN_PROC_BROWSER_TEST_F(ExtensionShelfModelTest, DISABLED_Basic) { - // Get the path to our extension. - FilePath path; - ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &path)); - path = path.AppendASCII("extensions") - .AppendASCII("good") - .AppendASCII("Extensions") - .AppendASCII(kExtensionId).AppendASCII("1.0.0.0"); - ASSERT_TRUE(file_util::DirectoryExists(path)); // sanity check - - // Wait for the extension to load and grab a pointer to it. - TestExtensionLoader loader(browser()->profile()); - Extension* extension = loader.Load(kExtensionId, path); - ASSERT_TRUE(extension); +IN_PROC_BROWSER_TEST_F(ExtensionShelfModelTest, Basic) { + ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("good") + .AppendASCII("Extensions") + .AppendASCII(kExtensionId) + .AppendASCII("1.0.0.0"))); // extension1 has two toolstrips EXPECT_EQ(inserted_count_, 2); @@ -105,12 +94,4 @@ IN_PROC_BROWSER_TEST_F(ExtensionShelfModelTest, DISABLED_Basic) { EXPECT_EQ(one, model_->ToolstripAt(0)); EXPECT_EQ(1, model_->count()); EXPECT_EQ(removed_count_, 1); - - // Tear down |model_| manually here rather than in the destructor or with - // a scoped_ptr. InProcessBrowserTest doesn't give us a chance to clean - // up before the browser and all of its services have been shut down, - // and |model_| depends on these existing. - model_->RemoveObserver(this); - delete model_; - model_ = NULL; } |