14e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
24e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
34e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// found in the LICENSE file.
44e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
54e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#ifndef CHROME_BROWSER_SYNC_GLUE_SESSION_SYNC_TEST_HELPER_H_
64e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#define CHROME_BROWSER_SYNC_GLUE_SESSION_SYNC_TEST_HELPER_H_
74e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
84e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include <string>
94e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include <vector>
104e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
1103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "components/sessions/session_id.h"
124e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
134e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)namespace sync_pb {
144e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)class SessionSpecifics;
154e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)}
164e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
174e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)namespace browser_sync {
184e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
194e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)struct SyncedSession;
204e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
214e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)class SessionSyncTestHelper {
224e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) public:
234e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  SessionSyncTestHelper() : max_tab_node_id_(0) {}
244e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
254e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  static void BuildSessionSpecifics(const std::string& tag,
264e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)                                    sync_pb::SessionSpecifics* meta);
274e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
284e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  static void AddWindowSpecifics(int window_id,
294e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)                                 const std::vector<int>& tab_list,
304e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)                                 sync_pb::SessionSpecifics* meta);
314e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
324e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  static void VerifySyncedSession(
334e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)      const std::string& tag,
344e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)      const std::vector<std::vector<SessionID::id_type> >& windows,
354e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)      const SyncedSession& session);
364e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
374e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  void BuildTabSpecifics(const std::string& tag,
384e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)                         int window_id,
394e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)                         int tab_id,
404e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)                         sync_pb::SessionSpecifics* tab_base);
414e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
424e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  sync_pb::SessionSpecifics BuildForeignSession(
434e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)      const std::string& tag,
444e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)      const std::vector<SessionID::id_type>& tab_list,
454e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)      std::vector<sync_pb::SessionSpecifics>* tabs);
464e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
474e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  void Reset();
484e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
494e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) private:
504e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  int max_tab_node_id_;
514e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(SessionSyncTestHelper);
524e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)};
534e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
544e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)}  // namespace browser_sync
554e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
564e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#endif  // CHROME_BROWSER_SYNC_GLUE_SESSION_SYNC_TEST_HELPER_H_
57