Index: trunk/src/chrome/browser/extensions/api/bluetooth/bluetooth_apitest.cc |
=================================================================== |
--- trunk/src/chrome/browser/extensions/api/bluetooth/bluetooth_apitest.cc (revision 255369) |
+++ trunk/src/chrome/browser/extensions/api/bluetooth/bluetooth_apitest.cc (working copy) |
@@ -17,19 +17,16 @@ |
#include "device/bluetooth/bluetooth_out_of_band_pairing_data.h" |
#include "device/bluetooth/test/mock_bluetooth_adapter.h" |
#include "device/bluetooth/test/mock_bluetooth_device.h" |
-#include "device/bluetooth/test/mock_bluetooth_discovery_session.h" |
#include "device/bluetooth/test/mock_bluetooth_profile.h" |
#include "device/bluetooth/test/mock_bluetooth_socket.h" |
#include "testing/gmock/include/gmock/gmock.h" |
using device::BluetoothAdapter; |
using device::BluetoothDevice; |
-using device::BluetoothDiscoverySession; |
using device::BluetoothOutOfBandPairingData; |
using device::BluetoothProfile; |
using device::MockBluetoothAdapter; |
using device::MockBluetoothDevice; |
-using device::MockBluetoothDiscoverySession; |
using device::MockBluetoothProfile; |
using extensions::Extension; |
@@ -68,17 +65,6 @@ |
false /* paired */, false /* connected */)); |
} |
- void DiscoverySessionCallback( |
- const BluetoothAdapter::DiscoverySessionCallback& callback, |
- const BluetoothAdapter::ErrorCallback& error_callback) { |
- if (mock_session_.get()) { |
- callback.Run( |
- scoped_ptr<BluetoothDiscoverySession>(mock_session_.release())); |
- return; |
- } |
- error_callback.Run(); |
- } |
- |
template <class T> |
T* setupFunction(T* function) { |
function->set_extension(empty_extension_.get()); |
@@ -88,7 +74,6 @@ |
protected: |
testing::StrictMock<MockBluetoothAdapter>* mock_adapter_; |
- scoped_ptr<testing::NiceMock<MockBluetoothDiscoverySession> > mock_session_; |
scoped_ptr<testing::NiceMock<MockBluetoothDevice> > device1_; |
scoped_ptr<testing::NiceMock<MockBluetoothDevice> > device2_; |
scoped_ptr<testing::NiceMock<MockBluetoothProfile> > profile1_; |
@@ -144,11 +129,18 @@ |
return true; |
} |
-static void StopDiscoverySessionCallback(const base::Closure& callback, |
- const base::Closure& error_callback) { |
+static void CallDiscoveryCallback( |
+ const base::Closure& callback, |
+ const BluetoothAdapter::ErrorCallback& error_callback) { |
callback.Run(); |
} |
+static void CallDiscoveryErrorCallback( |
+ const base::Closure& callback, |
+ const BluetoothAdapter::ErrorCallback& error_callback) { |
+ error_callback.Run(); |
+} |
+ |
static void CallOutOfBandPairingDataCallback( |
const BluetoothAdapter::BluetoothOutOfBandPairingDataCallback& callback, |
const BluetoothAdapter::ErrorCallback& error_callback) { |
@@ -324,12 +316,9 @@ |
} |
IN_PROC_BROWSER_TEST_F(BluetoothApiTest, Discovery) { |
- // Try with a failure to start. This will return an error as we haven't |
- // initialied a session object. |
- EXPECT_CALL(*mock_adapter_, StartDiscoverySession(testing::_, testing::_)) |
- .WillOnce( |
- testing::Invoke(this, &BluetoothApiTest::DiscoverySessionCallback)); |
- |
+ // Try with a failure to start |
+ EXPECT_CALL(*mock_adapter_, StartDiscovering(testing::_, testing::_)) |
+ .WillOnce(testing::Invoke(CallDiscoveryErrorCallback)); |
// StartDiscovery failure will remove the adapter that is no longer used. |
EXPECT_CALL(*mock_adapter_, RemoveObserver(testing::_)); |
scoped_refptr<api::BluetoothStartDiscoveryFunction> start_function; |
@@ -338,28 +327,19 @@ |
utils::RunFunctionAndReturnError(start_function.get(), "[]", browser())); |
ASSERT_FALSE(error.empty()); |
- // Reset the adapter and initiate a discovery session. The ownership of the |
- // mock session will be passed to the event router. |
- ASSERT_FALSE(mock_session_.get()); |
+ // Reset for a successful start |
SetUpMockAdapter(); |
+ EXPECT_CALL(*mock_adapter_, StartDiscovering(testing::_, testing::_)) |
+ .WillOnce(testing::Invoke(CallDiscoveryCallback)); |
- // Create a mock session to be returned as a result. Get a handle to it as |
- // its ownership will be passed and |mock_session_| will be reset. |
- mock_session_.reset(new testing::NiceMock<MockBluetoothDiscoverySession>()); |
- MockBluetoothDiscoverySession* session = mock_session_.get(); |
- EXPECT_CALL(*mock_adapter_, StartDiscoverySession(testing::_, testing::_)) |
- .WillOnce( |
- testing::Invoke(this, &BluetoothApiTest::DiscoverySessionCallback)); |
start_function = setupFunction(new api::BluetoothStartDiscoveryFunction); |
(void) |
utils::RunFunctionAndReturnError(start_function.get(), "[]", browser()); |
- // End the discovery session. The StopDiscovery function should succeed. |
+ // Reset to try stopping |
testing::Mock::VerifyAndClearExpectations(mock_adapter_); |
- EXPECT_CALL(*session, IsActive()).WillOnce(testing::Return(true)); |
- EXPECT_CALL(*session, Stop(testing::_, testing::_)) |
- .WillOnce(testing::Invoke(StopDiscoverySessionCallback)); |
- |
+ EXPECT_CALL(*mock_adapter_, StopDiscovering(testing::_, testing::_)) |
+ .WillOnce(testing::Invoke(CallDiscoveryCallback)); |
// StopDiscovery success will remove the adapter that is no longer used. |
EXPECT_CALL(*mock_adapter_, RemoveObserver(testing::_)); |
scoped_refptr<api::BluetoothStopDiscoveryFunction> stop_function; |
@@ -367,10 +347,10 @@ |
(void) utils::RunFunctionAndReturnSingleResult( |
stop_function.get(), "[]", browser()); |
- // Reset the adapter. Simulate failure for stop discovery. The event router |
- // still owns the session. Make it appear inactive. |
+ // Reset to try stopping with an error |
SetUpMockAdapter(); |
- EXPECT_CALL(*session, IsActive()).WillOnce(testing::Return(false)); |
+ EXPECT_CALL(*mock_adapter_, StopDiscovering(testing::_, testing::_)) |
+ .WillOnce(testing::Invoke(CallDiscoveryErrorCallback)); |
EXPECT_CALL(*mock_adapter_, RemoveObserver(testing::_)); |
stop_function = setupFunction(new api::BluetoothStopDiscoveryFunction); |
error = |
@@ -380,14 +360,10 @@ |
} |
IN_PROC_BROWSER_TEST_F(BluetoothApiTest, DiscoveryCallback) { |
- mock_session_.reset(new testing::NiceMock<MockBluetoothDiscoverySession>()); |
- MockBluetoothDiscoverySession* session = mock_session_.get(); |
- EXPECT_CALL(*mock_adapter_, StartDiscoverySession(testing::_, testing::_)) |
- .WillOnce( |
- testing::Invoke(this, &BluetoothApiTest::DiscoverySessionCallback)); |
- EXPECT_CALL(*session, IsActive()).WillOnce(testing::Return(true)); |
- EXPECT_CALL(*session, Stop(testing::_, testing::_)) |
- .WillOnce(testing::Invoke(StopDiscoverySessionCallback)); |
+ EXPECT_CALL(*mock_adapter_, StartDiscovering(testing::_, testing::_)) |
+ .WillOnce(testing::Invoke(CallDiscoveryCallback)); |
+ EXPECT_CALL(*mock_adapter_, StopDiscovering(testing::_, testing::_)) |
+ .WillOnce(testing::Invoke(CallDiscoveryCallback)); |
ResultCatcher catcher; |
catcher.RestrictToProfile(browser()->profile()); |
@@ -432,22 +408,17 @@ |
ResultCatcher catcher; |
catcher.RestrictToProfile(browser()->profile()); |
- mock_session_.reset(new testing::NiceMock<MockBluetoothDiscoverySession>()); |
- MockBluetoothDiscoverySession* session = mock_session_.get(); |
- EXPECT_CALL(*mock_adapter_, StartDiscoverySession(testing::_, testing::_)) |
- .WillOnce( |
- testing::Invoke(this, &BluetoothApiTest::DiscoverySessionCallback)); |
- EXPECT_CALL(*session, IsActive()).WillOnce(testing::Return(true)); |
- EXPECT_CALL(*session, Stop(testing::_, testing::_)) |
- .WillOnce(testing::Invoke(StopDiscoverySessionCallback)); |
+ EXPECT_CALL(*mock_adapter_, StartDiscovering(testing::_, testing::_)) |
+ .WillOnce(testing::Invoke(CallDiscoveryCallback)); |
+ EXPECT_CALL(*mock_adapter_, StopDiscovering(testing::_, testing::_)) |
+ .WillOnce(testing::Invoke(CallDiscoveryCallback)); |
ExtensionTestMessageListener discovery_started("ready", true); |
ASSERT_TRUE(LoadExtension( |
test_data_dir_.AppendASCII("bluetooth/discovery_in_progress"))); |
EXPECT_TRUE(discovery_started.WaitUntilSatisfied()); |
- // Only this should be received. No additional notification should be sent for |
- // devices discovered before the discovery session started. |
+ // This should be received in addition to the cached device above. |
event_router()->DeviceAdded(mock_adapter_, device2_.get()); |
discovery_started.Reply("go"); |