1// Copyright (c) 2012 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#include "content/browser/gamepad/gamepad_test_helpers.h"
6
7#include "content/browser/gamepad/gamepad_service.h"
8
9namespace content {
10
11MockGamepadDataFetcher::MockGamepadDataFetcher(
12    const WebKit::WebGamepads& test_data)
13    : test_data_(test_data),
14      read_data_(false, false) {
15}
16
17MockGamepadDataFetcher::~MockGamepadDataFetcher() {
18}
19
20void MockGamepadDataFetcher::GetGamepadData(WebKit::WebGamepads* pads,
21                                            bool devices_changed_hint) {
22  {
23    base::AutoLock lock(lock_);
24    *pads = test_data_;
25  }
26  read_data_.Signal();
27}
28
29void MockGamepadDataFetcher::WaitForDataRead() {
30  return read_data_.Wait();
31}
32
33void MockGamepadDataFetcher::SetTestData(const WebKit::WebGamepads& new_data) {
34  base::AutoLock lock(lock_);
35  test_data_ = new_data;
36}
37
38GamepadTestHelper::GamepadTestHelper() {
39}
40
41GamepadTestHelper::~GamepadTestHelper() {
42}
43
44GamepadServiceTestConstructor::GamepadServiceTestConstructor(
45    const WebKit::WebGamepads& test_data) {
46  data_fetcher_ = new MockGamepadDataFetcher(test_data);
47  gamepad_service_ =
48      new GamepadService(scoped_ptr<GamepadDataFetcher>(data_fetcher_));
49}
50
51GamepadServiceTestConstructor::~GamepadServiceTestConstructor() {
52  delete gamepad_service_;
53}
54
55}  // namespace content
56