Index: chrome/browser/extensions/extension_shelf_model_unittest.cc |
diff --git a/chrome/browser/extensions/extension_shelf_model_unittest.cc b/chrome/browser/extensions/extension_shelf_model_unittest.cc |
index b41754c3f51714e9aeb8cc2c52959b3c827e7a0d..d1e22170510b20838327e9bf856659c8e0b5386e 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; |
} |