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

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: Rebased. 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..8551a7d4603543b5496fc389003cca84b1932f88 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> {
@@ -153,28 +162,19 @@ class BackgroundModeManagerTest : public testing::Test {
command_line_.reset(new base::CommandLine(base::CommandLine::NO_PROGRAM));
profile_manager_ = CreateTestingProfileManager();
profile_ = profile_manager_->CreateTestingProfile("p1");
+ chrome::DisableShutdownForTesting(true);
}
- 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 TearDown() override {
+ // Don't allow the browser to be closed because the shutdown procedure will
+ // attempt to access objects that we haven't created (e.g., MessageCenter).
+ browser_shutdown::SetTryingToQuit(true);
+ chrome::DisableShutdownForTesting(false);
+ browser_shutdown::SetTryingToQuit(false);
}
+ protected:
+ content::TestBrowserThreadBundle thread_bundle_;
scoped_ptr<base::CommandLine> command_line_;
scoped_ptr<TestingProfileManager> profile_manager_;
@@ -182,24 +182,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 +260,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 +295,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_;
« no previous file with comments | « chrome/browser/background/background_contents_service_unittest.cc ('k') | chrome/browser/browser_about_handler_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698