diff options
-rw-r--r-- | chrome/browser/extensions/extension_browsertests_misc.cc | 83 | ||||
-rw-r--r-- | chrome/test/in_process_browser_test.cc | 8 |
2 files changed, 60 insertions, 31 deletions
diff --git a/chrome/browser/extensions/extension_browsertests_misc.cc b/chrome/browser/extensions/extension_browsertests_misc.cc index 952bcba..91f488c 100644 --- a/chrome/browser/extensions/extension_browsertests_misc.cc +++ b/chrome/browser/extensions/extension_browsertests_misc.cc @@ -309,10 +309,11 @@ void GetParsedFeedData(Browser* browser, std::string* feed_title, jscript_error, error)); } -// Tests that we can parse feeds. -// This test works fine on XP and all Vista machines I've tested it on, but for -// some reason fails reliably on the Vista bots. -IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, FLAKY_ParseFeed) { + +// Tests that we can parse valid feeds. +// This test was originally one big test that kept timing out because there is +// an overall timeout per browser tests. It was then split up into multiple. +IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, FLAKY_ParseFeedValidFeeds1) { HTTPTestServer* server = StartHTTPServer(); std::string feed_title; @@ -321,8 +322,8 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, FLAKY_ParseFeed) { std::string error; std::cout << "Starting test ParseFeed with kValidFeed1.\n"; - ui_test_utils::NavigateToURL(browser(), GetFeedUrl(server, kValidFeed1)); + std::cout << "GetParseFeedData.\n"; GetParsedFeedData(browser(), &feed_title, &item_title, &item_desc, &error); EXPECT_STREQ("Feed for 'MyFeedTitle'", feed_title.c_str()); EXPECT_STREQ("Title 1", item_title.c_str()); @@ -330,8 +331,8 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, FLAKY_ParseFeed) { EXPECT_STREQ("No error", error.c_str()); std::cout << "Moving on to kValidFeed2.\n"; - ui_test_utils::NavigateToURL(browser(), GetFeedUrl(server, kValidFeed2)); + std::cout << "GetParseFeedData.\n"; GetParsedFeedData(browser(), &feed_title, &item_title, &item_desc, &error); EXPECT_STREQ("Feed for 'MyFeed2'", feed_title.c_str()); EXPECT_STREQ("My item title1", item_title.c_str()); @@ -339,8 +340,8 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, FLAKY_ParseFeed) { EXPECT_STREQ("No error", error.c_str()); std::cout << "Moving on to kValidFeed3.\n"; - ui_test_utils::NavigateToURL(browser(), GetFeedUrl(server, kValidFeed3)); + std::cout << "GetParseFeedData.\n"; GetParsedFeedData(browser(), &feed_title, &item_title, &item_desc, &error); EXPECT_STREQ("Feed for 'Google Code buglist rss feed'", feed_title.c_str()); EXPECT_STREQ("My dear title", item_title.c_str()); @@ -348,40 +349,32 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, FLAKY_ParseFeed) { EXPECT_STREQ("No error", error.c_str()); std::cout << "Moving on to kValidFeed4.\n"; - // Feed with weird characters in title. ui_test_utils::NavigateToURL(browser(), GetFeedUrl(server, kValidFeed4)); + std::cout << "GetParseFeedData.\n"; GetParsedFeedData(browser(), &feed_title, &item_title, &item_desc, &error); EXPECT_STREQ("Feed for 'Title chars <script> %23 stop'", feed_title.c_str()); EXPECT_STREQ("Title chars <script> %23 stop", item_title.c_str()); EXPECT_STREQ("My dear content", item_desc.c_str()); EXPECT_STREQ("No error", error.c_str()); +} - std::cout << "Moving on to kInvalidFeed1.\n"; - - // Try an empty feed. - ui_test_utils::NavigateToURL(browser(), GetFeedUrl(server, kInvalidFeed1)); - GetParsedFeedData(browser(), &feed_title, &item_title, &item_desc, &error); - EXPECT_STREQ("Feed for 'Unknown feed name'", feed_title.c_str()); - EXPECT_STREQ("element 'anchor_0' not found", item_title.c_str()); - EXPECT_STREQ("element 'desc_0' not found", item_desc.c_str()); - EXPECT_STREQ("Not a valid feed.", error.c_str()); - - std::cout << "Moving on to kInvalidFeed2.\n"; +// Tests that we can parse valid feeds. +// This test was originally one big test that kept timing out because there is +// an overall timeout per browser tests. It was then split up into multiple. +IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, FLAKY_ParseFeedValidFeeds2) { + HTTPTestServer* server = StartHTTPServer(); - // Try a garbage feed. - ui_test_utils::NavigateToURL(browser(), GetFeedUrl(server, kInvalidFeed2)); - GetParsedFeedData(browser(), &feed_title, &item_title, &item_desc, &error); - EXPECT_STREQ("Feed for 'Unknown feed name'", feed_title.c_str()); - EXPECT_STREQ("element 'anchor_0' not found", item_title.c_str()); - EXPECT_STREQ("element 'desc_0' not found", item_desc.c_str()); - EXPECT_STREQ("Not a valid feed.", error.c_str()); + std::string feed_title; + std::string item_title; + std::string item_desc; + std::string error; std::cout << "Moving on to kValidFeed0.\n"; - // Try a feed with a link with an onclick handler (before r27440 this would // trigger a NOTREACHED). ui_test_utils::NavigateToURL(browser(), GetFeedUrl(server, kValidFeed0)); + std::cout << "GetParseFeedData.\n"; GetParsedFeedData(browser(), &feed_title, &item_title, &item_desc, &error); EXPECT_STREQ("Feed for 'MyFeedTitle'", feed_title.c_str()); EXPECT_STREQ("Title 1", item_title.c_str()); @@ -389,19 +382,51 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, FLAKY_ParseFeed) { EXPECT_STREQ("No error", error.c_str()); std::cout << "Moving on to kValidFeed5.\n"; - // Feed with valid but mostly empty xml. ui_test_utils::NavigateToURL(browser(), GetFeedUrl(server, kValidFeed5)); + std::cout << "GetParseFeedData.\n"; GetParsedFeedData(browser(), &feed_title, &item_title, &item_desc, &error); EXPECT_STREQ("Feed for 'Unknown feed name'", feed_title.c_str()); EXPECT_STREQ("element 'anchor_0' not found", item_title.c_str()); EXPECT_STREQ("element 'desc_0' not found", item_desc.c_str()); EXPECT_STREQ("This feed contains no entries.", error.c_str()); +} - std::cout << "Moving on to foo.xml (doesn't exist).\n"; +// Tests that we can parse invalid feeds. +// This test was originally one big test that kept timing out because there is +// an overall timeout per browser tests. It was then split up into multiple. +IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, FLAKY_ParseFeedInvalidFeeds1) { + HTTPTestServer* server = StartHTTPServer(); + std::string feed_title; + std::string item_title; + std::string item_desc; + std::string error; + + std::cout << "Moving on to kInvalidFeed1.\n"; + // Try an empty feed. + ui_test_utils::NavigateToURL(browser(), GetFeedUrl(server, kInvalidFeed1)); + std::cout << "GetParseFeedData.\n"; + GetParsedFeedData(browser(), &feed_title, &item_title, &item_desc, &error); + EXPECT_STREQ("Feed for 'Unknown feed name'", feed_title.c_str()); + EXPECT_STREQ("element 'anchor_0' not found", item_title.c_str()); + EXPECT_STREQ("element 'desc_0' not found", item_desc.c_str()); + EXPECT_STREQ("Not a valid feed.", error.c_str()); + + std::cout << "Moving on to kInvalidFeed2.\n"; + // Try a garbage feed. + ui_test_utils::NavigateToURL(browser(), GetFeedUrl(server, kInvalidFeed2)); + std::cout << "GetParseFeedData.\n"; + GetParsedFeedData(browser(), &feed_title, &item_title, &item_desc, &error); + EXPECT_STREQ("Feed for 'Unknown feed name'", feed_title.c_str()); + EXPECT_STREQ("element 'anchor_0' not found", item_title.c_str()); + EXPECT_STREQ("element 'desc_0' not found", item_desc.c_str()); + EXPECT_STREQ("Not a valid feed.", error.c_str()); + + std::cout << "Moving on to foo.xml (doesn't exist).\n"; // Try a feed that doesn't exist. ui_test_utils::NavigateToURL(browser(), GetFeedUrl(server, L"foo.xml")); + std::cout << "GetParseFeedData.\n"; GetParsedFeedData(browser(), &feed_title, &item_title, &item_desc, &error); EXPECT_STREQ("Feed for 'Unknown feed name'", feed_title.c_str()); EXPECT_STREQ("element 'anchor_0' not found", item_title.c_str()); diff --git a/chrome/test/in_process_browser_test.cc b/chrome/test/in_process_browser_test.cc index 2913de1..d4028db 100644 --- a/chrome/test/in_process_browser_test.cc +++ b/chrome/test/in_process_browser_test.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -247,7 +247,11 @@ void InProcessBrowserTest::RunTestOnMainThreadLoop() { void InProcessBrowserTest::TimedOut() { DCHECK(MessageLoopForUI::current()->IsNested()); - GTEST_NONFATAL_FAILURE_("Timed-out"); + std::string error_message = "Test timed out. Each test runs for a max of "; + error_message += IntToString(kInitialTimeoutInMS); + error_message += " ms (kInitialTimeoutInMS)."; + + GTEST_NONFATAL_FAILURE_(error_message.c_str()); // Start the timeout timer to prevent hangs. MessageLoopForUI::current()->PostDelayedTask(FROM_HERE, |