| 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(
|
|
|