Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(119)

Unified Diff: chrome/browser/background/background_mode_manager_unittest.cc

Issue 1086733002: Ensure tests have an active task runner (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Reduce to test fixes only. Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/background/background_mode_manager_unittest.cc
diff --git a/chrome/browser/background/background_mode_manager_unittest.cc b/chrome/browser/background/background_mode_manager_unittest.cc
index 7b5850325e73e3af1c3fe55b10043225e9df126c..82f8cb0a39b8ec73d84f7932eb2d0878ea56383f 100644
--- a/chrome/browser/background/background_mode_manager_unittest.cc
+++ b/chrome/browser/background/background_mode_manager_unittest.cc
@@ -7,6 +7,8 @@
#include "base/memory/scoped_ptr.h"
#include "base/message_loop/message_loop.h"
#include "base/strings/utf_string_conversions.h"
+#include "base/test/test_simple_task_runner.h"
+#include "base/thread_task_runner_handle.h"
#include "chrome/browser/background/background_mode_manager.h"
#include "chrome/browser/browser_shutdown.h"
#include "chrome/browser/extensions/extension_function_test_utils.h"
@@ -44,6 +46,13 @@ using testing::StrictMock;
namespace {
+scoped_ptr<TestingProfileManager> CreateTestingProfileManager() {
+ scoped_ptr<TestingProfileManager> profile_manager(
+ new TestingProfileManager(TestingBrowserProcess::GetGlobal()));
+ EXPECT_TRUE(profile_manager->SetUp());
+ return profile_manager.Pass();
+}
+
// Helper class that tracks state transitions in BackgroundModeManager and
// exposes them via getters (or gmock for EnableLaunchOnStartup).
class TestBackgroundModeManager : public StrictMock<BackgroundModeManager> {
@@ -146,7 +155,8 @@ class AdvancedTestBackgroundModeManager : public TestBackgroundModeManager {
class BackgroundModeManagerTest : public testing::Test {
public:
- BackgroundModeManagerTest() {}
+ BackgroundModeManagerTest()
+ : dummy_task_runner_(new base::TestSimpleTaskRunner()) {}
~BackgroundModeManagerTest() override {}
void SetUp() override {
@@ -156,25 +166,10 @@ class BackgroundModeManagerTest : public testing::Test {
}
protected:
- scoped_refptr<extensions::Extension> CreateExtension(
- extensions::Manifest::Location location,
- const std::string& data,
- const std::string& id) {
- scoped_ptr<base::DictionaryValue> parsed_manifest(
- extensions::api_test_utils::ParseDictionary(data));
- return extensions::api_test_utils::CreateExtension(
- location, parsed_manifest.get(), id);
- }
-
- // From views::MenuModelAdapter::IsCommandEnabled with modification.
- bool IsCommandEnabled(ui::MenuModel* model, int id) const {
- int index = 0;
- if (ui::MenuModel::GetModelAndIndexForCommandId(id, &model, &index))
- return model->IsEnabledAt(index);
-
- return false;
- }
-
+ // We use a dummy task runner instead of the full test browser thread bundle
+ // to avoid having the browser's shutdown logic try to access a non-existent
Andrew T Wilson (Slow) 2015/04/22 14:48:03 I guess I'm not sure I understand - are you saying
Sami 2015/04/22 18:06:45 Disclaimer: that was just the first thing I manage
+ // objects such as the MessageCenter during teardown.
+ base::ThreadTaskRunnerHandle dummy_task_runner_;
scoped_ptr<base::CommandLine> command_line_;
scoped_ptr<TestingProfileManager> profile_manager_;
@@ -182,24 +177,18 @@ class BackgroundModeManagerTest : public testing::Test {
TestingProfile* profile_;
private:
- scoped_ptr<TestingProfileManager> CreateTestingProfileManager() {
- scoped_ptr<TestingProfileManager> profile_manager
- (new TestingProfileManager(TestingBrowserProcess::GetGlobal()));
- EXPECT_TRUE(profile_manager->SetUp());
- return profile_manager.Pass();
- }
-
DISALLOW_COPY_AND_ASSIGN(BackgroundModeManagerTest);
};
-class BackgroundModeManagerWithExtensionsTest
- : public BackgroundModeManagerTest {
+class BackgroundModeManagerWithExtensionsTest : public testing::Test {
public:
BackgroundModeManagerWithExtensionsTest() {}
~BackgroundModeManagerWithExtensionsTest() override {}
void SetUp() override {
- BackgroundModeManagerTest::SetUp();
+ command_line_.reset(new base::CommandLine(base::CommandLine::NO_PROGRAM));
+ profile_manager_ = CreateTestingProfileManager();
+ profile_ = profile_manager_->CreateTestingProfile("p1");
// Aura clears notifications from the message center at shutdown.
message_center::MessageCenter::Initialize();
@@ -266,6 +255,25 @@ class BackgroundModeManagerWithExtensionsTest
}
protected:
+ scoped_refptr<extensions::Extension> CreateExtension(
+ extensions::Manifest::Location location,
+ const std::string& data,
+ const std::string& id) {
+ scoped_ptr<base::DictionaryValue> parsed_manifest(
+ extensions::api_test_utils::ParseDictionary(data));
+ return extensions::api_test_utils::CreateExtension(
+ location, parsed_manifest.get(), id);
+ }
+
+ // From views::MenuModelAdapter::IsCommandEnabled with modification.
+ bool IsCommandEnabled(ui::MenuModel* model, int id) const {
+ int index = 0;
+ if (ui::MenuModel::GetModelAndIndexForCommandId(id, &model, &index))
+ return model->IsEnabledAt(index);
+
+ return false;
+ }
+
void AddEphemeralApp(const extensions::Extension* extension,
ExtensionService* service) {
extensions::ExtensionPrefs* prefs =
@@ -282,6 +290,12 @@ class BackgroundModeManagerWithExtensionsTest
scoped_ptr<TestBackgroundModeManager> manager_;
+ scoped_ptr<base::CommandLine> command_line_;
+
+ scoped_ptr<TestingProfileManager> profile_manager_;
+ // Test profile used by all tests - this is owned by profile_manager_.
+ TestingProfile* profile_;
+
private:
// Required for extension service.
content::TestBrowserThreadBundle thread_bundle_;

Powered by Google App Engine
This is Rietveld 408576698