apps_grid_controller_test_helper.h revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project// Copyright 2013 The Chromium Authors. All rights reserved.
28280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa// Use of this source code is governed by a BSD-style license that can be
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project// found in the LICENSE file.
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#ifndef UI_APP_LIST_COCOA_TEST_APPS_GRID_CONTROLLER_TEST_HELPER_H_
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define UI_APP_LIST_COCOA_TEST_APPS_GRID_CONTROLLER_TEST_HELPER_H_
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include "base/memory/scoped_ptr.h"
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include "base/message_loop.h"
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#import "ui/base/test/ui_cocoa_test_helper.h"
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project@class AppsGridController;
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectnamespace app_list {
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectnamespace test {
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectclass AppListTestViewDelegate;
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectclass AppListTestModel;
198280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa
208280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawaclass AppsGridControllerTestHelper : public ui::CocoaTest {
218280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa public:
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  static const size_t kItemsPerPage;
238280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa
248280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa  AppsGridControllerTestHelper();
258943737692169f564cd34a9c8d471f3a5d438712Fred Quintana  virtual ~AppsGridControllerTestHelper();
268280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa
278280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa  void SetUpWithGridController(AppsGridController* grid_controller);
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project protected:
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  // Send a click to the test window in the centre of |view|.
311877d0158b529663b8315482e7346a7bcaa96166Brad Fitzpatrick  void SimulateClick(NSView* view);
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
33a7771df3696954f0e279407e8894a916a7cb26ccJeff Brown  // Send a key press to the first responder.
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  void SimulateKeyPress(unichar c);
358280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  void SimulateMouseEnterItemAt(size_t index);
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  void SimulateMouseExitItemAt(size_t index);
3803d9490758c9318cee6d14d3cc5007556dce92d0Fred Quintana
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  // Do a bulk replacement of the items in the grid.
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  void ReplaceTestModel(int item_count);
418280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa
428280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa  void DelayForCollectionView();
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project  void SinkEvents();
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
458280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa  NSButton* GetItemViewAt(size_t index);
468280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa  NSCollectionView* GetPageAt(size_t index);
478280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa  NSView* GetSelectedView();
488280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa
498280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa  AppListTestViewDelegate* delegate();
508280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa  AppListTestModel* model();
518280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa
528280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa  scoped_ptr<AppListTestViewDelegate> delegate_;
538280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa  AppsGridController* apps_grid_controller_;
548280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa
55d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown private:
5635654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn  MessageLoopForUI message_loop_;
5735654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn
588280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa  DISALLOW_COPY_AND_ASSIGN(AppsGridControllerTestHelper);
598280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa};
608280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa
618280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa}  // namespace test
62d2183654e03d589b120467f4e98da1b178ceeadbJeff Brown}  // namespace app_list
6335654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn
6435654b61e8fe7bc85afcb076ddbb590d51c5865fDianne Hackborn#endif  // UI_APP_LIST_COCOA_TEST_APPS_GRID_CONTROLLER_TEST_HELPER_H_
658280c2b15f6875b2d387c05df23d264864eb9cd5Daisuke Miyakawa