Home | History | Annotate | Download | only in toolbar
      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
      3 // found in the LICENSE file.
      4 
      5 #ifndef CHROME_BROWSER_UI_TOOLBAR_RECENT_TABS_BUILDER_TEST_HELPER_H_
      6 #define CHROME_BROWSER_UI_TOOLBAR_RECENT_TABS_BUILDER_TEST_HELPER_H_
      7 
      8 #include <vector>
      9 
     10 #include "base/strings/string16.h"
     11 #include "base/time/time.h"
     12 #include "chrome/browser/sessions/session_id.h"
     13 
     14 namespace browser_sync {
     15 class OpenTabsUIDelegate;
     16 class SessionsSyncManager;
     17 }
     18 namespace sync_pb {
     19 class SessionSpecifics;
     20 }
     21 
     22 // Utility class to help add recent tabs for testing.
     23 class RecentTabsBuilderTestHelper {
     24  public:
     25   RecentTabsBuilderTestHelper();
     26   ~RecentTabsBuilderTestHelper();
     27 
     28   void AddSession();
     29   int GetSessionCount();
     30   SessionID::id_type GetSessionID(int session_index);
     31   base::Time GetSessionTimestamp(int session_index);
     32 
     33   void AddWindow(int session_index);
     34   int GetWindowCount(int session_index);
     35   SessionID::id_type GetWindowID(int session_index, int window_index);
     36 
     37   void AddTab(int session_index, int window_index);
     38   void AddTabWithInfo(int session_index,
     39                       int window_index,
     40                       base::Time timestamp,
     41                       const base::string16& title);
     42   int GetTabCount(int session_index, int window_index);
     43   SessionID::id_type GetTabID(int session_index,
     44                               int window_index,
     45                               int tab_index);
     46   base::Time GetTabTimestamp(int session_index,
     47                              int window_index,
     48                              int tab_index);
     49   base::string16 GetTabTitle(int session_index,
     50                        int window_index,
     51                        int tab_index);
     52 
     53   void ExportToSessionsSyncManager(
     54       browser_sync::SessionsSyncManager* manager);
     55 
     56   std::vector<base::string16> GetTabTitlesSortedByRecency();
     57 
     58  private:
     59   void BuildSessionSpecifics(int session_index,
     60                              sync_pb::SessionSpecifics* meta);
     61   void BuildWindowSpecifics(int session_index,
     62                             int window_index,
     63                             sync_pb::SessionSpecifics* meta);
     64   void BuildTabSpecifics(int session_index,
     65                          int window_index,
     66                          int tab_index,
     67                          sync_pb::SessionSpecifics* tab_base);
     68   void VerifyExport(browser_sync::OpenTabsUIDelegate* delegate);
     69 
     70   struct TabInfo;
     71   struct WindowInfo;
     72   struct SessionInfo;
     73 
     74   std::vector<SessionInfo> sessions_;
     75   base::Time start_time_;
     76 
     77   int max_tab_node_id_;
     78 
     79   DISALLOW_COPY_AND_ASSIGN(RecentTabsBuilderTestHelper);
     80 };
     81 
     82 #endif  // CHROME_BROWSER_UI_TOOLBAR_RECENT_TABS_BUILDER_TEST_HELPER_H_
     83