Home | History | Annotate | Download | only in test
      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 UI_APP_LIST_COCOA_TEST_APPS_GRID_CONTROLLER_TEST_HELPER_H_
      6 #define UI_APP_LIST_COCOA_TEST_APPS_GRID_CONTROLLER_TEST_HELPER_H_
      7 
      8 #include "base/memory/scoped_ptr.h"
      9 #include "base/message_loop/message_loop.h"
     10 #import "ui/base/test/ui_cocoa_test_helper.h"
     11 
     12 @class AppsGridController;
     13 
     14 namespace app_list {
     15 
     16 class AppListModel;
     17 
     18 namespace test {
     19 
     20 class AppListTestModel;
     21 
     22 class AppsGridControllerTestHelper : public ui::CocoaTest {
     23  public:
     24   static const size_t kItemsPerPage;
     25 
     26   AppsGridControllerTestHelper();
     27   virtual ~AppsGridControllerTestHelper();
     28 
     29   void SetUpWithGridController(AppsGridController* grid_controller);
     30 
     31  protected:
     32   // Send a click to the test window in the centre of |view|.
     33   void SimulateClick(NSView* view);
     34 
     35   // Send a key action using handleCommandBySelector.
     36   void SimulateKeyAction(SEL c);
     37 
     38   void SimulateMouseEnterItemAt(size_t index);
     39   void SimulateMouseExitItemAt(size_t index);
     40 
     41   // Do a bulk replacement of the items in the grid.
     42   void ReplaceTestModel(int item_count);
     43 
     44   // Get a string representation of the items as they are currently ordered in
     45   // the view. Each page will start and end with a | character.
     46   std::string GetViewContent() const;
     47 
     48   // Find the page containing |item_id|, and return the index of that page.
     49   // Return NSNotFound if the item is not found, or if the item appears more
     50   // than once.
     51   size_t GetPageIndexForItem(int item_id) const;
     52 
     53   void DelayForCollectionView();
     54   void SinkEvents();
     55 
     56   NSButton* GetItemViewAt(size_t index);
     57   NSCollectionView* GetPageAt(size_t index);
     58   NSView* GetSelectedView();
     59 
     60   AppListTestModel* model();
     61 
     62   virtual void ResetModel(scoped_ptr<AppListModel> model);
     63 
     64   AppsGridController* apps_grid_controller_;
     65 
     66  private:
     67   base::MessageLoopForUI message_loop_;
     68 
     69   DISALLOW_COPY_AND_ASSIGN(AppsGridControllerTestHelper);
     70 };
     71 
     72 }  // namespace test
     73 }  // namespace app_list
     74 
     75 #endif  // UI_APP_LIST_COCOA_TEST_APPS_GRID_CONTROLLER_TEST_HELPER_H_
     76