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

Side by Side Diff: chrome/browser/sync/glue/session_model_associator_unittest.cc

Issue 14497003: Moves TabNavigation into components/sessions and renames (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Really remove webkit_support Created 7 years, 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <string> 5 #include <string>
6 #include <vector> 6 #include <vector>
7 7
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/message_loop.h" 9 #include "base/message_loop.h"
10 #include "chrome/browser/sessions/session_types.h" 10 #include "chrome/browser/sessions/session_types.h"
11 #include "chrome/browser/sessions/session_types_test_helper.h"
12 #include "chrome/browser/sync/glue/session_model_associator.h" 11 #include "chrome/browser/sync/glue/session_model_associator.h"
13 #include "chrome/browser/sync/glue/synced_tab_delegate.h" 12 #include "chrome/browser/sync/glue/synced_tab_delegate.h"
14 #include "chrome/browser/sync/profile_sync_service_mock.h" 13 #include "chrome/browser/sync/profile_sync_service_mock.h"
15 #include "chrome/common/chrome_notification_types.h" 14 #include "chrome/common/chrome_notification_types.h"
16 #include "chrome/common/url_constants.h" 15 #include "chrome/common/url_constants.h"
17 #include "chrome/test/base/profile_mock.h" 16 #include "chrome/test/base/profile_mock.h"
17 #include "components/sessions/serialized_navigation_entry_test_helper.h"
18 #include "content/public/browser/navigation_entry.h" 18 #include "content/public/browser/navigation_entry.h"
19 #include "content/public/browser/notification_details.h" 19 #include "content/public/browser/notification_details.h"
20 #include "content/public/browser/notification_service.h" 20 #include "content/public/browser/notification_service.h"
21 #include "content/public/common/page_transition_types.h" 21 #include "content/public/common/page_transition_types.h"
22 #include "content/public/test/test_browser_thread.h" 22 #include "content/public/test/test_browser_thread.h"
23 #include "googleurl/src/gurl.h" 23 #include "googleurl/src/gurl.h"
24 #include "sync/protocol/session_specifics.pb.h" 24 #include "sync/protocol/session_specifics.pb.h"
25 #include "sync/util/time.h" 25 #include "sync/util/time.h"
26 #include "testing/gmock/include/gmock/gmock.h" 26 #include "testing/gmock/include/gmock/gmock.h"
27 #include "testing/gtest/include/gtest/gtest.h" 27 #include "testing/gtest/include/gtest/gtest.h"
28 28
29 using content::BrowserThread; 29 using content::BrowserThread;
30 using sessions::SerializedNavigationEntry;
31 using sessions::SerializedNavigationEntryTestHelper;
30 using testing::NiceMock; 32 using testing::NiceMock;
31 using testing::Return; 33 using testing::Return;
32 using testing::StrictMock; 34 using testing::StrictMock;
33 using testing::_; 35 using testing::_;
34 36
35 namespace browser_sync { 37 namespace browser_sync {
36 38
37 class SyncSessionModelAssociatorTest : public testing::Test { 39 class SyncSessionModelAssociatorTest : public testing::Test {
38 protected: 40 protected:
39 SyncSessionModelAssociatorTest() 41 SyncSessionModelAssociatorTest()
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 }; 89 };
88 90
89 namespace { 91 namespace {
90 92
91 TEST_F(SyncSessionModelAssociatorTest, SessionWindowHasNoTabsToSync) { 93 TEST_F(SyncSessionModelAssociatorTest, SessionWindowHasNoTabsToSync) {
92 SessionWindow win; 94 SessionWindow win;
93 ASSERT_TRUE(SessionWindowHasNoTabsToSync(win)); 95 ASSERT_TRUE(SessionWindowHasNoTabsToSync(win));
94 scoped_ptr<SessionTab> tab(new SessionTab()); 96 scoped_ptr<SessionTab> tab(new SessionTab());
95 win.tabs.push_back(tab.release()); 97 win.tabs.push_back(tab.release());
96 ASSERT_TRUE(SessionWindowHasNoTabsToSync(win)); 98 ASSERT_TRUE(SessionWindowHasNoTabsToSync(win));
97 TabNavigation nav = 99 SerializedNavigationEntry nav =
98 SessionTypesTestHelper::CreateNavigation("about:bubba", "title"); 100 SerializedNavigationEntryTestHelper::CreateNavigation("about:bubba",
101 "title");
99 win.tabs[0]->navigations.push_back(nav); 102 win.tabs[0]->navigations.push_back(nav);
100 ASSERT_FALSE(SessionWindowHasNoTabsToSync(win)); 103 ASSERT_FALSE(SessionWindowHasNoTabsToSync(win));
101 } 104 }
102 105
103 TEST_F(SyncSessionModelAssociatorTest, ShouldSyncSessionTab) { 106 TEST_F(SyncSessionModelAssociatorTest, ShouldSyncSessionTab) {
104 SessionTab tab; 107 SessionTab tab;
105 ASSERT_FALSE(ShouldSyncSessionTab(tab)); 108 ASSERT_FALSE(ShouldSyncSessionTab(tab));
106 TabNavigation nav = 109 SerializedNavigationEntry nav =
107 SessionTypesTestHelper::CreateNavigation( 110 SerializedNavigationEntryTestHelper::CreateNavigation(
108 chrome::kChromeUINewTabURL, "title"); 111 chrome::kChromeUINewTabURL, "title");
109 tab.navigations.push_back(nav); 112 tab.navigations.push_back(nav);
110 // NewTab does not count as valid if it's the only navigation. 113 // NewTab does not count as valid if it's the only navigation.
111 ASSERT_FALSE(ShouldSyncSessionTab(tab)); 114 ASSERT_FALSE(ShouldSyncSessionTab(tab));
112 TabNavigation nav2 = 115 SerializedNavigationEntry nav2 =
113 SessionTypesTestHelper::CreateNavigation("about:bubba", "title"); 116 SerializedNavigationEntryTestHelper::CreateNavigation("about:bubba",
117 "title");
114 tab.navigations.push_back(nav2); 118 tab.navigations.push_back(nav2);
115 // Once there's another navigation, the tab is valid. 119 // Once there's another navigation, the tab is valid.
116 ASSERT_TRUE(ShouldSyncSessionTab(tab)); 120 ASSERT_TRUE(ShouldSyncSessionTab(tab));
117 } 121 }
118 122
119 TEST_F(SyncSessionModelAssociatorTest, 123 TEST_F(SyncSessionModelAssociatorTest,
120 ShouldSyncSessionTabIgnoresFragmentForNtp) { 124 ShouldSyncSessionTabIgnoresFragmentForNtp) {
121 SessionTab tab; 125 SessionTab tab;
122 ASSERT_FALSE(ShouldSyncSessionTab(tab)); 126 ASSERT_FALSE(ShouldSyncSessionTab(tab));
123 TabNavigation nav = 127 SerializedNavigationEntry nav =
124 SessionTypesTestHelper::CreateNavigation( 128 SerializedNavigationEntryTestHelper::CreateNavigation(
125 std::string(chrome::kChromeUINewTabURL) + "#bookmarks", "title"); 129 std::string(chrome::kChromeUINewTabURL) + "#bookmarks", "title");
126 tab.navigations.push_back(nav); 130 tab.navigations.push_back(nav);
127 // NewTab does not count as valid if it's the only navigation. 131 // NewTab does not count as valid if it's the only navigation.
128 ASSERT_FALSE(ShouldSyncSessionTab(tab)); 132 ASSERT_FALSE(ShouldSyncSessionTab(tab));
129 } 133 }
130 134
131 } // namespace 135 } // namespace
132 136
133 TEST_F(SyncSessionModelAssociatorTest, PopulateSessionHeader) { 137 TEST_F(SyncSessionModelAssociatorTest, PopulateSessionHeader) {
134 sync_pb::SessionHeader header_s; 138 sync_pb::SessionHeader header_s;
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 SessionTab session_tab; 340 SessionTab session_tab;
337 session_tab.window_id.set_id(1); 341 session_tab.window_id.set_id(1);
338 session_tab.tab_id.set_id(1); 342 session_tab.tab_id.set_id(1);
339 session_tab.tab_visual_index = 1; 343 session_tab.tab_visual_index = 1;
340 session_tab.current_navigation_index = 1; 344 session_tab.current_navigation_index = 1;
341 session_tab.pinned = true; 345 session_tab.pinned = true;
342 session_tab.extension_app_id = "app id"; 346 session_tab.extension_app_id = "app id";
343 session_tab.user_agent_override = "override"; 347 session_tab.user_agent_override = "override";
344 session_tab.timestamp = kTime5; 348 session_tab.timestamp = kTime5;
345 session_tab.navigations.push_back( 349 session_tab.navigations.push_back(
346 SessionTypesTestHelper::CreateNavigation( 350 SerializedNavigationEntryTestHelper::CreateNavigation(
347 "http://www.example.com", "Example")); 351 "http://www.example.com", "Example"));
348 session_tab.session_storage_persistent_id = "persistent id"; 352 session_tab.session_storage_persistent_id = "persistent id";
349 SetSessionTabFromDelegate(tab_mock, kTime4, &session_tab); 353 SetSessionTabFromDelegate(tab_mock, kTime4, &session_tab);
350 354
351 EXPECT_EQ(0, session_tab.window_id.id()); 355 EXPECT_EQ(0, session_tab.window_id.id());
352 EXPECT_EQ(0, session_tab.tab_id.id()); 356 EXPECT_EQ(0, session_tab.tab_id.id());
353 EXPECT_EQ(0, session_tab.tab_visual_index); 357 EXPECT_EQ(0, session_tab.tab_visual_index);
354 EXPECT_EQ(2, session_tab.current_navigation_index); 358 EXPECT_EQ(2, session_tab.current_navigation_index);
355 EXPECT_FALSE(session_tab.pinned); 359 EXPECT_FALSE(session_tab.pinned);
356 EXPECT_TRUE(session_tab.extension_app_id.empty()); 360 EXPECT_TRUE(session_tab.extension_app_id.empty());
357 EXPECT_TRUE(session_tab.user_agent_override.empty()); 361 EXPECT_TRUE(session_tab.user_agent_override.empty());
358 EXPECT_EQ(kTime4, session_tab.timestamp); 362 EXPECT_EQ(kTime4, session_tab.timestamp);
359 ASSERT_EQ(3u, session_tab.navigations.size()); 363 ASSERT_EQ(3u, session_tab.navigations.size());
360 EXPECT_EQ(entry1->GetVirtualURL(), 364 EXPECT_EQ(entry1->GetVirtualURL(),
361 session_tab.navigations[0].virtual_url()); 365 session_tab.navigations[0].virtual_url());
362 EXPECT_EQ(entry2->GetVirtualURL(), 366 EXPECT_EQ(entry2->GetVirtualURL(),
363 session_tab.navigations[1].virtual_url()); 367 session_tab.navigations[1].virtual_url());
364 EXPECT_EQ(entry3->GetVirtualURL(), 368 EXPECT_EQ(entry3->GetVirtualURL(),
365 session_tab.navigations[2].virtual_url()); 369 session_tab.navigations[2].virtual_url());
366 EXPECT_EQ(kTime1, 370 EXPECT_EQ(kTime1, session_tab.navigations[0].timestamp());
367 SessionTypesTestHelper::GetTimestamp(session_tab.navigations[0])); 371 EXPECT_EQ(kTime2, session_tab.navigations[1].timestamp());
368 EXPECT_EQ(kTime2, 372 EXPECT_EQ(kTime3, session_tab.navigations[2].timestamp());
369 SessionTypesTestHelper::GetTimestamp(session_tab.navigations[1]));
370 EXPECT_EQ(kTime3,
371 SessionTypesTestHelper::GetTimestamp(session_tab.navigations[2]));
372 EXPECT_TRUE(session_tab.session_storage_persistent_id.empty()); 373 EXPECT_TRUE(session_tab.session_storage_persistent_id.empty());
373 } 374 }
374 375
375 // Create tab specifics with an empty favicon. Ensure it gets ignored and not 376 // Create tab specifics with an empty favicon. Ensure it gets ignored and not
376 // stored into the synced favicon lookups. 377 // stored into the synced favicon lookups.
377 TEST_F(SyncSessionModelAssociatorTest, LoadEmptyFavicon) { 378 TEST_F(SyncSessionModelAssociatorTest, LoadEmptyFavicon) {
378 std::string favicon; 379 std::string favicon;
379 std::string favicon_url = "http://www.faviconurl.com/favicon.ico"; 380 std::string favicon_url = "http://www.faviconurl.com/favicon.ico";
380 std::string page_url = "http://www.faviconurl.com/page.html"; 381 std::string page_url = "http://www.faviconurl.com/page.html";
381 sync_pb::SessionTab tab; 382 sync_pb::SessionTab tab;
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
464 // The new page should be mapped to the old favicon data. 465 // The new page should be mapped to the old favicon data.
465 EXPECT_TRUE(FaviconEquals(GURL(page_url2), std::string())); 466 EXPECT_TRUE(FaviconEquals(GURL(page_url2), std::string()));
466 LoadTabFavicon(tab2); 467 LoadTabFavicon(tab2);
467 EXPECT_TRUE(FaviconEquals(GURL(page_url), favicon)); 468 EXPECT_TRUE(FaviconEquals(GURL(page_url), favicon));
468 EXPECT_TRUE(FaviconEquals(GURL(page_url2), favicon)); 469 EXPECT_TRUE(FaviconEquals(GURL(page_url2), favicon));
469 } 470 }
470 471
471 } // namespace 472 } // namespace
472 473
473 } // namespace browser_sync 474 } // namespace browser_sync
OLDNEW
« no previous file with comments | « chrome/browser/sync/glue/session_model_associator.cc ('k') | chrome/browser/sync/glue/synced_session_tracker_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698