diff options
author | youngki@chromium.org <youngki@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-25 17:56:11 +0000 |
---|---|---|
committer | youngki@chromium.org <youngki@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-25 17:56:11 +0000 |
commit | 82ed59c666070e527c402a3be42930a70ffb5e2d (patch) | |
tree | bb5d5d3f1d7d6314b9edea35f39213f68374f5ed /device | |
parent | 2c279f4636902ac5b112f98bd8cb5b87de16db39 (diff) | |
download | chromium_src-82ed59c666070e527c402a3be42930a70ffb5e2d.zip chromium_src-82ed59c666070e527c402a3be42930a70ffb5e2d.tar.gz chromium_src-82ed59c666070e527c402a3be42930a70ffb5e2d.tar.bz2 |
Added Adapter*Changed() observer calls to BluetoothAdapterWin.
BUG=135470
Review URL: https://chromiumcodereview.appspot.com/12212163
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@184435 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'device')
-rw-r--r-- | device/bluetooth/bluetooth_adapter_win.cc | 14 | ||||
-rw-r--r-- | device/bluetooth/bluetooth_adapter_win_unittest.cc | 47 |
2 files changed, 58 insertions, 3 deletions
diff --git a/device/bluetooth/bluetooth_adapter_win.cc b/device/bluetooth/bluetooth_adapter_win.cc index d9f3520..5341aba 100644 --- a/device/bluetooth/bluetooth_adapter_win.cc +++ b/device/bluetooth/bluetooth_adapter_win.cc @@ -1,8 +1,6 @@ // Copyright (c) 2012 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. -// -// TODO(youngki): Implement this file. #include "device/bluetooth/bluetooth_adapter_win.h" @@ -162,8 +160,18 @@ void BluetoothAdapterWin::AdapterStateChanged( const BluetoothTaskManagerWin::AdapterState& state) { DCHECK(thread_checker_.CalledOnValidThread()); name_ = state.name; + bool was_present = IsPresent(); + bool is_present = !state.address.empty(); address_ = state.address; - powered_ = state.powered; + if (was_present != is_present) { + FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_, + AdapterPresentChanged(this, is_present)); + } + if (powered_ != state.powered) { + powered_ = state.powered; + FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_, + AdapterPoweredChanged(this, powered_)); + } if (!initialized_) { initialized_ = true; init_callback_.Run(); diff --git a/device/bluetooth/bluetooth_adapter_win_unittest.cc b/device/bluetooth/bluetooth_adapter_win_unittest.cc index d71c48f..91887c47 100644 --- a/device/bluetooth/bluetooth_adapter_win_unittest.cc +++ b/device/bluetooth/bluetooth_adapter_win_unittest.cc @@ -36,6 +36,8 @@ class AdapterObserver : public device::BluetoothAdapter::Observer { } void Clear() { + num_present_changed_ = 0; + num_powered_changed_ = 0; num_discovering_changed_ = 0; num_scanning_changed_ = 0; num_device_added_ = 0; @@ -43,6 +45,16 @@ class AdapterObserver : public device::BluetoothAdapter::Observer { num_device_removed_ = 0; } + virtual void AdapterPresentChanged( + device::BluetoothAdapter* adapter, bool present) OVERRIDE { + num_present_changed_++; + } + + virtual void AdapterPoweredChanged( + device::BluetoothAdapter* adapter, bool powered) OVERRIDE { + num_powered_changed_++; + } + virtual void AdapterDiscoveringChanged( device::BluetoothAdapter* adapter, bool discovering) OVERRIDE { num_discovering_changed_++; @@ -71,6 +83,14 @@ class AdapterObserver : public device::BluetoothAdapter::Observer { num_device_removed_++; } + int num_present_changed() const { + return num_present_changed_; + } + + int num_powered_changed() const { + return num_powered_changed_; + } + int num_discovering_changed() const { return num_discovering_changed_; } @@ -92,6 +112,8 @@ class AdapterObserver : public device::BluetoothAdapter::Observer { } private: + int num_present_changed_; + int num_powered_changed_; int num_discovering_changed_; int num_scanning_changed_; int num_device_added_; @@ -176,6 +198,31 @@ TEST_F(BluetoothAdapterWinTest, AdapterPresent) { EXPECT_TRUE(adapter_win_->IsPresent()); } +TEST_F(BluetoothAdapterWinTest, AdapterPresentChanged) { + BluetoothTaskManagerWin::AdapterState state; + state.address = kAdapterAddress; + state.name = kAdapterName; + adapter_win_->AdapterStateChanged(state); + EXPECT_EQ(1, adapter_observer_.num_present_changed()); + adapter_win_->AdapterStateChanged(state); + EXPECT_EQ(1, adapter_observer_.num_present_changed()); + BluetoothTaskManagerWin::AdapterState empty_state; + adapter_win_->AdapterStateChanged(empty_state); + EXPECT_EQ(2, adapter_observer_.num_present_changed()); +} + +TEST_F(BluetoothAdapterWinTest, AdapterPoweredChanged) { + BluetoothTaskManagerWin::AdapterState state; + state.powered = true; + adapter_win_->AdapterStateChanged(state); + EXPECT_EQ(1, adapter_observer_.num_powered_changed()); + adapter_win_->AdapterStateChanged(state); + EXPECT_EQ(1, adapter_observer_.num_powered_changed()); + state.powered = false; + adapter_win_->AdapterStateChanged(state); + EXPECT_EQ(2, adapter_observer_.num_powered_changed()); +} + TEST_F(BluetoothAdapterWinTest, AdapterInitialized) { EXPECT_FALSE(adapter_win_->IsInitialized()); EXPECT_FALSE(init_callback_called_); |