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

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

Issue 2343463003: [Sync] Fix namespaces for the sync_sessions component. (Closed)
Patch Set: Fix gn. Created 4 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/sync/glue/session_sync_test_helper.h"
6
7 #include <stddef.h>
8
9 #include "base/strings/utf_string_conversions.h"
10 #include "components/sync/protocol/session_specifics.pb.h"
11 #include "components/sync/protocol/sync_enums.pb.h"
12 #include "components/sync_sessions/synced_session.h"
13 #include "testing/gtest/include/gtest/gtest.h"
14
15
16 namespace browser_sync {
17
18 static const char* kClientName = "name";
19 static const char* kAppId = "app_id";
20 static const char* kVirtualUrl = "http://foo/1";
21 static const char* kReferrer = "referrer";
22 static const char* kTitle = "title";
23
24 // static
25 void SessionSyncTestHelper::BuildSessionSpecifics(
26 const std::string& tag,
27 sync_pb::SessionSpecifics* meta) {
28 meta->set_session_tag(tag);
29 sync_pb::SessionHeader* header = meta->mutable_header();
30 header->set_device_type(sync_pb::SyncEnums_DeviceType_TYPE_LINUX);
31 header->set_client_name(kClientName);
32 }
33
34 // static
35 void SessionSyncTestHelper::AddWindowSpecifics(
36 int window_id,
37 const std::vector<int>& tab_list,
38 sync_pb::SessionSpecifics* meta) {
39 sync_pb::SessionHeader* header = meta->mutable_header();
40 sync_pb::SessionWindow* window = header->add_window();
41 window->set_window_id(window_id);
42 window->set_selected_tab_index(0);
43 window->set_browser_type(sync_pb::SessionWindow_BrowserType_TYPE_TABBED);
44 for (std::vector<int>::const_iterator iter = tab_list.begin();
45 iter != tab_list.end(); ++iter) {
46 window->add_tab(*iter);
47 }
48 }
49
50 // static
51 void SessionSyncTestHelper::VerifySyncedSession(
52 const std::string& tag,
53 const std::vector<std::vector<SessionID::id_type>>& windows,
54 const sync_driver::SyncedSession& session) {
55 ASSERT_EQ(tag, session.session_tag);
56 ASSERT_EQ(sync_driver::SyncedSession::TYPE_LINUX, session.device_type);
57 ASSERT_EQ(kClientName, session.session_name);
58 ASSERT_EQ(windows.size(), session.windows.size());
59
60 // We assume the window id's are in increasing order.
61 int i = 0;
62 for (std::vector<std::vector<int> >::const_iterator win_iter =
63 windows.begin();
64 win_iter != windows.end(); ++win_iter, ++i) {
65 sessions::SessionWindow* win_ptr;
66 sync_driver::SyncedSession::SyncedWindowMap::const_iterator map_iter =
67 session.windows.find(i);
68 if (map_iter != session.windows.end())
69 win_ptr = map_iter->second;
70 else
71 FAIL();
72 ASSERT_EQ(win_iter->size(), win_ptr->tabs.size());
73 ASSERT_EQ(0, win_ptr->selected_tab_index);
74 ASSERT_EQ(sessions::SessionWindow::TYPE_TABBED, win_ptr->type);
75 int j = 0;
76 for (std::vector<int>::const_iterator tab_iter = (*win_iter).begin();
77 tab_iter != (*win_iter).end(); ++tab_iter, ++j) {
78 sessions::SessionTab* tab = win_ptr->tabs[j];
79 ASSERT_EQ(*tab_iter, tab->tab_id.id());
80 ASSERT_EQ(1U, tab->navigations.size());
81 ASSERT_EQ(1, tab->tab_visual_index);
82 ASSERT_EQ(0, tab->current_navigation_index);
83 ASSERT_TRUE(tab->pinned);
84 ASSERT_EQ(kAppId, tab->extension_app_id);
85 ASSERT_EQ(1U, tab->navigations.size());
86 ASSERT_EQ(tab->navigations[0].virtual_url(), GURL(kVirtualUrl));
87 ASSERT_EQ(tab->navigations[0].referrer_url(), GURL(kReferrer));
88 ASSERT_EQ(tab->navigations[0].title(),
89 base::ASCIIToUTF16(kTitle));
90 ASSERT_TRUE(ui::PageTransitionTypeIncludingQualifiersIs(
91 tab->navigations[0].transition_type(), ui::PAGE_TRANSITION_TYPED));
92 }
93 }
94 }
95
96 void SessionSyncTestHelper::BuildTabSpecifics(
97 const std::string& tag,
98 int window_id,
99 int tab_id,
100 sync_pb::SessionSpecifics* tab_base) {
101 BuildTabSpecifics(tag, window_id, tab_id, ++max_tab_node_id_, tab_base);
102 }
103
104 void SessionSyncTestHelper::BuildTabSpecifics(
105 const std::string& tag,
106 int window_id,
107 int tab_id,
108 int tab_node_id,
109 sync_pb::SessionSpecifics* tab_base) {
110 tab_base->set_session_tag(tag);
111 tab_base->set_tab_node_id(tab_node_id);
112 sync_pb::SessionTab* tab = tab_base->mutable_tab();
113 tab->set_tab_id(tab_id);
114 tab->set_tab_visual_index(1);
115 tab->set_current_navigation_index(0);
116 tab->set_pinned(true);
117 tab->set_extension_app_id(kAppId);
118 sync_pb::TabNavigation* navigation = tab->add_navigation();
119 navigation->set_virtual_url(kVirtualUrl);
120 navigation->set_referrer(kReferrer);
121 navigation->set_title(kTitle);
122 navigation->set_page_transition(sync_pb::SyncEnums_PageTransition_TYPED);
123 }
124
125 void SessionSyncTestHelper::Reset() {
126 max_tab_node_id_ = 0;
127 }
128
129 sync_pb::SessionSpecifics SessionSyncTestHelper::BuildForeignSession(
130 const std::string& tag,
131 const std::vector<SessionID::id_type>& tab_list,
132 std::vector<sync_pb::SessionSpecifics>* tabs) {
133 sync_pb::SessionSpecifics meta;
134 BuildSessionSpecifics(tag, &meta);
135 AddWindowSpecifics(0, tab_list, &meta);
136 std::vector<sync_pb::SessionSpecifics> tabs1;
137 tabs1.resize(tab_list.size());
138 for (size_t i = 0; i < tab_list.size(); ++i) {
139 BuildTabSpecifics(tag, 0, tab_list[i], &tabs1[i]);
140 }
141
142 if (tabs)
143 tabs->swap(tabs1);
144 return meta;
145 }
146
147 } // namespace browser_sync
OLDNEW
« no previous file with comments | « chrome/browser/sync/glue/session_sync_test_helper.h ('k') | chrome/browser/sync/glue/synced_tab_delegate_android.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698