Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / ash / test / shelf_view_test_api.h
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 ASH_TEST_SHELF_VIEW_TEST_API_H_
6 #define ASH_TEST_SHELF_VIEW_TEST_API_H_
7
8 #include "ash/shelf/shelf_item_types.h"
9 #include "base/basictypes.h"
10
11 namespace gfx {
12 class Rect;
13 class Size;
14 }
15
16 namespace ui {
17 class Event;
18 }
19
20 namespace views {
21 class Button;
22 }
23
24 namespace ash {
25 class OverflowBubble;
26 class ShelfButton;
27 class ShelfDelegate;
28 class ShelfView;
29
30 namespace test {
31
32 // Use the api in this class to test ShelfView.
33 class ShelfViewTestAPI {
34  public:
35   explicit ShelfViewTestAPI(ShelfView* shelf_view);
36   ~ShelfViewTestAPI();
37
38   // Number of icons displayed.
39   int GetButtonCount();
40
41   // Retrieve the button at |index|.
42   ShelfButton* GetButton(int index);
43
44   // First visible button index.
45   int GetFirstVisibleIndex();
46
47   // Last visible button index.
48   int GetLastVisibleIndex();
49
50   // Gets current/ideal bounds for button at |index|.
51   const gfx::Rect& GetBoundsByIndex(int index);
52   const gfx::Rect& GetIdealBoundsByIndex(int index);
53
54   // Returns true if overflow button is visible.
55   bool IsOverflowButtonVisible();
56
57   // Makes shelf view show its overflow bubble.
58   void ShowOverflowBubble();
59
60   // Sets animation duration in milliseconds for test.
61   void SetAnimationDuration(int duration_ms);
62
63   // Runs message loop and waits until all add/remove animations are done.
64   void RunMessageLoopUntilAnimationsDone();
65
66   // An accessor for |shelf_view|.
67   ShelfView* shelf_view() { return shelf_view_; }
68
69   // An accessor for overflow bubble.
70   OverflowBubble* overflow_bubble();
71
72   // Returns the preferred size of |shelf_view_|.
73   gfx::Size GetPreferredSize();
74
75   // Returns the button size.
76   int GetButtonSize();
77
78   // Returns the button space size.
79   int GetButtonSpacing();
80
81   // Wrapper for ShelfView::ButtonPressed.
82   void ButtonPressed(views::Button* sender, const ui::Event& event);
83
84   // Wrapper for ShelfView::SameDragType.
85   bool SameDragType(ShelfItemType typea, ShelfItemType typeb) const;
86
87   // Sets ShelfDelegate.
88   void SetShelfDelegate(ShelfDelegate* delegate);
89
90   // Returns re-insertable bounds in screen.
91   gfx::Rect GetBoundsForDragInsertInScreen();
92
93   // Returns true if item is ripped off.
94   bool IsRippedOffFromShelf();
95
96   // Returns true if an item is ripped off and entered into shelf.
97   bool DraggedItemFromOverflowToShelf();
98
99  private:
100   ShelfView* shelf_view_;
101
102   DISALLOW_COPY_AND_ASSIGN(ShelfViewTestAPI);
103 };
104
105 }  // namespace test
106 }  // namespace ash
107
108 #endif  // ASH_TEST_SHELF_VIEW_TEST_API_H_