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

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: change var name and fix a TODO 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..6ceea518227250c49763b063ee61f2aafefe7653 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* top_sites = browser()->profile()->GetTopSites();
+
+ // 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.
+ top_sites->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.
@@ -34,9 +62,7 @@ IN_PROC_BROWSER_TEST_F(TopSitesExtensionTest, MAYBE_GetTopSites) {
scoped_ptr<base::Value> result(RunFunctionAndReturnResult(
get_top_sites_function.get(), "[]", browser()));
- EXPECT_EQ(base::Value::TYPE_LIST, result->GetType());
- // This should return at least 2 items (the prepopulated items).
- // TODO(estade): change 2 to arraylen(kPrepopulatedPages) after that
- // patch lands.
- EXPECT_GE(result->GetType(), 2);
+ base::ListValue* list;
+ ASSERT_TRUE(result->GetAsList(&list));
+ EXPECT_GE(list->GetSize(), arraysize(history::kPrepopulatedPages));
}
« 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