#ifndef BASE_TEST_METRICS_USER_ACTION_TESTER_H_
#define BASE_TEST_METRICS_USER_ACTION_TESTER_H_
#include <map>
#include <string>
#include <string_view>
#include <vector>
#include "base/memory/scoped_refptr.h"
#include "base/metrics/user_metrics.h"
#include "base/task/single_thread_task_runner.h"
#include "base/time/time.h"
namespace base {
class TimeTicks;
class UserActionTester {
public:
UserActionTester();
UserActionTester(const UserActionTester&) = delete;
UserActionTester& operator=(const UserActionTester&) = delete;
~UserActionTester();
int GetActionCount(std::string_view user_action) const;
std::vector<TimeTicks> GetActionTimes(std::string_view user_action) const;
void ResetCounts();
private:
typedef std::multimap<std::string, TimeTicks, std::less<>> UserActionTimesMap;
void OnUserAction(const std::string& user_action, TimeTicks action_time);
UserActionTimesMap times_map_;
scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
base::ActionCallback action_callback_;
};
}
#endif