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 ASH_TEST_SCREENSHOT_DELEGATE_H_
6 #define ASH_TEST_SCREENSHOT_DELEGATE_H_
7 
8 #include "ash/screenshot_delegate.h"
9 #include "base/macros.h"
10 #include "ui/gfx/geometry/rect.h"
11 
12 namespace ash {
13 
14 class TestScreenshotDelegate : public ScreenshotDelegate {
15  public:
16   TestScreenshotDelegate();
17   ~TestScreenshotDelegate() override;
18 
19   // Overridden from ScreenshotDelegate:
20   void HandleTakeScreenshotForAllRootWindows() override;
21   void HandleTakePartialScreenshot(aura::Window* window,
22                                    const gfx::Rect& rect) override;
23   void HandleTakeWindowScreenshot(aura::Window* window) override;
24   bool CanTakeScreenshot() override;
25 
handle_take_screenshot_count()26   int handle_take_screenshot_count() const {
27     return handle_take_screenshot_count_;
28   }
29 
handle_take_partial_screenshot_count()30   int handle_take_partial_screenshot_count() const {
31     return handle_take_partial_screenshot_count_;
32   }
33 
handle_take_window_screenshot_count()34   int handle_take_window_screenshot_count() const {
35     return handle_take_window_screenshot_count_;
36   }
37 
reset_handle_take_screenshot_count()38   void reset_handle_take_screenshot_count() {
39     handle_take_screenshot_count_ = 0;
40   }
41 
reset_all_screenshot_counts()42   void reset_all_screenshot_counts() {
43     handle_take_screenshot_count_ = 0;
44     handle_take_partial_screenshot_count_ = 0;
45     handle_take_window_screenshot_count_ = 0;
46   }
47 
last_rect()48   const gfx::Rect& last_rect() const { return last_rect_; }
49 
50   const aura::Window* GetSelectedWindowAndReset();
51 
set_can_take_screenshot(bool can_take_screenshot)52   void set_can_take_screenshot(bool can_take_screenshot) {
53     can_take_screenshot_ = can_take_screenshot;
54   }
55 
56  private:
57   int handle_take_screenshot_count_ = 0;
58   int handle_take_partial_screenshot_count_ = 0;
59   int handle_take_window_screenshot_count_ = 0;
60   gfx::Rect last_rect_;
61   bool can_take_screenshot_ = true;
62   aura::Window* selected_window_ = nullptr;
63 
64   DISALLOW_COPY_AND_ASSIGN(TestScreenshotDelegate);
65 };
66 
67 }  // namespace ash
68 
69 #endif  // ASH_TEST_SCREENSHOT_DELEGATE_H_
70