| // Copyright 2015 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. | 
 |  | 
 | #include "base/test/user_action_tester.h" | 
 |  | 
 | #include "base/bind.h" | 
 | #include "base/bind_helpers.h" | 
 | #include "base/test/test_simple_task_runner.h" | 
 |  | 
 | namespace base { | 
 |  | 
 | UserActionTester::UserActionTester() | 
 |     : task_runner_(new base::TestSimpleTaskRunner), | 
 |       action_callback_( | 
 |           base::Bind(&UserActionTester::OnUserAction, base::Unretained(this))) { | 
 |   base::SetRecordActionTaskRunner(task_runner_); | 
 |   base::AddActionCallback(action_callback_); | 
 | } | 
 |  | 
 | UserActionTester::~UserActionTester() { | 
 |   base::RemoveActionCallback(action_callback_); | 
 | } | 
 |  | 
 | int UserActionTester::GetActionCount(const std::string& user_action) const { | 
 |   UserActionCountMap::const_iterator iter = count_map_.find(user_action); | 
 |   return iter == count_map_.end() ? 0 : iter->second; | 
 | } | 
 |  | 
 | void UserActionTester::ResetCounts() { | 
 |   count_map_.clear(); | 
 | } | 
 |  | 
 | void UserActionTester::OnUserAction(const std::string& user_action) { | 
 |   ++(count_map_[user_action]); | 
 | } | 
 |  | 
 | }  // namespace base |