OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/ref_counted.h" | 5 #include "base/ref_counted.h" |
6 #include "chrome/browser/browser.h" | 6 #include "chrome/browser/browser.h" |
7 #include "chrome/browser/browser_list.h" | 7 #include "chrome/browser/browser_list.h" |
8 #include "chrome/browser/renderer_host/render_view_host.h" | 8 #include "chrome/browser/renderer_host/render_view_host.h" |
9 #include "chrome/browser/extensions/autoupdate_interceptor.h" | 9 #include "chrome/browser/extensions/autoupdate_interceptor.h" |
10 #include "chrome/browser/extensions/extension_browsertest.h" | 10 #include "chrome/browser/extensions/extension_browsertest.h" |
11 #include "chrome/browser/extensions/extension_error_reporter.h" | 11 #include "chrome/browser/extensions/extension_error_reporter.h" |
12 #include "chrome/browser/extensions/extension_host.h" | 12 #include "chrome/browser/extensions/extension_host.h" |
13 #include "chrome/browser/extensions/extension_process_manager.h" | 13 #include "chrome/browser/extensions/extension_process_manager.h" |
14 #include "chrome/browser/extensions/extension_tabs_module.h" | 14 #include "chrome/browser/extensions/extension_tabs_module.h" |
15 #include "chrome/browser/extensions/extensions_service.h" | 15 #include "chrome/browser/extensions/extensions_service.h" |
16 #include "chrome/browser/extensions/extension_updater.h" | 16 #include "chrome/browser/extensions/extension_updater.h" |
17 #include "chrome/browser/profile.h" | 17 #include "chrome/browser/profile.h" |
18 #include "chrome/browser/renderer_host/site_instance.h" | 18 #include "chrome/browser/renderer_host/site_instance.h" |
19 #include "chrome/browser/tab_contents/tab_contents.h" | 19 #include "chrome/browser/tab_contents/tab_contents.h" |
20 #if defined(TOOLKIT_VIEWS) | 20 #if defined(TOOLKIT_VIEWS) |
21 #include "chrome/browser/views/extensions/extension_shelf.h" | 21 #include "chrome/browser/views/extensions/extension_shelf.h" |
22 #include "chrome/browser/views/frame/browser_view.h" | 22 #include "chrome/browser/views/frame/browser_view.h" |
23 #endif | 23 #endif |
24 #include "chrome/common/chrome_paths.h" | 24 #include "chrome/common/chrome_paths.h" |
25 #include "chrome/common/extensions/extension_action.h" | 25 #include "chrome/common/extensions/extension_action.h" |
26 #include "chrome/common/notification_service.h" | 26 #include "chrome/common/notification_service.h" |
27 #include "chrome/common/url_constants.h" | 27 #include "chrome/common/url_constants.h" |
28 #include "chrome/test/ui_test_utils.h" | 28 #include "chrome/test/ui_test_utils.h" |
29 #include "net/base/net_util.h" | 29 #include "net/base/net_util.h" |
| 30 #include "net/test/test_server.h" |
30 | 31 |
31 const std::string kSubscribePage = "/subscribe.html"; | 32 const std::string kSubscribePage = "/subscribe.html"; |
32 const std::string kFeedPage = "files/feeds/feed.html"; | 33 const std::string kFeedPage = "files/feeds/feed.html"; |
33 const std::string kFeedPageMultiRel = "files/feeds/feed_multi_rel.html"; | 34 const std::string kFeedPageMultiRel = "files/feeds/feed_multi_rel.html"; |
34 const std::string kNoFeedPage = "files/feeds/no_feed.html"; | 35 const std::string kNoFeedPage = "files/feeds/no_feed.html"; |
35 const std::string kValidFeed0 = "files/feeds/feed_script.xml"; | 36 const std::string kValidFeed0 = "files/feeds/feed_script.xml"; |
36 const std::string kValidFeed1 = "files/feeds/feed1.xml"; | 37 const std::string kValidFeed1 = "files/feeds/feed1.xml"; |
37 const std::string kValidFeed2 = "files/feeds/feed2.xml"; | 38 const std::string kValidFeed2 = "files/feeds/feed2.xml"; |
38 const std::string kValidFeed3 = "files/feeds/feed3.xml"; | 39 const std::string kValidFeed3 = "files/feeds/feed3.xml"; |
39 const std::string kValidFeed4 = "files/feeds/feed4.xml"; | 40 const std::string kValidFeed4 = "files/feeds/feed4.xml"; |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
199 GURL("chrome-extension://behllobkkfkfnphdnhnkndlbkcpglgmj/page.html")); | 200 GURL("chrome-extension://behllobkkfkfnphdnhnkndlbkcpglgmj/page.html")); |
200 result = false; | 201 result = false; |
201 ui_test_utils::ExecuteJavaScriptAndExtractBool( | 202 ui_test_utils::ExecuteJavaScriptAndExtractBool( |
202 browser()->GetSelectedTabContents()->render_view_host(), L"", | 203 browser()->GetSelectedTabContents()->render_view_host(), L"", |
203 L"testTabsAPI()", &result); | 204 L"testTabsAPI()", &result); |
204 EXPECT_TRUE(result); | 205 EXPECT_TRUE(result); |
205 } | 206 } |
206 | 207 |
207 // Tests that we can load page actions in the Omnibox. | 208 // Tests that we can load page actions in the Omnibox. |
208 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, PageAction) { | 209 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, PageAction) { |
209 HTTPTestServer* server = StartHTTPServer(); | 210 net::HTTPTestServer* server = StartHTTPServer(); |
210 ASSERT_TRUE(server); | 211 ASSERT_TRUE(server); |
211 | 212 |
212 // This page action will not show an icon, since it doesn't specify one but | 213 // This page action will not show an icon, since it doesn't specify one but |
213 // is included here to test for a crash (http://crbug.com/25562). | 214 // is included here to test for a crash (http://crbug.com/25562). |
214 ASSERT_TRUE(LoadExtension( | 215 ASSERT_TRUE(LoadExtension( |
215 test_data_dir_.AppendASCII("browsertest") | 216 test_data_dir_.AppendASCII("browsertest") |
216 .AppendASCII("crash_25562"))); | 217 .AppendASCII("crash_25562"))); |
217 | 218 |
218 ASSERT_TRUE(LoadExtension( | 219 ASSERT_TRUE(LoadExtension( |
219 test_data_dir_.AppendASCII("subscribe_page_action"))); | 220 test_data_dir_.AppendASCII("subscribe_page_action"))); |
220 | 221 |
221 ASSERT_TRUE(WaitForPageActionVisibilityChangeTo(0)); | 222 ASSERT_TRUE(WaitForPageActionVisibilityChangeTo(0)); |
222 | 223 |
223 // Navigate to the feed page. | 224 // Navigate to the feed page. |
224 GURL feed_url = server->TestServerPage(kFeedPage); | 225 GURL feed_url = server->TestServerPage(kFeedPage); |
225 ui_test_utils::NavigateToURL(browser(), feed_url); | 226 ui_test_utils::NavigateToURL(browser(), feed_url); |
226 // We should now have one page action ready to go in the LocationBar. | 227 // We should now have one page action ready to go in the LocationBar. |
227 ASSERT_TRUE(WaitForPageActionVisibilityChangeTo(1)); | 228 ASSERT_TRUE(WaitForPageActionVisibilityChangeTo(1)); |
228 | 229 |
229 // Navigate to a page with no feed. | 230 // Navigate to a page with no feed. |
230 GURL no_feed = server->TestServerPage(kNoFeedPage); | 231 GURL no_feed = server->TestServerPage(kNoFeedPage); |
231 ui_test_utils::NavigateToURL(browser(), no_feed); | 232 ui_test_utils::NavigateToURL(browser(), no_feed); |
232 // Make sure the page action goes away. | 233 // Make sure the page action goes away. |
233 ASSERT_TRUE(WaitForPageActionVisibilityChangeTo(0)); | 234 ASSERT_TRUE(WaitForPageActionVisibilityChangeTo(0)); |
234 } | 235 } |
235 | 236 |
236 // Tests that we don't lose the page action icon on in-page navigations. | 237 // Tests that we don't lose the page action icon on in-page navigations. |
237 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, PageActionInPageNavigation) { | 238 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, PageActionInPageNavigation) { |
238 HTTPTestServer* server = StartHTTPServer(); | 239 net::HTTPTestServer* server = StartHTTPServer(); |
239 ASSERT_TRUE(server); | 240 ASSERT_TRUE(server); |
240 | 241 |
241 FilePath extension_path(test_data_dir_.AppendASCII("api_test") | 242 FilePath extension_path(test_data_dir_.AppendASCII("api_test") |
242 .AppendASCII("page_action") | 243 .AppendASCII("page_action") |
243 .AppendASCII("hash_change")); | 244 .AppendASCII("hash_change")); |
244 ASSERT_TRUE(LoadExtension(extension_path)); | 245 ASSERT_TRUE(LoadExtension(extension_path)); |
245 | 246 |
246 // Page action should become visible when we navigate here. | 247 // Page action should become visible when we navigate here. |
247 GURL feed_url = server->TestServerPage(kHashPageA); | 248 GURL feed_url = server->TestServerPage(kHashPageA); |
248 ui_test_utils::NavigateToURL(browser(), feed_url); | 249 ui_test_utils::NavigateToURL(browser(), feed_url); |
249 ASSERT_TRUE(WaitForPageActionVisibilityChangeTo(1)); | 250 ASSERT_TRUE(WaitForPageActionVisibilityChangeTo(1)); |
250 | 251 |
251 // In-page navigation, page action should remain. | 252 // In-page navigation, page action should remain. |
252 feed_url = server->TestServerPage(kHashPageAHash); | 253 feed_url = server->TestServerPage(kHashPageAHash); |
253 ui_test_utils::NavigateToURL(browser(), feed_url); | 254 ui_test_utils::NavigateToURL(browser(), feed_url); |
254 ASSERT_TRUE(WaitForPageActionVisibilityChangeTo(1)); | 255 ASSERT_TRUE(WaitForPageActionVisibilityChangeTo(1)); |
255 | 256 |
256 // Not an in-page navigation, page action should go away. | 257 // Not an in-page navigation, page action should go away. |
257 feed_url = server->TestServerPage(kHashPageB); | 258 feed_url = server->TestServerPage(kHashPageB); |
258 ui_test_utils::NavigateToURL(browser(), feed_url); | 259 ui_test_utils::NavigateToURL(browser(), feed_url); |
259 ASSERT_TRUE(WaitForPageActionVisibilityChangeTo(0)); | 260 ASSERT_TRUE(WaitForPageActionVisibilityChangeTo(0)); |
260 } | 261 } |
261 | 262 |
262 // Tests that the location bar forgets about unloaded page actions. | 263 // Tests that the location bar forgets about unloaded page actions. |
263 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, UnloadPageAction) { | 264 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, UnloadPageAction) { |
264 HTTPTestServer* server = StartHTTPServer(); | 265 net::HTTPTestServer* server = StartHTTPServer(); |
265 ASSERT_TRUE(server); | 266 ASSERT_TRUE(server); |
266 | 267 |
267 FilePath extension_path(test_data_dir_.AppendASCII("subscribe_page_action")); | 268 FilePath extension_path(test_data_dir_.AppendASCII("subscribe_page_action")); |
268 ASSERT_TRUE(LoadExtension(extension_path)); | 269 ASSERT_TRUE(LoadExtension(extension_path)); |
269 | 270 |
270 // Navigation prompts the location bar to load page actions. | 271 // Navigation prompts the location bar to load page actions. |
271 GURL feed_url = server->TestServerPage(kFeedPage); | 272 GURL feed_url = server->TestServerPage(kFeedPage); |
272 ui_test_utils::NavigateToURL(browser(), feed_url); | 273 ui_test_utils::NavigateToURL(browser(), feed_url); |
273 ASSERT_TRUE(WaitForPageActionCountChangeTo(1)); | 274 ASSERT_TRUE(WaitForPageActionCountChangeTo(1)); |
274 | 275 |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
309 | 310 |
310 ReloadExtension(extensionB->id()); | 311 ReloadExtension(extensionB->id()); |
311 | 312 |
312 // This is where it would crash, before http://crbug.com/44415 was fixed. | 313 // This is where it would crash, before http://crbug.com/44415 was fixed. |
313 ReloadExtension(extensionA->id()); | 314 ReloadExtension(extensionA->id()); |
314 } | 315 } |
315 | 316 |
316 // Makes sure that the RSS detects RSS feed links, even when rel tag contains | 317 // Makes sure that the RSS detects RSS feed links, even when rel tag contains |
317 // more than just "alternate". | 318 // more than just "alternate". |
318 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, RSSMultiRelLink) { | 319 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, RSSMultiRelLink) { |
319 HTTPTestServer* server = StartHTTPServer(); | 320 net::HTTPTestServer* server = StartHTTPServer(); |
320 ASSERT_TRUE(server); | 321 ASSERT_TRUE(server); |
321 | 322 |
322 ASSERT_TRUE(LoadExtension( | 323 ASSERT_TRUE(LoadExtension( |
323 test_data_dir_.AppendASCII("subscribe_page_action"))); | 324 test_data_dir_.AppendASCII("subscribe_page_action"))); |
324 | 325 |
325 ASSERT_TRUE(WaitForPageActionVisibilityChangeTo(0)); | 326 ASSERT_TRUE(WaitForPageActionVisibilityChangeTo(0)); |
326 | 327 |
327 // Navigate to the feed page. | 328 // Navigate to the feed page. |
328 GURL feed_url = server->TestServerPage(kFeedPageMultiRel); | 329 GURL feed_url = server->TestServerPage(kFeedPageMultiRel); |
329 ui_test_utils::NavigateToURL(browser(), feed_url); | 330 ui_test_utils::NavigateToURL(browser(), feed_url); |
(...skipping 18 matching lines...) Expand all Loading... |
348 EXPECT_STREQ(WideToUTF8(L"Hreggvi\u00F0ur is my name").c_str(), | 349 EXPECT_STREQ(WideToUTF8(L"Hreggvi\u00F0ur is my name").c_str(), |
349 extension->name().c_str()); | 350 extension->name().c_str()); |
350 int tab_id = ExtensionTabUtil::GetTabId(browser()->GetSelectedTabContents()); | 351 int tab_id = ExtensionTabUtil::GetTabId(browser()->GetSelectedTabContents()); |
351 EXPECT_STREQ(WideToUTF8(L"Hreggvi\u00F0ur").c_str(), | 352 EXPECT_STREQ(WideToUTF8(L"Hreggvi\u00F0ur").c_str(), |
352 extension->browser_action()->GetTitle(tab_id).c_str()); | 353 extension->browser_action()->GetTitle(tab_id).c_str()); |
353 } | 354 } |
354 | 355 |
355 // Tests that tooltips of a page action icon can be specified using UTF8. | 356 // Tests that tooltips of a page action icon can be specified using UTF8. |
356 // See http://crbug.com/25349. | 357 // See http://crbug.com/25349. |
357 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, TitleLocalizationPageAction) { | 358 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, TitleLocalizationPageAction) { |
358 HTTPTestServer* server = StartHTTPServer(); | 359 net::HTTPTestServer* server = StartHTTPServer(); |
359 ASSERT_TRUE(server); | 360 ASSERT_TRUE(server); |
360 | 361 |
361 ExtensionsService* service = browser()->profile()->GetExtensionsService(); | 362 ExtensionsService* service = browser()->profile()->GetExtensionsService(); |
362 const size_t size_before = service->extensions()->size(); | 363 const size_t size_before = service->extensions()->size(); |
363 | 364 |
364 FilePath extension_path(test_data_dir_.AppendASCII("browsertest") | 365 FilePath extension_path(test_data_dir_.AppendASCII("browsertest") |
365 .AppendASCII("title_localized_pa")); | 366 .AppendASCII("title_localized_pa")); |
366 ASSERT_TRUE(LoadExtension(extension_path)); | 367 ASSERT_TRUE(LoadExtension(extension_path)); |
367 | 368 |
368 // Any navigation prompts the location bar to load the page action. | 369 // Any navigation prompts the location bar to load the page action. |
369 GURL url = server->TestServerPage(kLocalization); | 370 GURL url = server->TestServerPage(kLocalization); |
370 ui_test_utils::NavigateToURL(browser(), url); | 371 ui_test_utils::NavigateToURL(browser(), url); |
371 ASSERT_TRUE(WaitForPageActionVisibilityChangeTo(1)); | 372 ASSERT_TRUE(WaitForPageActionVisibilityChangeTo(1)); |
372 | 373 |
373 ASSERT_EQ(size_before + 1, service->extensions()->size()); | 374 ASSERT_EQ(size_before + 1, service->extensions()->size()); |
374 Extension* extension = service->extensions()->at(size_before); | 375 Extension* extension = service->extensions()->at(size_before); |
375 | 376 |
376 EXPECT_STREQ(WideToUTF8(L"Hreggvi\u00F0ur: l10n page action").c_str(), | 377 EXPECT_STREQ(WideToUTF8(L"Hreggvi\u00F0ur: l10n page action").c_str(), |
377 extension->description().c_str()); | 378 extension->description().c_str()); |
378 EXPECT_STREQ(WideToUTF8(L"Hreggvi\u00F0ur is my name").c_str(), | 379 EXPECT_STREQ(WideToUTF8(L"Hreggvi\u00F0ur is my name").c_str(), |
379 extension->name().c_str()); | 380 extension->name().c_str()); |
380 int tab_id = ExtensionTabUtil::GetTabId(browser()->GetSelectedTabContents()); | 381 int tab_id = ExtensionTabUtil::GetTabId(browser()->GetSelectedTabContents()); |
381 EXPECT_STREQ(WideToUTF8(L"Hreggvi\u00F0ur").c_str(), | 382 EXPECT_STREQ(WideToUTF8(L"Hreggvi\u00F0ur").c_str(), |
382 extension->page_action()->GetTitle(tab_id).c_str()); | 383 extension->page_action()->GetTitle(tab_id).c_str()); |
383 } | 384 } |
384 | 385 |
385 GURL GetFeedUrl(HTTPTestServer* server, const std::string& feed_page, | 386 GURL GetFeedUrl(net::HTTPTestServer* server, const std::string& feed_page, |
386 bool direct_url, std::string extension_id) { | 387 bool direct_url, std::string extension_id) { |
387 GURL feed_url = server->TestServerPage(feed_page); | 388 GURL feed_url = server->TestServerPage(feed_page); |
388 if (direct_url) { | 389 if (direct_url) { |
389 // We navigate directly to the subscribe page for feeds where the feed | 390 // We navigate directly to the subscribe page for feeds where the feed |
390 // sniffing won't work, in other words, as is the case for malformed feeds. | 391 // sniffing won't work, in other words, as is the case for malformed feeds. |
391 return GURL(std::string(chrome::kExtensionScheme) + | 392 return GURL(std::string(chrome::kExtensionScheme) + |
392 chrome::kStandardSchemeSeparator + | 393 chrome::kStandardSchemeSeparator + |
393 extension_id + std::string(kSubscribePage) + std::string("?") + | 394 extension_id + std::string(kSubscribePage) + std::string("?") + |
394 feed_url.spec() + std::string("&synchronous")); | 395 feed_url.spec() + std::string("&synchronous")); |
395 } else { | 396 } else { |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
438 return false; | 439 return false; |
439 | 440 |
440 EXPECT_STREQ(expected_value.c_str(), returned_value.c_str()); | 441 EXPECT_STREQ(expected_value.c_str(), returned_value.c_str()); |
441 return expected_value == returned_value; | 442 return expected_value == returned_value; |
442 } | 443 } |
443 | 444 |
444 // Navigates to a feed page and, if |sniff_xml_type| is set, wait for the | 445 // Navigates to a feed page and, if |sniff_xml_type| is set, wait for the |
445 // extension to kick in, detect the feed and redirect to a feed preview page. | 446 // extension to kick in, detect the feed and redirect to a feed preview page. |
446 // |sniff_xml_type| is generally set to true if the feed is sniffable and false | 447 // |sniff_xml_type| is generally set to true if the feed is sniffable and false |
447 // for invalid feeds. | 448 // for invalid feeds. |
448 void NavigateToFeedAndValidate(HTTPTestServer* server, | 449 void NavigateToFeedAndValidate(net::HTTPTestServer* server, |
449 const std::string& url, | 450 const std::string& url, |
450 Browser* browser, | 451 Browser* browser, |
451 bool sniff_xml_type, | 452 bool sniff_xml_type, |
452 const std::string& expected_feed_title, | 453 const std::string& expected_feed_title, |
453 const std::string& expected_item_title, | 454 const std::string& expected_item_title, |
454 const std::string& expected_item_desc, | 455 const std::string& expected_item_desc, |
455 const std::string& expected_error) { | 456 const std::string& expected_error) { |
456 if (sniff_xml_type) { | 457 if (sniff_xml_type) { |
457 // TODO(finnur): Implement this is a non-flaky way. | 458 // TODO(finnur): Implement this is a non-flaky way. |
458 } | 459 } |
(...skipping 18 matching lines...) Expand all Loading... |
477 L"//html/body/div/iframe[1]", | 478 L"//html/body/div/iframe[1]", |
478 jscript_desc, | 479 jscript_desc, |
479 expected_item_desc)); | 480 expected_item_desc)); |
480 ASSERT_TRUE(ValidatePageElement(tab, | 481 ASSERT_TRUE(ValidatePageElement(tab, |
481 L"//html/body/div/iframe[1]", | 482 L"//html/body/div/iframe[1]", |
482 jscript_error, | 483 jscript_error, |
483 expected_error)); | 484 expected_error)); |
484 } | 485 } |
485 | 486 |
486 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedValidFeed1) { | 487 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedValidFeed1) { |
487 HTTPTestServer* server = StartHTTPServer(); | 488 net::HTTPTestServer* server = StartHTTPServer(); |
488 ASSERT_TRUE(server); | 489 ASSERT_TRUE(server); |
489 | 490 |
490 ASSERT_TRUE(LoadExtension( | 491 ASSERT_TRUE(LoadExtension( |
491 test_data_dir_.AppendASCII("subscribe_page_action"))); | 492 test_data_dir_.AppendASCII("subscribe_page_action"))); |
492 | 493 |
493 NavigateToFeedAndValidate(server, kValidFeed1, browser(), true, | 494 NavigateToFeedAndValidate(server, kValidFeed1, browser(), true, |
494 "Feed for MyFeedTitle", | 495 "Feed for MyFeedTitle", |
495 "Title 1", | 496 "Title 1", |
496 "Desc", | 497 "Desc", |
497 "No error"); | 498 "No error"); |
498 } | 499 } |
499 | 500 |
500 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedValidFeed2) { | 501 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedValidFeed2) { |
501 HTTPTestServer* server = StartHTTPServer(); | 502 net::HTTPTestServer* server = StartHTTPServer(); |
502 ASSERT_TRUE(server); | 503 ASSERT_TRUE(server); |
503 | 504 |
504 ASSERT_TRUE(LoadExtension( | 505 ASSERT_TRUE(LoadExtension( |
505 test_data_dir_.AppendASCII("subscribe_page_action"))); | 506 test_data_dir_.AppendASCII("subscribe_page_action"))); |
506 | 507 |
507 NavigateToFeedAndValidate(server, kValidFeed2, browser(), true, | 508 NavigateToFeedAndValidate(server, kValidFeed2, browser(), true, |
508 "Feed for MyFeed2", | 509 "Feed for MyFeed2", |
509 "My item title1", | 510 "My item title1", |
510 "This is a summary.", | 511 "This is a summary.", |
511 "No error"); | 512 "No error"); |
512 } | 513 } |
513 | 514 |
514 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedValidFeed3) { | 515 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedValidFeed3) { |
515 HTTPTestServer* server = StartHTTPServer(); | 516 net::HTTPTestServer* server = StartHTTPServer(); |
516 ASSERT_TRUE(server); | 517 ASSERT_TRUE(server); |
517 | 518 |
518 ASSERT_TRUE(LoadExtension( | 519 ASSERT_TRUE(LoadExtension( |
519 test_data_dir_.AppendASCII("subscribe_page_action"))); | 520 test_data_dir_.AppendASCII("subscribe_page_action"))); |
520 | 521 |
521 NavigateToFeedAndValidate(server, kValidFeed3, browser(), true, | 522 NavigateToFeedAndValidate(server, kValidFeed3, browser(), true, |
522 "Feed for Google Code buglist rss feed", | 523 "Feed for Google Code buglist rss feed", |
523 "My dear title", | 524 "My dear title", |
524 "My dear content", | 525 "My dear content", |
525 "No error"); | 526 "No error"); |
526 } | 527 } |
527 | 528 |
528 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedValidFeed4) { | 529 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedValidFeed4) { |
529 HTTPTestServer* server = StartHTTPServer(); | 530 net::HTTPTestServer* server = StartHTTPServer(); |
530 ASSERT_TRUE(server); | 531 ASSERT_TRUE(server); |
531 | 532 |
532 ASSERT_TRUE(LoadExtension( | 533 ASSERT_TRUE(LoadExtension( |
533 test_data_dir_.AppendASCII("subscribe_page_action"))); | 534 test_data_dir_.AppendASCII("subscribe_page_action"))); |
534 | 535 |
535 NavigateToFeedAndValidate(server, kValidFeed4, browser(), true, | 536 NavigateToFeedAndValidate(server, kValidFeed4, browser(), true, |
536 "Feed for Title chars <script> %23 stop", | 537 "Feed for Title chars <script> %23 stop", |
537 "Title chars %23 stop", | 538 "Title chars %23 stop", |
538 "My dear content %23 stop", | 539 "My dear content %23 stop", |
539 "No error"); | 540 "No error"); |
540 } | 541 } |
541 | 542 |
542 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedValidFeed0) { | 543 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedValidFeed0) { |
543 HTTPTestServer* server = StartHTTPServer(); | 544 net::HTTPTestServer* server = StartHTTPServer(); |
544 ASSERT_TRUE(server); | 545 ASSERT_TRUE(server); |
545 | 546 |
546 ASSERT_TRUE(LoadExtension( | 547 ASSERT_TRUE(LoadExtension( |
547 test_data_dir_.AppendASCII("subscribe_page_action"))); | 548 test_data_dir_.AppendASCII("subscribe_page_action"))); |
548 | 549 |
549 // Try a feed with a link with an onclick handler (before r27440 this would | 550 // Try a feed with a link with an onclick handler (before r27440 this would |
550 // trigger a NOTREACHED). | 551 // trigger a NOTREACHED). |
551 NavigateToFeedAndValidate(server, kValidFeed0, browser(), true, | 552 NavigateToFeedAndValidate(server, kValidFeed0, browser(), true, |
552 "Feed for MyFeedTitle", | 553 "Feed for MyFeedTitle", |
553 "Title 1", | 554 "Title 1", |
554 "Desc VIDEO", | 555 "Desc VIDEO", |
555 "No error"); | 556 "No error"); |
556 } | 557 } |
557 | 558 |
558 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedValidFeed5) { | 559 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedValidFeed5) { |
559 HTTPTestServer* server = StartHTTPServer(); | 560 net::HTTPTestServer* server = StartHTTPServer(); |
560 ASSERT_TRUE(server); | 561 ASSERT_TRUE(server); |
561 | 562 |
562 ASSERT_TRUE(LoadExtension( | 563 ASSERT_TRUE(LoadExtension( |
563 test_data_dir_.AppendASCII("subscribe_page_action"))); | 564 test_data_dir_.AppendASCII("subscribe_page_action"))); |
564 | 565 |
565 // Feed with valid but mostly empty xml. | 566 // Feed with valid but mostly empty xml. |
566 NavigateToFeedAndValidate(server, kValidFeed5, browser(), true, | 567 NavigateToFeedAndValidate(server, kValidFeed5, browser(), true, |
567 "Feed for Unknown feed name", | 568 "Feed for Unknown feed name", |
568 "element 'anchor_0' not found", | 569 "element 'anchor_0' not found", |
569 "element 'desc_0' not found", | 570 "element 'desc_0' not found", |
570 "This feed contains no entries."); | 571 "This feed contains no entries."); |
571 } | 572 } |
572 | 573 |
573 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedValidFeed6) { | 574 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedValidFeed6) { |
574 HTTPTestServer* server = StartHTTPServer(); | 575 net::HTTPTestServer* server = StartHTTPServer(); |
575 ASSERT_TRUE(server); | 576 ASSERT_TRUE(server); |
576 | 577 |
577 ASSERT_TRUE(LoadExtension( | 578 ASSERT_TRUE(LoadExtension( |
578 test_data_dir_.AppendASCII("subscribe_page_action"))); | 579 test_data_dir_.AppendASCII("subscribe_page_action"))); |
579 | 580 |
580 // Feed that is technically invalid but still parseable. | 581 // Feed that is technically invalid but still parseable. |
581 NavigateToFeedAndValidate(server, kValidFeed6, browser(), true, | 582 NavigateToFeedAndValidate(server, kValidFeed6, browser(), true, |
582 "Feed for MyFeedTitle", | 583 "Feed for MyFeedTitle", |
583 "Title 1", | 584 "Title 1", |
584 "Desc", | 585 "Desc", |
585 "No error"); | 586 "No error"); |
586 } | 587 } |
587 | 588 |
588 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedInvalidFeed1) { | 589 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedInvalidFeed1) { |
589 HTTPTestServer* server = StartHTTPServer(); | 590 net::HTTPTestServer* server = StartHTTPServer(); |
590 ASSERT_TRUE(server); | 591 ASSERT_TRUE(server); |
591 | 592 |
592 ASSERT_TRUE(LoadExtension( | 593 ASSERT_TRUE(LoadExtension( |
593 test_data_dir_.AppendASCII("subscribe_page_action"))); | 594 test_data_dir_.AppendASCII("subscribe_page_action"))); |
594 | 595 |
595 // Try an empty feed. | 596 // Try an empty feed. |
596 NavigateToFeedAndValidate(server, kInvalidFeed1, browser(), false, | 597 NavigateToFeedAndValidate(server, kInvalidFeed1, browser(), false, |
597 "Feed for Unknown feed name", | 598 "Feed for Unknown feed name", |
598 "element 'anchor_0' not found", | 599 "element 'anchor_0' not found", |
599 "element 'desc_0' not found", | 600 "element 'desc_0' not found", |
600 "This feed contains no entries."); | 601 "This feed contains no entries."); |
601 } | 602 } |
602 | 603 |
603 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedInvalidFeed2) { | 604 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedInvalidFeed2) { |
604 HTTPTestServer* server = StartHTTPServer(); | 605 net::HTTPTestServer* server = StartHTTPServer(); |
605 ASSERT_TRUE(server); | 606 ASSERT_TRUE(server); |
606 | 607 |
607 ASSERT_TRUE(LoadExtension( | 608 ASSERT_TRUE(LoadExtension( |
608 test_data_dir_.AppendASCII("subscribe_page_action"))); | 609 test_data_dir_.AppendASCII("subscribe_page_action"))); |
609 | 610 |
610 // Try a garbage feed. | 611 // Try a garbage feed. |
611 NavigateToFeedAndValidate(server, kInvalidFeed2, browser(), false, | 612 NavigateToFeedAndValidate(server, kInvalidFeed2, browser(), false, |
612 "Feed for Unknown feed name", | 613 "Feed for Unknown feed name", |
613 "element 'anchor_0' not found", | 614 "element 'anchor_0' not found", |
614 "element 'desc_0' not found", | 615 "element 'desc_0' not found", |
615 "This feed contains no entries."); | 616 "This feed contains no entries."); |
616 } | 617 } |
617 | 618 |
618 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedInvalidFeed3) { | 619 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedInvalidFeed3) { |
619 HTTPTestServer* server = StartHTTPServer(); | 620 net::HTTPTestServer* server = StartHTTPServer(); |
620 ASSERT_TRUE(server); | 621 ASSERT_TRUE(server); |
621 | 622 |
622 ASSERT_TRUE(LoadExtension( | 623 ASSERT_TRUE(LoadExtension( |
623 test_data_dir_.AppendASCII("subscribe_page_action"))); | 624 test_data_dir_.AppendASCII("subscribe_page_action"))); |
624 | 625 |
625 // Try a feed that doesn't exist. | 626 // Try a feed that doesn't exist. |
626 NavigateToFeedAndValidate(server, "foo.xml", browser(), false, | 627 NavigateToFeedAndValidate(server, "foo.xml", browser(), false, |
627 "Feed for Unknown feed name", | 628 "Feed for Unknown feed name", |
628 "element 'anchor_0' not found", | 629 "element 'anchor_0' not found", |
629 "element 'desc_0' not found", | 630 "element 'desc_0' not found", |
630 "This feed contains no entries."); | 631 "This feed contains no entries."); |
631 } | 632 } |
632 | 633 |
633 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedValidFeedNoLinks) { | 634 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, ParseFeedValidFeedNoLinks) { |
634 HTTPTestServer* server = StartHTTPServer(); | 635 net::HTTPTestServer* server = StartHTTPServer(); |
635 ASSERT_TRUE(server); | 636 ASSERT_TRUE(server); |
636 | 637 |
637 ASSERT_TRUE(LoadExtension( | 638 ASSERT_TRUE(LoadExtension( |
638 test_data_dir_.AppendASCII("subscribe_page_action"))); | 639 test_data_dir_.AppendASCII("subscribe_page_action"))); |
639 | 640 |
640 // Valid feed but containing no links. | 641 // Valid feed but containing no links. |
641 NavigateToFeedAndValidate(server, kValidFeedNoLinks, browser(), true, | 642 NavigateToFeedAndValidate(server, kValidFeedNoLinks, browser(), true, |
642 "Feed for MyFeedTitle", | 643 "Feed for MyFeedTitle", |
643 "Title with no link", | 644 "Title with no link", |
644 "Desc", | 645 "Desc", |
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
832 | 833 |
833 // If the options page hasn't already come up, wait for it. | 834 // If the options page hasn't already come up, wait for it. |
834 if (tab_strip->count() == 1) { | 835 if (tab_strip->count() == 1) { |
835 ui_test_utils::WaitForNewTab(browser()); | 836 ui_test_utils::WaitForNewTab(browser()); |
836 } | 837 } |
837 ASSERT_EQ(2, tab_strip->count()); | 838 ASSERT_EQ(2, tab_strip->count()); |
838 | 839 |
839 EXPECT_EQ(extension->GetResourceURL("options.html"), | 840 EXPECT_EQ(extension->GetResourceURL("options.html"), |
840 tab_strip->GetTabContentsAt(1)->GetURL()); | 841 tab_strip->GetTabContentsAt(1)->GetURL()); |
841 } | 842 } |
OLD | NEW |