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

Unified Diff: chrome/browser/extensions/extension_browsertests_misc.cc

Issue 8733004: Make ExtensionService use ExtensionSet. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: + Created 9 years 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/extensions/extension_browsertests_misc.cc
diff --git a/chrome/browser/extensions/extension_browsertests_misc.cc b/chrome/browser/extensions/extension_browsertests_misc.cc
index 5d843aa2770426f4d09b48b2d3eecb5735d77b25..86e3da7b33b29895449bed593f99572595b79210 100644
--- a/chrome/browser/extensions/extension_browsertests_misc.cc
+++ b/chrome/browser/extensions/extension_browsertests_misc.cc
@@ -212,29 +212,30 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, PageActionRefreshCrash) {
FilePath base_path = test_data_dir_.AppendASCII("browsertest")
.AppendASCII("crash_44415");
// Load extension A.
- ASSERT_TRUE(LoadExtension(base_path.AppendASCII("ExtA")));
+ const Extension* extensionA = LoadExtension(base_path.AppendASCII("ExtA"));
+ ASSERT_TRUE(extensionA);
ASSERT_TRUE(WaitForPageActionVisibilityChangeTo(1));
ASSERT_EQ(size_before + 1, service->extensions()->size());
- const Extension* extensionA = service->extensions()->at(size_before);
LOG(INFO) << "Load extension A done : "
<< (base::TimeTicks::Now() - start_time).InMilliseconds()
<< " ms" << std::flush;
// Load extension B.
- ASSERT_TRUE(LoadExtension(base_path.AppendASCII("ExtB")));
+ const Extension* extensionB = LoadExtension(base_path.AppendASCII("ExtB"));
+ ASSERT_TRUE(extensionB);
ASSERT_TRUE(WaitForPageActionVisibilityChangeTo(2));
ASSERT_EQ(size_before + 2, service->extensions()->size());
- const Extension* extensionB = service->extensions()->at(size_before + 1);
LOG(INFO) << "Load extension B done : "
<< (base::TimeTicks::Now() - start_time).InMilliseconds()
<< " ms" << std::flush;
+ std::string idA = extensionA->id();
ReloadExtension(extensionA->id());
// ExtensionA has changed, so refetch it.
ASSERT_EQ(size_before + 2, service->extensions()->size());
- extensionA = service->extensions()->at(size_before + 1);
+ extensionA = service->extensions()->GetByID(idA);
LOG(INFO) << "Reload extension A done: "
<< (base::TimeTicks::Now() - start_time).InMilliseconds()
@@ -278,10 +279,10 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, TitleLocalizationBrowserAction) {
const size_t size_before = service->extensions()->size();
FilePath extension_path(test_data_dir_.AppendASCII("browsertest")
.AppendASCII("title_localized"));
- ASSERT_TRUE(LoadExtension(extension_path));
+ const Extension* extension = LoadExtension(extension_path);
+ ASSERT_TRUE(extension);
ASSERT_EQ(size_before + 1, service->extensions()->size());
- const Extension* extension = service->extensions()->at(size_before);
EXPECT_STREQ(WideToUTF8(L"Hreggvi\u00F0ur: l10n browser action").c_str(),
extension->description().c_str());
@@ -302,7 +303,8 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, TitleLocalizationPageAction) {
FilePath extension_path(test_data_dir_.AppendASCII("browsertest")
.AppendASCII("title_localized_pa"));
- ASSERT_TRUE(LoadExtension(extension_path));
+ const Extension* extension = LoadExtension(extension_path);
+ ASSERT_TRUE(extension);
// Any navigation prompts the location bar to load the page action.
GURL url = test_server()->GetURL(kLocalization);
@@ -310,7 +312,6 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, TitleLocalizationPageAction) {
ASSERT_TRUE(WaitForPageActionVisibilityChangeTo(1));
ASSERT_EQ(size_before + 1, service->extensions()->size());
- const Extension* extension = service->extensions()->at(size_before);
EXPECT_STREQ(WideToUTF8(L"Hreggvi\u00F0ur: l10n page action").c_str(),
extension->description().c_str());
@@ -387,6 +388,7 @@ bool ValidatePageElement(TabContents* tab,
void NavigateToFeedAndValidate(net::TestServer* server,
const std::string& url,
Browser* browser,
+ std::string extension_id,
bool sniff_xml_type,
const std::string& expected_feed_title,
const std::string& expected_item_title,
@@ -396,12 +398,9 @@ void NavigateToFeedAndValidate(net::TestServer* server,
// TODO(finnur): Implement this is a non-flaky way.
}
- ExtensionService* service = browser->profile()->GetExtensionService();
- const Extension* extension = service->extensions()->back();
- std::string id = extension->id();
-
// Navigate to the subscribe page directly.
- ui_test_utils::NavigateToURL(browser, GetFeedUrl(server, url, true, id));
+ ui_test_utils::NavigateToURL(browser,
+ GetFeedUrl(server, url, true, extension_id));
TabContents* tab = browser->GetSelectedTabContents();
ASSERT_TRUE(ValidatePageElement(tab,
@@ -425,10 +424,12 @@ void NavigateToFeedAndValidate(net::TestServer* server,
IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedValidFeed1) {
ASSERT_TRUE(test_server()->Start());
- ASSERT_TRUE(LoadExtension(
- test_data_dir_.AppendASCII("subscribe_page_action")));
+ const Extension* extension = LoadExtension(
+ test_data_dir_.AppendASCII("subscribe_page_action"));
+ ASSERT_TRUE(extension);
+ std::string id = extension->id();
- NavigateToFeedAndValidate(test_server(), kValidFeed1, browser(), true,
+ NavigateToFeedAndValidate(test_server(), kValidFeed1, browser(), id, true,
"Feed for MyFeedTitle",
"Title 1",
"Desc",
@@ -438,10 +439,12 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedValidFeed1) {
IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedValidFeed2) {
ASSERT_TRUE(test_server()->Start());
- ASSERT_TRUE(LoadExtension(
- test_data_dir_.AppendASCII("subscribe_page_action")));
+ const Extension* extension = LoadExtension(
+ test_data_dir_.AppendASCII("subscribe_page_action"));
+ ASSERT_TRUE(extension);
+ std::string id = extension->id();
- NavigateToFeedAndValidate(test_server(), kValidFeed2, browser(), true,
+ NavigateToFeedAndValidate(test_server(), kValidFeed2, browser(), id, true,
"Feed for MyFeed2",
"My item title1",
"This is a summary.",
@@ -451,10 +454,12 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedValidFeed2) {
IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedValidFeed3) {
ASSERT_TRUE(test_server()->Start());
- ASSERT_TRUE(LoadExtension(
- test_data_dir_.AppendASCII("subscribe_page_action")));
+ const Extension* extension = LoadExtension(
+ test_data_dir_.AppendASCII("subscribe_page_action"));
+ ASSERT_TRUE(extension);
+ std::string id = extension->id();
- NavigateToFeedAndValidate(test_server(), kValidFeed3, browser(), true,
+ NavigateToFeedAndValidate(test_server(), kValidFeed3, browser(), id, true,
"Feed for Google Code buglist rss feed",
"My dear title",
"My dear content",
@@ -464,10 +469,12 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedValidFeed3) {
IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedValidFeed4) {
ASSERT_TRUE(test_server()->Start());
- ASSERT_TRUE(LoadExtension(
- test_data_dir_.AppendASCII("subscribe_page_action")));
+ const Extension* extension = LoadExtension(
+ test_data_dir_.AppendASCII("subscribe_page_action"));
+ ASSERT_TRUE(extension);
+ std::string id = extension->id();
- NavigateToFeedAndValidate(test_server(), kValidFeed4, browser(), true,
+ NavigateToFeedAndValidate(test_server(), kValidFeed4, browser(), id, true,
"Feed for Title chars <script> %23 stop",
"Title chars %23 stop",
"My dear content %23 stop",
@@ -477,12 +484,14 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedValidFeed4) {
IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedValidFeed0) {
ASSERT_TRUE(test_server()->Start());
- ASSERT_TRUE(LoadExtension(
- test_data_dir_.AppendASCII("subscribe_page_action")));
+ const Extension* extension = LoadExtension(
+ test_data_dir_.AppendASCII("subscribe_page_action"));
+ ASSERT_TRUE(extension);
+ std::string id = extension->id();
// Try a feed with a link with an onclick handler (before r27440 this would
// trigger a NOTREACHED).
- NavigateToFeedAndValidate(test_server(), kValidFeed0, browser(), true,
+ NavigateToFeedAndValidate(test_server(), kValidFeed0, browser(), id, true,
"Feed for MyFeedTitle",
"Title 1",
"Desc VIDEO",
@@ -492,11 +501,13 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedValidFeed0) {
IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedValidFeed5) {
ASSERT_TRUE(test_server()->Start());
- ASSERT_TRUE(LoadExtension(
- test_data_dir_.AppendASCII("subscribe_page_action")));
+ const Extension* extension = LoadExtension(
+ test_data_dir_.AppendASCII("subscribe_page_action"));
+ ASSERT_TRUE(extension);
+ std::string id = extension->id();
// Feed with valid but mostly empty xml.
- NavigateToFeedAndValidate(test_server(), kValidFeed5, browser(), true,
+ NavigateToFeedAndValidate(test_server(), kValidFeed5, browser(), id, true,
"Feed for Unknown feed name",
"element 'anchor_0' not found",
"element 'desc_0' not found",
@@ -506,11 +517,13 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedValidFeed5) {
IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedValidFeed6) {
ASSERT_TRUE(test_server()->Start());
- ASSERT_TRUE(LoadExtension(
- test_data_dir_.AppendASCII("subscribe_page_action")));
+ const Extension* extension = LoadExtension(
+ test_data_dir_.AppendASCII("subscribe_page_action"));
+ ASSERT_TRUE(extension);
+ std::string id = extension->id();
// Feed that is technically invalid but still parseable.
- NavigateToFeedAndValidate(test_server(), kValidFeed6, browser(), true,
+ NavigateToFeedAndValidate(test_server(), kValidFeed6, browser(), id, true,
"Feed for MyFeedTitle",
"Title 1",
"Desc",
@@ -520,11 +533,13 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedValidFeed6) {
IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedInvalidFeed1) {
ASSERT_TRUE(test_server()->Start());
- ASSERT_TRUE(LoadExtension(
- test_data_dir_.AppendASCII("subscribe_page_action")));
+ const Extension* extension = LoadExtension(
+ test_data_dir_.AppendASCII("subscribe_page_action"));
+ ASSERT_TRUE(extension);
+ std::string id = extension->id();
// Try an empty feed.
- NavigateToFeedAndValidate(test_server(), kInvalidFeed1, browser(), false,
+ NavigateToFeedAndValidate(test_server(), kInvalidFeed1, browser(), id, false,
"Feed for Unknown feed name",
"element 'anchor_0' not found",
"element 'desc_0' not found",
@@ -534,11 +549,13 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedInvalidFeed1) {
IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedInvalidFeed2) {
ASSERT_TRUE(test_server()->Start());
- ASSERT_TRUE(LoadExtension(
- test_data_dir_.AppendASCII("subscribe_page_action")));
+ const Extension* extension = LoadExtension(
+ test_data_dir_.AppendASCII("subscribe_page_action"));
+ ASSERT_TRUE(extension);
+ std::string id = extension->id();
// Try a garbage feed.
- NavigateToFeedAndValidate(test_server(), kInvalidFeed2, browser(), false,
+ NavigateToFeedAndValidate(test_server(), kInvalidFeed2, browser(), id, false,
"Feed for Unknown feed name",
"element 'anchor_0' not found",
"element 'desc_0' not found",
@@ -548,11 +565,13 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedInvalidFeed2) {
IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedInvalidFeed3) {
ASSERT_TRUE(test_server()->Start());
- ASSERT_TRUE(LoadExtension(
- test_data_dir_.AppendASCII("subscribe_page_action")));
+ const Extension* extension = LoadExtension(
+ test_data_dir_.AppendASCII("subscribe_page_action"));
+ ASSERT_TRUE(extension);
+ std::string id = extension->id();
// Try a feed that doesn't exist.
- NavigateToFeedAndValidate(test_server(), "foo.xml", browser(), false,
+ NavigateToFeedAndValidate(test_server(), "foo.xml", browser(), id, false,
"Feed for Unknown feed name",
"element 'anchor_0' not found",
"element 'desc_0' not found",
@@ -562,8 +581,10 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedInvalidFeed3) {
IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedInvalidFeed4) {
ASSERT_TRUE(test_server()->Start());
- ASSERT_TRUE(LoadExtension(
- test_data_dir_.AppendASCII("subscribe_page_action")));
+ const Extension* extension = LoadExtension(
+ test_data_dir_.AppendASCII("subscribe_page_action"));
+ ASSERT_TRUE(extension);
+ std::string id = extension->id();
// subscribe.js shouldn't double-decode the URL passed in. Otherwise feed
// links such as http://search.twitter.com/search.atom?lang=en&q=%23chrome
@@ -572,25 +593,29 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedInvalidFeed4) {
// uses an underscore instead of a hash, but the principle is the same. If
// we start erroneously double decoding again, the path (and the feed) will
// become valid resulting in a failure for this test.
- NavigateToFeedAndValidate(test_server(), kFeedTripleEncoded, browser(), true,
- "Feed for Unknown feed name",
- "element 'anchor_0' not found",
- "element 'desc_0' not found",
- "This feed contains no entries.");
+ NavigateToFeedAndValidate(
+ test_server(), kFeedTripleEncoded, browser(), id, true,
+ "Feed for Unknown feed name",
+ "element 'anchor_0' not found",
+ "element 'desc_0' not found",
+ "This feed contains no entries.");
}
IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedValidFeedNoLinks) {
ASSERT_TRUE(test_server()->Start());
- ASSERT_TRUE(LoadExtension(
- test_data_dir_.AppendASCII("subscribe_page_action")));
+ const Extension* extension = LoadExtension(
+ test_data_dir_.AppendASCII("subscribe_page_action"));
+ ASSERT_TRUE(extension);
+ std::string id = extension->id();
// Valid feed but containing no links.
- NavigateToFeedAndValidate(test_server(), kValidFeedNoLinks, browser(), true,
- "Feed for MyFeedTitle",
- "Title with no link",
- "Desc",
- "No error");
+ NavigateToFeedAndValidate(
+ test_server(), kValidFeedNoLinks, browser(), id, true,
+ "Feed for MyFeedTitle",
+ "Title with no link",
+ "Desc",
+ "No error");
}
// Tests that an error raised during an async function still fires
@@ -722,7 +747,8 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, MAYBE_PluginLoadUnload) {
ExtensionService* service = browser()->profile()->GetExtensionService();
service->set_show_extensions_prompts(false);
const size_t size_before = service->extensions()->size();
- ASSERT_TRUE(LoadExtension(extension_dir));
+ const Extension* extension = LoadExtension(extension_dir);
+ ASSERT_TRUE(extension);
EXPECT_EQ(size_before + 1, service->extensions()->size());
// Now the plugin should be in the cache, but we have to reload the page for
// it to work.
@@ -742,7 +768,7 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, MAYBE_PluginLoadUnload) {
EXPECT_TRUE(result);
EXPECT_EQ(size_before + 1, service->extensions()->size());
- UnloadExtension(service->extensions()->at(size_before)->id());
+ UnloadExtension(extension->id());
EXPECT_EQ(size_before, service->extensions()->size());
// Now the plugin should be unloaded, and the page should be broken.
@@ -784,11 +810,11 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, MAYBE_PluginPrivate) {
ExtensionService* service = browser()->profile()->GetExtensionService();
service->set_show_extensions_prompts(false);
const size_t size_before = service->extensions()->size();
- ASSERT_TRUE(LoadExtension(extension_dir));
+ const Extension* extension = LoadExtension(extension_dir);
+ ASSERT_TRUE(extension);
EXPECT_EQ(size_before + 1, service->extensions()->size());
// Load the test page through the extension URL, and the plugin should work.
- const Extension* extension = service->extensions()->back();
ui_test_utils::NavigateToURL(browser(),
extension->GetResourceURL("test.html"));
TabContents* tab = browser()->GetSelectedTabContents();
@@ -825,11 +851,11 @@ static const wchar_t* jscript_click_option_button =
// Disabled. See http://crbug.com/26948 for details.
IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, DISABLED_OptionsPage) {
// Install an extension with an options page.
- ASSERT_TRUE(InstallExtension(test_data_dir_.AppendASCII("options.crx"), 1));
+ const Extension* extension =
+ InstallExtension(test_data_dir_.AppendASCII("options.crx"), 1);
+ ASSERT_TRUE(extension);
ExtensionService* service = browser()->profile()->GetExtensionService();
- const ExtensionList* extensions = service->extensions();
- ASSERT_EQ(1u, extensions->size());
- const Extension* extension = extensions->at(0);
+ ASSERT_EQ(1u, service->extensions()->size());
// Go to the Extension Settings page and click the Options button.
ui_test_utils::NavigateToURL(
« no previous file with comments | « chrome/browser/extensions/extension_browsertest.cc ('k') | chrome/browser/extensions/extension_context_menu_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698