Index: chrome/test/live_sync/typed_urls_helper.cc |
diff --git a/chrome/test/live_sync/live_typed_urls_sync_test.cc b/chrome/test/live_sync/typed_urls_helper.cc |
similarity index 69% |
rename from chrome/test/live_sync/live_typed_urls_sync_test.cc |
rename to chrome/test/live_sync/typed_urls_helper.cc |
index 80cdd4a70ed463c7e376bd7e754a4a4e5708f88a..a549ad487bfa1ee04de9f5de9a1a18dc611ea902 100644 |
--- a/chrome/test/live_sync/live_typed_urls_sync_test.cc |
+++ b/chrome/test/live_sync/typed_urls_helper.cc |
@@ -2,7 +2,7 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "chrome/test/live_sync/live_typed_urls_sync_test.h" |
+#include "chrome/test/live_sync/typed_urls_helper.h" |
#include "base/synchronization/waitable_event.h" |
#include "base/time.h" |
@@ -11,8 +11,12 @@ |
#include "chrome/browser/history/history_backend.h" |
#include "chrome/browser/history/history_types.h" |
#include "chrome/browser/profiles/profile.h" |
+#include "chrome/test/live_sync/live_sync_test.h" |
+#include "chrome/test/live_sync/sync_datatype_helper.h" |
#include "content/browser/cancelable_request.h" |
+using sync_datatype_helper::test; |
+ |
namespace { |
class FlushHistoryDBQueueTask : public HistoryDBTask { |
@@ -50,23 +54,35 @@ class GetTypedUrlsTask : public HistoryDBTask { |
base::WaitableEvent* wait_event_; |
}; |
-} // namespace |
- |
-LiveTypedUrlsSyncTest::LiveTypedUrlsSyncTest(TestType test_type) |
- : LiveSyncTest(test_type), |
- timestamp_(base::Time::Now()) {} |
- |
-LiveTypedUrlsSyncTest::~LiveTypedUrlsSyncTest() {} |
- |
-std::vector<history::URLRow> |
-LiveTypedUrlsSyncTest::GetTypedUrlsFromClient(int index) { |
+// Waits for the history DB thread to finish executing its current set of |
+// tasks. |
+void WaitForHistoryDBThread(int index) { |
+ CancelableRequestConsumer cancelable_consumer; |
HistoryService* service = |
- GetProfile(index)->GetHistoryServiceWithoutCreating(); |
- return GetTypedUrlsFromHistoryService(service); |
+ test()->GetProfile(index)->GetHistoryServiceWithoutCreating(); |
+ base::WaitableEvent wait_event(true, false); |
+ service->ScheduleDBTask(new FlushHistoryDBQueueTask(&wait_event), |
+ &cancelable_consumer); |
+ wait_event.Wait(); |
+} |
+ |
+// Creates a URLRow in the specified HistoryService. |
+void AddToHistory(HistoryService* service, |
+ const GURL& url, |
+ const base::Time& timestamp) { |
+ service->AddPage(url, |
+ timestamp, |
+ NULL, // scope |
+ 1234, // page_id |
+ GURL(), // referrer |
+ PageTransition::TYPED, |
+ history::RedirectList(), |
+ history::SOURCE_BROWSED, |
+ false); |
} |
-std::vector<history::URLRow> |
-LiveTypedUrlsSyncTest::GetTypedUrlsFromHistoryService(HistoryService *service) { |
+std::vector<history::URLRow> GetTypedUrlsFromHistoryService( |
+ HistoryService* service) { |
CancelableRequestConsumer cancelable_consumer; |
std::vector<history::URLRow> rows; |
base::WaitableEvent wait_event(true, false); |
@@ -76,24 +92,40 @@ LiveTypedUrlsSyncTest::GetTypedUrlsFromHistoryService(HistoryService *service) { |
return rows; |
} |
-base::Time LiveTypedUrlsSyncTest::GetTimestamp() { |
+static base::Time* timestamp = NULL; |
+ |
+} // namespace |
+ |
+namespace typed_urls_helper { |
+ |
+std::vector<history::URLRow> GetTypedUrlsFromClient(int index) { |
+ HistoryService* service = |
+ test()->GetProfile(index)->GetHistoryServiceWithoutCreating(); |
+ return GetTypedUrlsFromHistoryService(service); |
+} |
+ |
+base::Time GetTimestamp() { |
// The history subsystem doesn't like identical timestamps for page visits, |
// and it will massage the visit timestamps if we try to use identical |
// values, which can lead to spurious errors. So make sure all timestamps |
// are unique. |
- base::Time original = timestamp_; |
- timestamp_ += base::TimeDelta::FromMilliseconds(1); |
+ if (!::timestamp) |
+ ::timestamp = new base::Time(base::Time::Now()); |
+ base::Time original = *::timestamp; |
+ *::timestamp += base::TimeDelta::FromMilliseconds(1); |
return original; |
} |
-void LiveTypedUrlsSyncTest::AddUrlToHistory(int index, const GURL& url) { |
+void AddUrlToHistory(int index, const GURL& url) { |
base::Time timestamp = GetTimestamp(); |
- AddToHistory(GetProfile(index)->GetHistoryServiceWithoutCreating(), |
- url, |
- timestamp); |
- AddToHistory(verifier()->GetHistoryService(Profile::IMPLICIT_ACCESS), |
+ AddToHistory(test()->GetProfile(index)->GetHistoryServiceWithoutCreating(), |
url, |
timestamp); |
+ if (test()->use_verifier()) |
+ AddToHistory( |
+ test()->verifier()->GetHistoryService(Profile::IMPLICIT_ACCESS), |
+ url, |
+ timestamp); |
// Wait until the AddPage() request has completed so we know the change has |
// filtered down to the sync observers (don't need to wait for the |
@@ -101,37 +133,15 @@ void LiveTypedUrlsSyncTest::AddUrlToHistory(int index, const GURL& url) { |
WaitForHistoryDBThread(index); |
} |
-void LiveTypedUrlsSyncTest::AddToHistory(HistoryService* service, |
- const GURL& url, |
- const base::Time& timestamp) { |
- service->AddPage(url, |
- timestamp, |
- NULL, // scope |
- 1234, // page_id |
- GURL(), // referrer |
- PageTransition::TYPED, |
- history::RedirectList(), |
- history::SOURCE_BROWSED, |
- false); |
-} |
- |
-void LiveTypedUrlsSyncTest::DeleteUrlFromHistory(int index, const GURL& url) { |
- GetProfile(index)->GetHistoryServiceWithoutCreating()->DeleteURL(url); |
- verifier()->GetHistoryService(Profile::IMPLICIT_ACCESS)->DeleteURL(url); |
+void DeleteUrlFromHistory(int index, const GURL& url) { |
+ test()->GetProfile(index)->GetHistoryServiceWithoutCreating()->DeleteURL(url); |
+ if (test()->use_verifier()) |
+ test()->verifier()->GetHistoryService(Profile::IMPLICIT_ACCESS)-> |
+ DeleteURL(url); |
WaitForHistoryDBThread(index); |
} |
-void LiveTypedUrlsSyncTest::WaitForHistoryDBThread(int index) { |
- CancelableRequestConsumer cancelable_consumer; |
- HistoryService* service = |
- GetProfile(index)->GetHistoryServiceWithoutCreating(); |
- base::WaitableEvent wait_event(true, false); |
- service->ScheduleDBTask(new FlushHistoryDBQueueTask(&wait_event), |
- &cancelable_consumer); |
- wait_event.Wait(); |
-} |
- |
-void LiveTypedUrlsSyncTest::AssertURLRowVectorsAreEqual( |
+void AssertURLRowVectorsAreEqual( |
const std::vector<history::URLRow>& left, |
const std::vector<history::URLRow>& right) { |
ASSERT_EQ(left.size(), right.size()); |
@@ -150,7 +160,7 @@ void LiveTypedUrlsSyncTest::AssertURLRowVectorsAreEqual( |
} |
} |
-void LiveTypedUrlsSyncTest::AssertURLRowsAreEqual( |
+void AssertURLRowsAreEqual( |
const history::URLRow& left, const history::URLRow& right) { |
ASSERT_EQ(left.url(), right.url()); |
ASSERT_EQ(left.title(), right.title()); |
@@ -160,13 +170,15 @@ void LiveTypedUrlsSyncTest::AssertURLRowsAreEqual( |
ASSERT_EQ(left.hidden(), right.hidden()); |
} |
-void LiveTypedUrlsSyncTest::AssertAllProfilesHaveSameURLsAsVerifier() { |
+void AssertAllProfilesHaveSameURLsAsVerifier() { |
HistoryService* verifier_service = |
- verifier()->GetHistoryService(Profile::IMPLICIT_ACCESS); |
+ test()->verifier()->GetHistoryService(Profile::IMPLICIT_ACCESS); |
std::vector<history::URLRow> verifier_urls = |
GetTypedUrlsFromHistoryService(verifier_service); |
- for (int i = 0; i < num_clients(); ++i) { |
+ for (int i = 0; i < test()->num_clients(); ++i) { |
std::vector<history::URLRow> urls = GetTypedUrlsFromClient(i); |
AssertURLRowVectorsAreEqual(verifier_urls, urls); |
} |
} |
+ |
+} // namespace typed_urls_helper |