| OLD | NEW | 
|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/values.h" | 9 #include "base/values.h" | 
| 10 #include "chrome/browser/sessions/session_types.h" | 10 #include "chrome/browser/sessions/session_types.h" | 
| 11 #include "chrome/browser/sync/glue/session_model_associator.h" | 11 #include "chrome/browser/sync/glue/session_model_associator.h" | 
| 12 #include "chrome/common/url_constants.h" | 12 #include "chrome/common/url_constants.h" | 
| 13 #include "content/common/page_transition_types.h" | 13 #include "content/common/page_transition_types.h" | 
| 14 #include "testing/gtest/include/gtest/gtest.h" | 14 #include "testing/gtest/include/gtest/gtest.h" | 
| 15 | 15 | 
| 16 using browser_sync::SessionModelAssociator; | 16 using browser_sync::SessionModelAssociator; | 
| 17 using browser_sync::SyncedSessionTracker; | 17 using browser_sync::SyncedSessionTracker; | 
|  | 18 | 
| 18 namespace browser_sync { | 19 namespace browser_sync { | 
| 19 | 20 | 
| 20 typedef testing::Test SessionModelAssociatorTest; | 21 typedef testing::Test SessionModelAssociatorTest; | 
| 21 | 22 | 
| 22 TEST_F(SessionModelAssociatorTest, SessionWindowHasNoTabsToSync) { | 23 TEST_F(SessionModelAssociatorTest, SessionWindowHasNoTabsToSync) { | 
| 23   SessionWindow win; | 24   SessionWindow win; | 
| 24   ASSERT_TRUE(SessionModelAssociator::SessionWindowHasNoTabsToSync(win)); | 25   ASSERT_TRUE(SessionModelAssociator::SessionWindowHasNoTabsToSync(win)); | 
| 25   scoped_ptr<SessionTab> tab(new SessionTab()); | 26   scoped_ptr<SessionTab> tab(new SessionTab()); | 
| 26   win.tabs.push_back(tab.release()); | 27   win.tabs.push_back(tab.release()); | 
| 27   ASSERT_TRUE(SessionModelAssociator::SessionWindowHasNoTabsToSync(win)); | 28   ASSERT_TRUE(SessionModelAssociator::SessionWindowHasNoTabsToSync(win)); | 
| (...skipping 16 matching lines...) Expand all  Loading... | 
| 44   ASSERT_FALSE(SessionModelAssociator::IsValidSessionTab(tab)); | 45   ASSERT_FALSE(SessionModelAssociator::IsValidSessionTab(tab)); | 
| 45   TabNavigation nav2(0, GURL("about:bubba"), | 46   TabNavigation nav2(0, GURL("about:bubba"), | 
| 46                     GURL("about:referrer"), | 47                     GURL("about:referrer"), | 
| 47                     string16(ASCIIToUTF16("title")), | 48                     string16(ASCIIToUTF16("title")), | 
| 48                     std::string("state"), 0U); | 49                     std::string("state"), 0U); | 
| 49   tab.navigations.push_back(nav2); | 50   tab.navigations.push_back(nav2); | 
| 50   // Once there's another navigation, the tab is valid. | 51   // Once there's another navigation, the tab is valid. | 
| 51   ASSERT_TRUE(SessionModelAssociator::IsValidSessionTab(tab)); | 52   ASSERT_TRUE(SessionModelAssociator::IsValidSessionTab(tab)); | 
| 52 } | 53 } | 
| 53 | 54 | 
|  | 55 TEST_F(SessionModelAssociatorTest, PopulateSessionHeader) { | 
|  | 56   sync_pb::SessionHeader header_s; | 
|  | 57   header_s.set_client_name("Client 1"); | 
|  | 58   header_s.set_device_type(sync_pb::SessionHeader_DeviceType_TYPE_WIN); | 
|  | 59 | 
|  | 60   SyncedSession session; | 
|  | 61   SessionModelAssociator::PopulateSessionHeaderFromSpecifics( | 
|  | 62       header_s, &session); | 
|  | 63   ASSERT_EQ("Client 1", session.session_name); | 
|  | 64   ASSERT_EQ(SyncedSession::TYPE_WIN, session.device_type); | 
|  | 65 } | 
|  | 66 | 
| 54 TEST_F(SessionModelAssociatorTest, PopulateSessionWindow) { | 67 TEST_F(SessionModelAssociatorTest, PopulateSessionWindow) { | 
| 55   sync_pb::SessionWindow window_s; | 68   sync_pb::SessionWindow window_s; | 
| 56   window_s.add_tab(0); | 69   window_s.add_tab(0); | 
| 57   window_s.set_browser_type(sync_pb::SessionWindow_BrowserType_TYPE_TABBED); | 70   window_s.set_browser_type(sync_pb::SessionWindow_BrowserType_TYPE_TABBED); | 
| 58   window_s.set_selected_tab_index(1); | 71   window_s.set_selected_tab_index(1); | 
| 59 | 72 | 
| 60   std::string tag = "tag"; | 73   std::string tag = "tag"; | 
| 61   SyncedSessionTracker tracker; | 74   SyncedSessionTracker tracker; | 
| 62   SyncedSession* session = tracker.GetSession(tag); | 75   SyncedSession* session = tracker.GetSession(tag); | 
| 63   SessionWindow* win = new SessionWindow(); | 76   SessionWindow* win = new SessionWindow(); | 
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 151   // The sessions don't have valid windows, lookup should not succeed. | 164   // The sessions don't have valid windows, lookup should not succeed. | 
| 152   std::vector<const SyncedSession*> sessions; | 165   std::vector<const SyncedSession*> sessions; | 
| 153   ASSERT_FALSE(tracker.LookupAllForeignSessions(&sessions)); | 166   ASSERT_FALSE(tracker.LookupAllForeignSessions(&sessions)); | 
| 154 | 167 | 
| 155   tracker.clear(); | 168   tracker.clear(); | 
| 156   ASSERT_EQ(0U, tracker.num_synced_tabs(tag1)); | 169   ASSERT_EQ(0U, tracker.num_synced_tabs(tag1)); | 
| 157   ASSERT_EQ(0U, tracker.num_synced_tabs(tag2)); | 170   ASSERT_EQ(0U, tracker.num_synced_tabs(tag2)); | 
| 158   ASSERT_EQ(0U, tracker.num_synced_sessions()); | 171   ASSERT_EQ(0U, tracker.num_synced_sessions()); | 
| 159 } | 172 } | 
| 160 | 173 | 
|  | 174 #if defined(OS_WIN) | 
|  | 175 // The test is somewhat silly, and just verifies that we return a computer name. | 
|  | 176 TEST(SessionModelAssociatorTest, TestGetComputerName) { | 
|  | 177   std::string computer_name = SessionModelAssociator::GetComputerName(); | 
|  | 178   EXPECT_TRUE(!computer_name.empty()); | 
|  | 179 } | 
|  | 180 #endif | 
|  | 181 | 
|  | 182 #if defined(OS_MACOSX) | 
|  | 183 // The test is somewhat silly, and just verifies that we return a hardware | 
|  | 184 // model name. | 
|  | 185 TEST_F(SessionModelAssociatorTest, GetHardwareModelName) { | 
|  | 186   std::string hardware_model = SessionModelAssociator::GetHardwareModelName(); | 
|  | 187   EXPECT_TRUE(!hardware_model.empty()); | 
|  | 188 } | 
|  | 189 #endif | 
|  | 190 | 
|  | 191 | 
| 161 }  // namespace browser_sync | 192 }  // namespace browser_sync | 
| 162 |  | 
| OLD | NEW | 
|---|