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#ifndef CHROME_BROWSER_SYNC_GLUE_SESSION_SYNC_TEST_HELPER_H_
6#define CHROME_BROWSER_SYNC_GLUE_SESSION_SYNC_TEST_HELPER_H_
7
8#include <string>
9#include <vector>
10
11#include "components/sessions/session_id.h"
12
13namespace sync_pb {
14class SessionSpecifics;
15}
16
17namespace browser_sync {
18
19struct SyncedSession;
20
21class SessionSyncTestHelper {
22 public:
23  SessionSyncTestHelper() : max_tab_node_id_(0) {}
24
25  static void BuildSessionSpecifics(const std::string& tag,
26                                    sync_pb::SessionSpecifics* meta);
27
28  static void AddWindowSpecifics(int window_id,
29                                 const std::vector<int>& tab_list,
30                                 sync_pb::SessionSpecifics* meta);
31
32  static void VerifySyncedSession(
33      const std::string& tag,
34      const std::vector<std::vector<SessionID::id_type> >& windows,
35      const SyncedSession& session);
36
37  void BuildTabSpecifics(const std::string& tag,
38                         int window_id,
39                         int tab_id,
40                         sync_pb::SessionSpecifics* tab_base);
41
42  sync_pb::SessionSpecifics BuildForeignSession(
43      const std::string& tag,
44      const std::vector<SessionID::id_type>& tab_list,
45      std::vector<sync_pb::SessionSpecifics>* tabs);
46
47  void Reset();
48
49 private:
50  int max_tab_node_id_;
51  DISALLOW_COPY_AND_ASSIGN(SessionSyncTestHelper);
52};
53
54}  // namespace browser_sync
55
56#endif  // CHROME_BROWSER_SYNC_GLUE_SESSION_SYNC_TEST_HELPER_H_
57