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

Unified Diff: chrome/browser/sync/glue/session_model_associator_unittest.cc

Issue 10917231: Revamp TabNavigation class (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix Mac Created 8 years, 3 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 | « chrome/browser/sync/glue/session_model_associator.cc ('k') | chrome/browser/sync/glue/synced_session.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/sync/glue/session_model_associator_unittest.cc
diff --git a/chrome/browser/sync/glue/session_model_associator_unittest.cc b/chrome/browser/sync/glue/session_model_associator_unittest.cc
index 8d7f6b4263940a6a7528a4b23a2e70e67adb02e5..64c97d7b1407412eaf1fe20443fbaf8fed54fe0f 100644
--- a/chrome/browser/sync/glue/session_model_associator_unittest.cc
+++ b/chrome/browser/sync/glue/session_model_associator_unittest.cc
@@ -7,7 +7,9 @@
#include "base/memory/scoped_ptr.h"
#include "base/message_loop.h"
+#include "base/string_number_conversions.h"
#include "chrome/browser/sessions/session_types.h"
+#include "chrome/browser/sessions/session_types_test_helper.h"
#include "chrome/browser/sync/glue/session_model_associator.h"
#include "chrome/browser/sync/glue/synced_tab_delegate.h"
#include "chrome/browser/sync/profile_sync_service_mock.h"
@@ -57,7 +59,7 @@ class SyncSessionModelAssociatorTest : public testing::Test {
void AssociateTabContents(const SyncedWindowDelegate& window,
const SyncedTabDelegate& new_tab,
- SyncedSessionTab* prev_tab,
+ SessionTab* prev_tab,
sync_pb::SessionTab* sync_tab,
GURL* new_url) {
model_associator_.AssociateTabContents(window,
@@ -81,31 +83,23 @@ TEST_F(SyncSessionModelAssociatorTest, SessionWindowHasNoTabsToSync) {
scoped_ptr<SessionTab> tab(new SessionTab());
win.tabs.push_back(tab.release());
ASSERT_TRUE(SessionWindowHasNoTabsToSync(win));
- TabNavigation nav(0, GURL("about:bubba"),
- content::Referrer(GURL("about:referrer"),
- WebKit::WebReferrerPolicyDefault),
- string16(ASCIIToUTF16("title")),
- std::string("state"), content::PageTransitionFromInt(0));
+ TabNavigation nav =
+ SessionTypesTestHelper::CreateNavigation("about:bubba", "title");
win.tabs[0]->navigations.push_back(nav);
ASSERT_FALSE(SessionWindowHasNoTabsToSync(win));
}
TEST_F(SyncSessionModelAssociatorTest, ShouldSyncSessionTab) {
- SyncedSessionTab tab;
+ SessionTab tab;
ASSERT_FALSE(ShouldSyncSessionTab(tab));
- TabNavigation nav(0, GURL(chrome::kChromeUINewTabURL),
- content::Referrer(GURL("about:referrer"),
- WebKit::WebReferrerPolicyDefault),
- string16(ASCIIToUTF16("title")),
- std::string("state"), content::PageTransitionFromInt(0));
+ TabNavigation nav =
+ SessionTypesTestHelper::CreateNavigation(
+ chrome::kChromeUINewTabURL, "title");
tab.navigations.push_back(nav);
// NewTab does not count as valid if it's the only navigation.
ASSERT_FALSE(ShouldSyncSessionTab(tab));
- TabNavigation nav2(0, GURL("about:bubba"),
- content::Referrer(GURL("about:referrer"),
- WebKit::WebReferrerPolicyDefault),
- string16(ASCIIToUTF16("title")),
- std::string("state"), content::PageTransitionFromInt(0));
+ TabNavigation nav2 =
+ SessionTypesTestHelper::CreateNavigation("about:bubba", "title");
tab.navigations.push_back(nav2);
// Once there's another navigation, the tab is valid.
ASSERT_TRUE(ShouldSyncSessionTab(tab));
@@ -113,14 +107,11 @@ TEST_F(SyncSessionModelAssociatorTest, ShouldSyncSessionTab) {
TEST_F(SyncSessionModelAssociatorTest,
ShouldSyncSessionTabIgnoresFragmentForNtp) {
- SyncedSessionTab tab;
+ SessionTab tab;
ASSERT_FALSE(ShouldSyncSessionTab(tab));
- TabNavigation nav(0, GURL(std::string(chrome::kChromeUINewTabURL) +
- "#bookmarks"),
- content::Referrer(GURL("about:referrer"),
- WebKit::WebReferrerPolicyDefault),
- string16(ASCIIToUTF16("title")),
- std::string("state"), content::PageTransitionFromInt(0));
+ TabNavigation nav =
+ SessionTypesTestHelper::CreateNavigation(
+ std::string(chrome::kChromeUINewTabURL) + "#bookmarks", "title");
tab.navigations.push_back(nav);
// NewTab does not count as valid if it's the only navigation.
ASSERT_FALSE(ShouldSyncSessionTab(tab));
@@ -166,13 +157,15 @@ TEST_F(SyncSessionModelAssociatorTest, PopulateSessionTab) {
tab_s.set_current_navigation_index(3);
tab_s.set_pinned(true);
tab_s.set_extension_app_id("app_id");
- sync_pb::TabNavigation* navigation = tab_s.add_navigation();
- navigation->set_virtual_url("http://foo/1");
- navigation->set_referrer("referrer");
- navigation->set_title("title");
- navigation->set_page_transition(sync_pb::SyncEnums_PageTransition_TYPED);
+ for (int i = 0; i < 5; ++i) {
+ sync_pb::TabNavigation* navigation = tab_s.add_navigation();
+ navigation->set_virtual_url("http://foo/" + base::IntToString(i));
+ navigation->set_referrer("referrer");
+ navigation->set_title("title");
+ navigation->set_page_transition(sync_pb::SyncEnums_PageTransition_TYPED);
+ }
- SyncedSessionTab tab;
+ SessionTab tab;
tab.tab_id.set_id(5); // Expected to be set by the SyncedSessionTracker.
SessionModelAssociator::PopulateSessionTabFromSpecifics(
tab_s, base::Time(), &tab);
@@ -181,10 +174,17 @@ TEST_F(SyncSessionModelAssociatorTest, PopulateSessionTab) {
ASSERT_EQ(3, tab.current_navigation_index);
ASSERT_TRUE(tab.pinned);
ASSERT_EQ("app_id", tab.extension_app_id);
- ASSERT_EQ(GURL("referrer"), tab.navigations[0].referrer().url);
- ASSERT_EQ(string16(ASCIIToUTF16("title")), tab.navigations[0].title());
- ASSERT_EQ(content::PAGE_TRANSITION_TYPED, tab.navigations[0].transition());
- ASSERT_EQ(GURL("http://foo/1"), tab.navigations[0].virtual_url());
+ ASSERT_EQ(5u, tab.navigations.size());
+ for (int i = 0; i < 5; ++i) {
+ ASSERT_EQ(i, tab.navigations[i].index());
+ ASSERT_EQ(GURL("referrer"),
+ SessionTypesTestHelper::GetReferrer(tab.navigations[i]).url);
+ ASSERT_EQ(string16(ASCIIToUTF16("title")), tab.navigations[i].title());
+ ASSERT_EQ(content::PAGE_TRANSITION_TYPED,
+ SessionTypesTestHelper::GetTransitionType(tab.navigations[i]));
+ ASSERT_EQ(GURL("http://foo/" + base::IntToString(i)),
+ tab.navigations[i].virtual_url());
+ }
}
TEST_F(SyncSessionModelAssociatorTest, TabNodePool) {
@@ -591,7 +591,7 @@ TEST_F(SyncSessionModelAssociatorTest, AssociateNewTab) {
EXPECT_CALL(tab_mock, GetPendingEntryIndex()).WillRepeatedly(Return(-1));
// This tab is new, so prev_tab is the default SyncedSessionTab object.
- SyncedSessionTab prev_tab;
+ SessionTab prev_tab;
prev_tab.tab_id.set_id(0);
sync_pb::SessionTab sync_tab;
@@ -641,7 +641,7 @@ TEST_F(SyncSessionModelAssociatorTest, AssociateExistingTab) {
EXPECT_CALL(tab_mock, GetPendingEntryIndex()).WillRepeatedly(Return(-1));
// This tab is new, so prev_tab is the default SyncedSessionTab object.
- SyncedSessionTab prev_tab;
+ SessionTab prev_tab;
prev_tab.tab_id.set_id(0);
// The initial AssociateTabContents call builds the prev_tab.
@@ -649,10 +649,7 @@ TEST_F(SyncSessionModelAssociatorTest, AssociateExistingTab) {
GURL new_url;
AssociateTabContents(window_mock, tab_mock, &prev_tab, &sync_tab, &new_url);
- // Override the timestamps to arbitrary old values we can compare against.
- prev_tab.synced_tab_navigations[0].set_timestamp(syncer::ProtoTimeToTime(1));
- prev_tab.synced_tab_navigations[1].set_timestamp(syncer::ProtoTimeToTime(2));
- prev_tab.synced_tab_navigations[2].set_timestamp(syncer::ProtoTimeToTime(3));
+ ASSERT_EQ(3u, prev_tab.navigations.size());
// Now re-associate with the same data.
AssociateTabContents(window_mock, tab_mock, &prev_tab, &sync_tab, &new_url);
@@ -666,11 +663,13 @@ TEST_F(SyncSessionModelAssociatorTest, AssociateExistingTab) {
EXPECT_EQ(entry3->GetVirtualURL().spec(),
sync_tab.navigation(2).virtual_url());
EXPECT_EQ(2, sync_tab.current_navigation_index());
- EXPECT_EQ(1, sync_tab.navigation(0).timestamp());
- EXPECT_EQ(2, sync_tab.navigation(1).timestamp());
- EXPECT_EQ(3, sync_tab.navigation(2).timestamp());
+ EXPECT_EQ(syncer::TimeToProtoTime(prev_tab.navigations[0].timestamp()),
+ sync_tab.navigation(0).timestamp());
+ EXPECT_EQ(syncer::TimeToProtoTime(prev_tab.navigations[1].timestamp()),
+ sync_tab.navigation(1).timestamp());
+ EXPECT_EQ(syncer::TimeToProtoTime(prev_tab.navigations[2].timestamp()),
+ sync_tab.navigation(2).timestamp());
EXPECT_EQ(3U, prev_tab.navigations.size());
- EXPECT_EQ(3U, prev_tab.synced_tab_navigations.size());
}
// Ensure we add a fresh timestamp for new entries appended to the end.
@@ -701,7 +700,7 @@ TEST_F(SyncSessionModelAssociatorTest, AssociateAppendedTab) {
EXPECT_CALL(tab_mock, GetPendingEntryIndex()).WillRepeatedly(Return(-1));
// This tab is new, so prev_tab is the default SyncedSessionTab object.
- SyncedSessionTab prev_tab;
+ SessionTab prev_tab;
prev_tab.tab_id.set_id(0);
// The initial AssociateTabContents call builds the prev_tab.
@@ -709,10 +708,7 @@ TEST_F(SyncSessionModelAssociatorTest, AssociateAppendedTab) {
GURL new_url;
AssociateTabContents(window_mock, tab_mock, &prev_tab, &sync_tab, &new_url);
- // Override the timestamps to arbitrary old values we can compare against.
- prev_tab.synced_tab_navigations[0].set_timestamp(syncer::ProtoTimeToTime(1));
- prev_tab.synced_tab_navigations[1].set_timestamp(syncer::ProtoTimeToTime(2));
- prev_tab.synced_tab_navigations[2].set_timestamp(syncer::ProtoTimeToTime(3));
+ ASSERT_EQ(3u, prev_tab.navigations.size());
// Add a new entry and change the current navigation index.
scoped_ptr<content::NavigationEntry> entry4(
@@ -740,12 +736,14 @@ TEST_F(SyncSessionModelAssociatorTest, AssociateAppendedTab) {
EXPECT_EQ(entry4->GetVirtualURL().spec(),
sync_tab.navigation(3).virtual_url());
EXPECT_EQ(3, sync_tab.current_navigation_index());
- EXPECT_EQ(1, sync_tab.navigation(0).timestamp());
- EXPECT_EQ(2, sync_tab.navigation(1).timestamp());
- EXPECT_EQ(3, sync_tab.navigation(2).timestamp());
+ EXPECT_EQ(syncer::TimeToProtoTime(prev_tab.navigations[0].timestamp()),
+ sync_tab.navigation(0).timestamp());
+ EXPECT_EQ(syncer::TimeToProtoTime(prev_tab.navigations[1].timestamp()),
+ sync_tab.navigation(1).timestamp());
+ EXPECT_EQ(syncer::TimeToProtoTime(prev_tab.navigations[2].timestamp()),
+ sync_tab.navigation(2).timestamp());
EXPECT_LE(now, sync_tab.navigation(3).timestamp());
EXPECT_EQ(4U, prev_tab.navigations.size());
- EXPECT_EQ(4U, prev_tab.synced_tab_navigations.size());
}
// We shouldn't get confused when old/new entries from the previous tab have
@@ -783,7 +781,7 @@ TEST_F(SyncSessionModelAssociatorTest, AssociatePrunedTab) {
EXPECT_CALL(tab_mock, GetPendingEntryIndex()).WillRepeatedly(Return(-1));
// This tab is new, so prev_tab is the default SyncedSessionTab object.
- SyncedSessionTab prev_tab;
+ SessionTab prev_tab;
prev_tab.tab_id.set_id(0);
// The initial AssociateTabContents call builds the prev_tab.
@@ -791,11 +789,7 @@ TEST_F(SyncSessionModelAssociatorTest, AssociatePrunedTab) {
GURL new_url;
AssociateTabContents(window_mock, tab_mock, &prev_tab, &sync_tab, &new_url);
- // Override the timestamps to arbitrary old values we can compare against.
- prev_tab.synced_tab_navigations[0].set_timestamp(syncer::ProtoTimeToTime(1));
- prev_tab.synced_tab_navigations[1].set_timestamp(syncer::ProtoTimeToTime(2));
- prev_tab.synced_tab_navigations[2].set_timestamp(syncer::ProtoTimeToTime(3));
- prev_tab.synced_tab_navigations[2].set_timestamp(syncer::ProtoTimeToTime(4));
+ ASSERT_EQ(4u, prev_tab.navigations.size());
// Reset new tab to have the oldest entry pruned, the current navigation
// set to entry3, and a new entry added in place of entry4.
@@ -830,11 +824,11 @@ TEST_F(SyncSessionModelAssociatorTest, AssociatePrunedTab) {
EXPECT_EQ(entry5->GetVirtualURL().spec(),
sync_tab.navigation(2).virtual_url());
EXPECT_EQ(1, sync_tab.current_navigation_index());
- EXPECT_EQ(2, sync_tab.navigation(0).timestamp());
+ EXPECT_EQ(syncer::TimeToProtoTime(prev_tab.navigations[0].timestamp()),
+ sync_tab.navigation(0).timestamp());
EXPECT_LE(now, sync_tab.navigation(1).timestamp());
EXPECT_LE(now, sync_tab.navigation(2).timestamp());
EXPECT_EQ(3U, prev_tab.navigations.size());
- EXPECT_EQ(3U, prev_tab.synced_tab_navigations.size());
}
} // namespace browser_sync
« no previous file with comments | « chrome/browser/sync/glue/session_model_associator.cc ('k') | chrome/browser/sync/glue/synced_session.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698