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

Unified Diff: chrome/browser/prerender/prerender_browsertest.cc

Issue 7104081: Browser Test (Prerendering) for Favicon (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 6 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/prerender/prerender_browsertest.cc
===================================================================
--- chrome/browser/prerender/prerender_browsertest.cc (revision 88510)
+++ chrome/browser/prerender/prerender_browsertest.cc (working copy)
@@ -7,7 +7,9 @@
#include "base/command_line.h"
#include "base/path_service.h"
#include "base/string_util.h"
+#include "base/test/test_timeouts.h"
#include "chrome/browser/content_settings/host_content_settings_map.h"
+#include "chrome/browser/favicon/favicon_tab_helper.h"
#include "chrome/browser/prefs/pref_service.h"
#include "chrome/browser/prerender/prerender_contents.h"
#include "chrome/browser/prerender/prerender_manager.h"
@@ -381,9 +383,7 @@
void OpenDestUrlInNewWindowViaJs() const {
// Make sure in navigating we have a URL to use in the PrerenderManager.
- TestPrerenderContents* prerender_contents =
- static_cast<TestPrerenderContents*>(
- prerender_manager()->FindEntry(dest_url_));
+ TestPrerenderContents* prerender_contents = GetPrerenderContents();
ASSERT_TRUE(prerender_contents != NULL);
prerender_contents->set_quit_message_loop_on_destruction(false);
@@ -395,7 +395,7 @@
EXPECT_TRUE(open_window_result);
// If the prerender contents has not been destroyed, run message loop.
- if (prerender_manager()->FindEntry(dest_url_) != NULL) {
+ if (GetPrerenderContents() != NULL) {
prerender_contents->set_quit_message_loop_on_destruction(true);
ui_test_utils::RunMessageLoop();
}
@@ -403,9 +403,7 @@
void OpenDestUrlInNewWindowViaClick() const {
// Make sure in navigating we have a URL to use in the PrerenderManager.
- TestPrerenderContents* prerender_contents =
- static_cast<TestPrerenderContents*>(
- prerender_manager()->FindEntry(dest_url_));
+ TestPrerenderContents* prerender_contents = GetPrerenderContents();
ASSERT_TRUE(prerender_contents != NULL);
prerender_contents->set_quit_message_loop_on_destruction(false);
@@ -417,7 +415,7 @@
EXPECT_TRUE(click_prerendered_link_result);
// If the prerender contents has not been destroyed, run message loop.
- if (prerender_manager()->FindEntry(dest_url_) != NULL) {
+ if (GetPrerenderContents() != NULL) {
prerender_contents->set_quit_message_loop_on_destruction(true);
ui_test_utils::RunMessageLoop();
}
@@ -465,6 +463,11 @@
return safe_browsing_factory_->most_recent_service();
}
+ TestPrerenderContents* GetPrerenderContents() const {
+ return static_cast<TestPrerenderContents*>(
+ prerender_manager()->FindEntry(dest_url_));
+ }
+
private:
void PrerenderTestURLImpl(
const GURL& url,
@@ -510,12 +513,9 @@
// handle browser navigation directly.
browser()->OpenURL(src_url, GURL(), CURRENT_TAB, PageTransition::TYPED);
- TestPrerenderContents* prerender_contents = NULL;
ui_test_utils::RunMessageLoop();
- prerender_contents =
- static_cast<TestPrerenderContents*>(
- prerender_manager()->FindEntry(dest_url_));
+ TestPrerenderContents* prerender_contents = GetPrerenderContents();
if (ShouldRenderPrerenderedPageCorrectly(expected_final_status)) {
ASSERT_TRUE(prerender_contents != NULL);
@@ -539,7 +539,7 @@
void NavigateToURLImpl(const GURL& dest_url) const {
// Make sure in navigating we have a URL to use in the PrerenderManager.
- EXPECT_TRUE(prerender_manager()->FindEntry(dest_url_) != NULL);
+ EXPECT_TRUE(GetPrerenderContents() != NULL);
// ui_test_utils::NavigateToURL waits until DidStopLoading is called on
// the current tab. As that tab is going to end up deleted, and may never
@@ -553,7 +553,7 @@
ui_test_utils::RunMessageLoop();
// Make sure the PrerenderContents found earlier was used or removed.
- EXPECT_TRUE(prerender_manager()->FindEntry(dest_url_) == NULL);
+ EXPECT_TRUE(GetPrerenderContents() == NULL);
if (call_javascript_) {
// Check if page behaved as expected when actually displayed.
@@ -1340,4 +1340,24 @@
NavigateToDestURL();
}
+// Checks that the favicon is properly loaded on prerender.
+IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderFavicon) {
+ PrerenderTestURL("files/prerender/prerender_favicon.html",
+ FINAL_STATUS_USED,
+ 1);
+ TestPrerenderContents* prerender_contents = GetPrerenderContents();
+ ASSERT_TRUE(prerender_contents != NULL);
+ prerender_contents->set_quit_message_loop_on_destruction(false);
+ // The Favicon should show within two seconds of navigating to the page,
+ // otherwise something is wrong.
+ MessageLoopForUI::current()->PostDelayedTask(
cbentzel 2011/06/09 15:41:04 I agree with Pawel that this is pretty hairy. Co
Paweł Hajdan Jr. 2011/06/09 19:29:20 Yes, that's what I'd like to see. Please do that.
+ FROM_HERE,
+ new MessageLoop::QuitTask(),
+ TestTimeouts::action_timeout_ms());
+ NavigateToDestURL();
+ ASSERT_TRUE(TabContentsWrapper::GetCurrentWrapperForContents(
+ browser()->GetSelectedTabContents())->favicon_tab_helper()
+ ->FaviconIsValid());
+}
+
} // namespace prerender
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698