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

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

Issue 12546016: Remove the Extensions URLRequestContext (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: android webview init fix merged in. Created 7 years, 4 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_contents_service_unittest.cc
diff --git a/chrome/browser/background/background_contents_service_unittest.cc b/chrome/browser/background/background_contents_service_unittest.cc
index a58cfbc3ad1e2514fadd84d5553a371e7e7129ff..f739fda9b6df9f873f17e3a2c620679bfadbbd1a 100644
--- a/chrome/browser/background/background_contents_service_unittest.cc
+++ b/chrome/browser/background/background_contents_service_unittest.cc
@@ -8,6 +8,7 @@
#include "base/command_line.h"
#include "base/memory/scoped_ptr.h"
#include "base/prefs/pref_service.h"
+#include "base/run_loop.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/background/background_contents_service.h"
#include "chrome/browser/background/background_contents_service_factory.h"
@@ -16,19 +17,39 @@
#include "chrome/browser/tab_contents/background_contents.h"
#include "chrome/browser/ui/browser_list.h"
#include "chrome/common/pref_names.h"
+#include "chrome/test/base/scoped_testing_local_state.h"
#include "chrome/test/base/testing_browser_process.h"
#include "chrome/test/base/testing_profile.h"
+#include "chrome/test/base/testing_profile_manager.h"
#include "content/public/browser/notification_service.h"
+#include "content/public/test/test_browser_thread_bundle.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "testing/platform_test.h"
+#include "ui/message_center/message_center.h"
#include "url/gurl.h"
class BackgroundContentsServiceTest : public testing::Test {
- public:
- BackgroundContentsServiceTest() {}
- virtual ~BackgroundContentsServiceTest() {}
- virtual void SetUp() {
- command_line_.reset(new CommandLine(CommandLine::NO_PROGRAM));
+ protected:
+ BackgroundContentsServiceTest()
+ : command_line_(CommandLine::NO_PROGRAM),
+ profile_manager_(TestingBrowserProcess::GetGlobal()),
+ profile_(NULL) {
+ CHECK(profile_manager_.SetUp());
+ profile_ = profile_manager_.CreateTestingProfile("TestProfile");
+ service_.reset(new BackgroundContentsService(profile_, &command_line_));
+ BackgroundContentsServiceFactory::GetInstance()->
+ RegisterUserPrefsOnBrowserContext(profile_);
+ }
+
+ virtual ~BackgroundContentsServiceTest() {
+ base::RunLoop().RunUntilIdle();
+ }
+
+ static void SetUpTestCase() {
+ message_center::MessageCenter::Initialize();
+ }
+ static void TearDownTestCase() {
+ message_center::MessageCenter::Shutdown();
}
const DictionaryValue* GetPrefs(Profile* profile) {
@@ -47,7 +68,11 @@ class BackgroundContentsServiceTest : public testing::Test {
return url;
}
- scoped_ptr<CommandLine> command_line_;
+ content::TestBrowserThreadBundle thread_bundle;
+ CommandLine command_line_;
+ TestingProfileManager profile_manager_;
+ TestingProfile* profile_; // Not owned.
+ scoped_ptr<BackgroundContentsService> service_;
};
class MockBackgroundContents : public BackgroundContents {
@@ -97,104 +122,87 @@ class MockBackgroundContents : public BackgroundContents {
private:
GURL url_;
- // The ID of our parent application
+ // The ID of our parent application.
string16 appid_;
- // Parent profile
+ // Parent profile. Not owned.
Profile* profile_;
};
TEST_F(BackgroundContentsServiceTest, Create) {
- // Check for creation and leaks.
- TestingProfile profile;
- BackgroundContentsService service(&profile, command_line_.get());
+ // Check for creation and leaks when the basic objects in the
+ // fixtures are created/destructed.
}
TEST_F(BackgroundContentsServiceTest, BackgroundContentsCreateDestroy) {
- TestingProfile profile;
- BackgroundContentsService service(&profile, command_line_.get());
- MockBackgroundContents* contents = new MockBackgroundContents(&profile);
- EXPECT_FALSE(service.IsTracked(contents));
- contents->SendOpenedNotification(&service);
- EXPECT_TRUE(service.IsTracked(contents));
+ MockBackgroundContents* contents = new MockBackgroundContents(profile_);
+ EXPECT_FALSE(service_->IsTracked(contents));
+ contents->SendOpenedNotification(service_.get());
+ EXPECT_TRUE(service_->IsTracked(contents));
delete contents;
- EXPECT_FALSE(service.IsTracked(contents));
+ EXPECT_FALSE(service_->IsTracked(contents));
}
TEST_F(BackgroundContentsServiceTest, BackgroundContentsUrlAdded) {
- TestingProfile profile;
- BackgroundContentsService service(&profile, command_line_.get());
- BackgroundContentsServiceFactory::GetInstance()->
- RegisterUserPrefsOnBrowserContext(&profile);
GURL orig_url;
GURL url("http://a/");
GURL url2("http://a/");
{
scoped_ptr<MockBackgroundContents> contents(
- new MockBackgroundContents(&profile));
- EXPECT_EQ(0U, GetPrefs(&profile)->size());
- contents->SendOpenedNotification(&service);
+ new MockBackgroundContents(profile_));
+ EXPECT_EQ(0U, GetPrefs(profile_)->size());
+ contents->SendOpenedNotification(service_.get());
contents->Navigate(url);
- EXPECT_EQ(1U, GetPrefs(&profile)->size());
- EXPECT_EQ(url.spec(), GetPrefURLForApp(&profile, contents->appid()));
+ EXPECT_EQ(1U, GetPrefs(profile_)->size());
+ EXPECT_EQ(url.spec(), GetPrefURLForApp(profile_, contents->appid()));
// Navigate the contents to a new url, should not change url.
contents->Navigate(url2);
- EXPECT_EQ(1U, GetPrefs(&profile)->size());
- EXPECT_EQ(url.spec(), GetPrefURLForApp(&profile, contents->appid()));
+ EXPECT_EQ(1U, GetPrefs(profile_)->size());
+ EXPECT_EQ(url.spec(), GetPrefURLForApp(profile_, contents->appid()));
}
// Contents are deleted, url should persist.
- EXPECT_EQ(1U, GetPrefs(&profile)->size());
+ EXPECT_EQ(1U, GetPrefs(profile_)->size());
}
TEST_F(BackgroundContentsServiceTest, BackgroundContentsUrlAddedAndClosed) {
- TestingProfile profile;
- BackgroundContentsService service(&profile, command_line_.get());
- BackgroundContentsServiceFactory::GetInstance()->
- RegisterUserPrefsOnBrowserContext(&profile);
-
GURL url("http://a/");
- MockBackgroundContents* contents = new MockBackgroundContents(&profile);
- EXPECT_EQ(0U, GetPrefs(&profile)->size());
- contents->SendOpenedNotification(&service);
+ MockBackgroundContents* contents = new MockBackgroundContents(profile_);
+ EXPECT_EQ(0U, GetPrefs(profile_)->size());
+ contents->SendOpenedNotification(service_.get());
contents->Navigate(url);
- EXPECT_EQ(1U, GetPrefs(&profile)->size());
- EXPECT_EQ(url.spec(), GetPrefURLForApp(&profile, contents->appid()));
+ EXPECT_EQ(1U, GetPrefs(profile_)->size());
+ EXPECT_EQ(url.spec(), GetPrefURLForApp(profile_, contents->appid()));
// Fake a window closed by script.
- contents->MockClose(&profile);
- EXPECT_EQ(0U, GetPrefs(&profile)->size());
+ contents->MockClose(profile_);
+ EXPECT_EQ(0U, GetPrefs(profile_)->size());
}
// Test what happens if a BackgroundContents shuts down (say, due to a renderer
// crash) then is restarted. Should not persist URL twice.
TEST_F(BackgroundContentsServiceTest, RestartBackgroundContents) {
- TestingProfile profile;
- BackgroundContentsService service(&profile, command_line_.get());
- BackgroundContentsServiceFactory::GetInstance()->
- RegisterUserPrefsOnBrowserContext(&profile);
-
GURL url("http://a/");
{
scoped_ptr<MockBackgroundContents> contents(new MockBackgroundContents(
- &profile, "appid"));
- contents->SendOpenedNotification(&service);
+ profile_, "appid"));
+ contents->SendOpenedNotification(service_.get());
contents->Navigate(url);
- EXPECT_EQ(1U, GetPrefs(&profile)->size());
- EXPECT_EQ(url.spec(), GetPrefURLForApp(&profile, contents->appid()));
+ EXPECT_EQ(1U, GetPrefs(profile_)->size());
+ EXPECT_EQ(url.spec(), GetPrefURLForApp(profile_, contents->appid()));
}
// Contents deleted, url should be persisted.
- EXPECT_EQ(1U, GetPrefs(&profile)->size());
+ EXPECT_EQ(1U, GetPrefs(profile_)->size());
{
// Reopen the BackgroundContents to the same URL, we should not register the
// URL again.
scoped_ptr<MockBackgroundContents> contents(new MockBackgroundContents(
- &profile, "appid"));
- contents->SendOpenedNotification(&service);
+ profile_, "appid"));
+ contents->SendOpenedNotification(service_.get());
contents->Navigate(url);
- EXPECT_EQ(1U, GetPrefs(&profile)->size());
+ EXPECT_EQ(1U, GetPrefs(profile_)->size());
}
}
@@ -202,34 +210,29 @@ TEST_F(BackgroundContentsServiceTest, RestartBackgroundContents) {
// between a BackgroundContents and its parent extension, including
// unregistering the BC when the extension is uninstalled.
TEST_F(BackgroundContentsServiceTest, TestApplicationIDLinkage) {
- TestingProfile profile;
- BackgroundContentsService service(&profile, command_line_.get());
- BackgroundContentsServiceFactory::GetInstance()->
- RegisterUserPrefsOnBrowserContext(&profile);
-
- EXPECT_EQ(NULL, service.GetAppBackgroundContents(ASCIIToUTF16("appid")));
- MockBackgroundContents* contents = new MockBackgroundContents(&profile,
+ EXPECT_EQ(NULL, service_->GetAppBackgroundContents(ASCIIToUTF16("appid")));
+ MockBackgroundContents* contents = new MockBackgroundContents(profile_,
"appid");
scoped_ptr<MockBackgroundContents> contents2(
- new MockBackgroundContents(&profile, "appid2"));
- contents->SendOpenedNotification(&service);
- EXPECT_EQ(contents, service.GetAppBackgroundContents(contents->appid()));
- contents2->SendOpenedNotification(&service);
- EXPECT_EQ(contents2.get(), service.GetAppBackgroundContents(
+ new MockBackgroundContents(profile_, "appid2"));
+ contents->SendOpenedNotification(service_.get());
+ EXPECT_EQ(contents, service_->GetAppBackgroundContents(contents->appid()));
+ contents2->SendOpenedNotification(service_.get());
+ EXPECT_EQ(contents2.get(), service_->GetAppBackgroundContents(
contents2->appid()));
- EXPECT_EQ(0U, GetPrefs(&profile)->size());
+ EXPECT_EQ(0U, GetPrefs(profile_)->size());
// Navigate the contents, then make sure the one associated with the extension
// is unregistered.
GURL url("http://a/");
GURL url2("http://b/");
contents->Navigate(url);
- EXPECT_EQ(1U, GetPrefs(&profile)->size());
+ EXPECT_EQ(1U, GetPrefs(profile_)->size());
contents2->Navigate(url2);
- EXPECT_EQ(2U, GetPrefs(&profile)->size());
- service.ShutdownAssociatedBackgroundContents(ASCIIToUTF16("appid"));
- EXPECT_FALSE(service.IsTracked(contents));
- EXPECT_EQ(NULL, service.GetAppBackgroundContents(ASCIIToUTF16("appid")));
- EXPECT_EQ(1U, GetPrefs(&profile)->size());
- EXPECT_EQ(url2.spec(), GetPrefURLForApp(&profile, contents2->appid()));
+ EXPECT_EQ(2U, GetPrefs(profile_)->size());
+ service_->ShutdownAssociatedBackgroundContents(ASCIIToUTF16("appid"));
+ EXPECT_FALSE(service_->IsTracked(contents));
+ EXPECT_EQ(NULL, service_->GetAppBackgroundContents(ASCIIToUTF16("appid")));
+ EXPECT_EQ(1U, GetPrefs(profile_)->size());
+ EXPECT_EQ(url2.spec(), GetPrefURLForApp(profile_, contents2->appid()));
}

Powered by Google App Engine
This is Rietveld 408576698