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

Unified Diff: chrome/browser/history/top_sites_extension_test.cc

Issue 8363041: top sites: re-enable test (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 2 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/history/top_sites_extension_test.cc
diff --git a/chrome/browser/history/top_sites_extension_test.cc b/chrome/browser/history/top_sites_extension_test.cc
index 99078ceba6fa8e8094a76de2128aef9192dead14..85fc5662457e40473d486b12230c41ef7846cfec 100644
--- a/chrome/browser/history/top_sites_extension_test.cc
+++ b/chrome/browser/history/top_sites_extension_test.cc
@@ -5,7 +5,10 @@
#include "base/values.h"
#include "build/build_config.h"
#include "chrome/browser/extensions/extension_function_test_utils.h"
+#include "chrome/browser/history/top_sites.h"
#include "chrome/browser/history/top_sites_extension_api.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/ui/browser.h"
#include "chrome/test/base/in_process_browser_test.h"
using namespace extension_function_test_utils;
@@ -13,20 +16,45 @@ using namespace extension_function_test_utils;
namespace {
class TopSitesExtensionTest : public InProcessBrowserTest {
+ public:
+ TopSitesExtensionTest() : top_sites_inited_(false), waiting_(false) {
+ }
+
+ void SetUpOnMainThread() {
+ history::TopSites* ts = browser()->profile()->GetTopSites();
vandebo (ex-Chrome) 2011/10/27 23:11:44 nit: full variable name.
+
+ // This may return async or sync. If sync, top_sites_inited_ will be true
+ // before we get to the conditional below. Otherwise, we'll run a nested
+ // message loop until the async callback.
+ ts->GetMostVisitedURLs(
+ &consumer_,
+ base::Bind(&TopSitesExtensionTest::OnTopSitesAvailable, this));
+
+ if (!top_sites_inited_) {
+ waiting_ = true;
+ MessageLoop::current()->Run();
+ }
+
+ // By this point, we know topsites has loaded. We can run the tests now.
+ }
+
+ private:
+ void OnTopSitesAvailable(const history::MostVisitedURLList& data) {
+ if (waiting_) {
+ MessageLoop::current()->Quit();
+ waiting_ = false;
+ }
+ top_sites_inited_ = true;
+ }
+
+ CancelableRequestConsumer consumer_;
+ bool top_sites_inited_;
+ bool waiting_;
};
} // namespace
-// Test started failing soon after commit. http://crbug.com/101783
-#if defined(OS_WIN)
-#define MAYBE_GetTopSites FAILS_GetTopSites
-#elif defined(OS_LINUX)
-#define MAYBE_GetTopSites FLAKY_GetTopSites
-#else
-#define MAYBE_GetTopSites GetTopSites
-#endif
-
-IN_PROC_BROWSER_TEST_F(TopSitesExtensionTest, MAYBE_GetTopSites) {
+IN_PROC_BROWSER_TEST_F(TopSitesExtensionTest, GetTopSites) {
scoped_refptr<GetTopSitesFunction> get_top_sites_function(
new GetTopSitesFunction());
// Without a callback the function will not generate a result.
« 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