// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef ASH_ACCESSIBILITY_MOCK_TOUCH_EXPLORATION_CONTROLLER_DELEGATE_H_
#define ASH_ACCESSIBILITY_MOCK_TOUCH_EXPLORATION_CONTROLLER_DELEGATE_H_

#include "ash/accessibility/touch_exploration_controller.h"
#include "ui/accessibility/ax_enums.mojom.h"

namespace ash {

class MockTouchExplorationControllerDelegate
    : public TouchExplorationControllerDelegate {
 public:
  MockTouchExplorationControllerDelegate();
  ~MockTouchExplorationControllerDelegate() override;

  // TouchExplorationControllerDelegate:
  void SetOutputLevel(int volume) override;
  void SilenceSpokenFeedback() override;
  void PlayVolumeAdjustEarcon() override;
  void PlayPassthroughEarcon() override;
  void PlayLongPressRightClickEarcon() override;
  void PlayEnterScreenEarcon() override;
  void PlayTouchTypeEarcon() override;
  void HandleAccessibilityGesture(ax::mojom::Gesture gesture,
                                  gfx::PointF location) override;

  const std::vector<float> VolumeChanges() const;
  size_t NumAdjustSounds() const;
  size_t NumPassthroughSounds() const;
  size_t NumLongPressRightClickSounds() const;
  size_t NumEnterScreenSounds() const;
  size_t NumTouchTypeSounds() const;
  ax::mojom::Gesture GetLastGesture() const;
  void ResetLastGesture();
  std::vector<gfx::Point>& GetTouchExplorePoints();

  void ResetCountersToZero();

 private:
  std::vector<float> volume_changes_;
  size_t num_times_adjust_sound_played_ = 0;
  size_t num_times_passthrough_played_ = 0;
  size_t num_times_long_press_right_click_played_ = 0;
  size_t num_times_enter_screen_played_ = 0;
  size_t num_times_touch_type_sound_played_ = 0;
  ax::mojom::Gesture last_gesture_ = ax::mojom::Gesture::kNone;
  std::vector<gfx::Point> touch_explore_points_;
};

}  // namespace ash

#endif  // ASH_ACCESSIBILITY_MOCK_TOUCH_EXPLORATION_CONTROLLER_DELEGATE_H_
