| Index: chrome/browser/extensions/bluetooth_event_router_unittest.cc
|
| diff --git a/chrome/browser/extensions/bluetooth_event_router_unittest.cc b/chrome/browser/extensions/bluetooth_event_router_unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..fae709575365212493c9f01d87c63e45f1a29d14
|
| --- /dev/null
|
| +++ b/chrome/browser/extensions/bluetooth_event_router_unittest.cc
|
| @@ -0,0 +1,125 @@
|
| +// 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.
|
| +
|
| +#include "base/memory/ref_counted.h"
|
| +#include "chrome/browser/extensions/bluetooth_event_router.h"
|
| +#include "chrome/browser/extensions/event_names.h"
|
| +#include "chrome/test/base/testing_profile.h"
|
| +#include "device/bluetooth/test/mock_bluetooth_adapter.h"
|
| +#include "device/bluetooth/test/mock_bluetooth_socket.h"
|
| +#include "testing/gmock/include/gmock/gmock.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +
|
| +namespace {
|
| +
|
| +const char* kAdapterAddress = "Mock Adapter address for testing";
|
| +const char* kName = "Mock Adapter name for testing";
|
| +const char* kNonBluetoothEventName = "Non bluetooth event name";
|
| +
|
| +const int kSocketId = 1;
|
| +const int kAnotherSocketId = 2;
|
| +
|
| +} // namespace
|
| +
|
| +namespace extensions {
|
| +
|
| +class ExtensionBluetoothEventRouterTest : public testing::Test {
|
| + public:
|
| + ExtensionBluetoothEventRouterTest()
|
| + : mock_adapter_(new testing::StrictMock<device::MockBluetoothAdapter>(
|
| + kAdapterAddress, kName)),
|
| + mock_socket_(new testing::NiceMock<device::MockBluetoothSocket>()),
|
| + mock_another_socket_(
|
| + new testing::NiceMock<device::MockBluetoothSocket>()),
|
| + router_(&test_profile_) {
|
| + router_.SetAdapterForTest(mock_adapter_);
|
| + }
|
| +
|
| + protected:
|
| + testing::StrictMock<device::MockBluetoothAdapter>* mock_adapter_;
|
| + testing::NiceMock<device::MockBluetoothSocket>* mock_socket_;
|
| + testing::NiceMock<device::MockBluetoothSocket>* mock_another_socket_;
|
| + TestingProfile test_profile_;
|
| + ExtensionBluetoothEventRouter router_;
|
| +};
|
| +
|
| +TEST_F(ExtensionBluetoothEventRouterTest, BluetoothEventListener) {
|
| + router_.OnEventListenerAdded(
|
| + extensions::event_names::kBluetoothOnAvailabilityChanged);
|
| + EXPECT_CALL(*mock_adapter_, RemoveObserver(testing::_)).Times(1);
|
| + router_.OnEventListenerRemoved(
|
| + extensions::event_names::kBluetoothOnAvailabilityChanged);
|
| +}
|
| +
|
| +TEST_F(ExtensionBluetoothEventRouterTest, MultipleBluetoothEventListeners) {
|
| + router_.OnEventListenerAdded(
|
| + extensions::event_names::kBluetoothOnAvailabilityChanged);
|
| + router_.OnEventListenerAdded(
|
| + extensions::event_names::kBluetoothOnDiscoveringChanged);
|
| + router_.OnEventListenerAdded(
|
| + extensions::event_names::kBluetoothOnPowerChanged);
|
| + router_.OnEventListenerRemoved(
|
| + extensions::event_names::kBluetoothOnAvailabilityChanged);
|
| + router_.OnEventListenerRemoved(
|
| + extensions::event_names::kBluetoothOnDiscoveringChanged);
|
| + EXPECT_CALL(*mock_adapter_, RemoveObserver(testing::_)).Times(1);
|
| + router_.OnEventListenerRemoved(
|
| + extensions::event_names::kBluetoothOnPowerChanged);
|
| +}
|
| +
|
| +TEST_F(ExtensionBluetoothEventRouterTest, NonBluetoothEventListeners) {
|
| + router_.OnEventListenerAdded(kNonBluetoothEventName);
|
| + router_.OnEventListenerRemoved(kNonBluetoothEventName);
|
| + EXPECT_CALL(*mock_adapter_, RemoveObserver(testing::_)).Times(1);
|
| +}
|
| +
|
| +TEST_F(ExtensionBluetoothEventRouterTest, RegisterSocket) {
|
| + EXPECT_CALL(*mock_socket_, fd()).WillRepeatedly(testing::Return(kSocketId));
|
| + int socket_id = router_.RegisterSocket(mock_socket_);
|
| + EXPECT_CALL(*mock_adapter_, RemoveObserver(testing::_)).Times(1);
|
| + router_.ReleaseSocket(socket_id);
|
| +}
|
| +
|
| +TEST_F(ExtensionBluetoothEventRouterTest, RegisterMultipleSockets) {
|
| + EXPECT_CALL(*mock_socket_, fd()).WillRepeatedly(testing::Return(kSocketId));
|
| + int socket_id = router_.RegisterSocket(mock_socket_);
|
| + EXPECT_CALL(*mock_another_socket_, fd())
|
| + .WillRepeatedly(testing::Return(kAnotherSocketId));
|
| + int another_socket_id = router_.RegisterSocket(mock_another_socket_);
|
| + router_.ReleaseSocket(another_socket_id);
|
| + EXPECT_CALL(*mock_adapter_, RemoveObserver(testing::_)).Times(1);
|
| + router_.ReleaseSocket(socket_id);
|
| +}
|
| +
|
| +TEST_F(ExtensionBluetoothEventRouterTest, RegisterSameSockets) {
|
| + EXPECT_CALL(*mock_socket_, fd()).WillRepeatedly(testing::Return(kSocketId));
|
| + int socket_id = router_.RegisterSocket(mock_socket_);
|
| + socket_id = router_.RegisterSocket(mock_socket_);
|
| + EXPECT_CALL(*mock_adapter_, RemoveObserver(testing::_)).Times(1);
|
| + router_.ReleaseSocket(socket_id);
|
| +}
|
| +
|
| +TEST_F(ExtensionBluetoothEventRouterTest, AddEventListerAndSocket) {
|
| + EXPECT_CALL(*mock_socket_, fd()).WillRepeatedly(testing::Return(kSocketId));
|
| + int socket_id = router_.RegisterSocket(mock_socket_);
|
| + router_.OnEventListenerAdded(
|
| + extensions::event_names::kBluetoothOnAvailabilityChanged);
|
| + router_.ReleaseSocket(socket_id);
|
| + EXPECT_CALL(*mock_adapter_, RemoveObserver(testing::_)).Times(1);
|
| + router_.OnEventListenerRemoved(
|
| + extensions::event_names::kBluetoothOnAvailabilityChanged);
|
| +}
|
| +
|
| +TEST_F(ExtensionBluetoothEventRouterTest, AddSocketAndEventListener) {
|
| + EXPECT_CALL(*mock_socket_, fd()).WillRepeatedly(testing::Return(kSocketId));
|
| + router_.OnEventListenerAdded(
|
| + extensions::event_names::kBluetoothOnAvailabilityChanged);
|
| + int socket_id = router_.RegisterSocket(mock_socket_);
|
| + router_.OnEventListenerRemoved(
|
| + extensions::event_names::kBluetoothOnAvailabilityChanged);
|
| + EXPECT_CALL(*mock_adapter_, RemoveObserver(testing::_)).Times(1);
|
| + router_.ReleaseSocket(socket_id);
|
| +}
|
| +
|
| +} // namespace extensions
|
|
|