1 // Copyright 2015 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.
5 #ifndef BASE_TEST_USER_ACTION_TESTER_H_
6 #define BASE_TEST_USER_ACTION_TESTER_H_
11 #include "base/metrics/user_metrics.h"
15 // This class observes and collects user action notifications that are sent
16 // by the tests, so that they can be examined afterwards for correctness.
17 // Note: This class is NOT thread-safe.
18 class UserActionTester
{
23 // Returns the number of times the given |user_action| occurred.
24 int GetActionCount(const std::string
& user_action
) const;
26 // Resets all user action counts to 0.
30 typedef std::map
<std::string
, int> UserActionCountMap
;
32 // The callback that is notified when a user actions occurs.
33 void OnUserAction(const std::string
& user_action
);
35 // A map that tracks the number of times a user action has occurred.
36 UserActionCountMap count_map_
;
38 // The callback that is added to the global action callback list.
39 base::ActionCallback action_callback_
;
41 DISALLOW_COPY_AND_ASSIGN(UserActionTester
);
46 #endif // BASE_TEST_USER_ACTION_TESTER_H_