12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- // 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 <memory>
- #include "base/system/system_monitor.h"
- #include "base/run_loop.h"
- #include "base/test/mock_devices_changed_observer.h"
- #include "base/test/task_environment.h"
- #include "testing/gmock/include/gmock/gmock.h"
- #include "testing/gtest/include/gtest/gtest.h"
- namespace base {
- namespace {
- class SystemMonitorTest : public testing::Test {
- public:
- SystemMonitorTest(const SystemMonitorTest&) = delete;
- SystemMonitorTest& operator=(const SystemMonitorTest&) = delete;
- protected:
- SystemMonitorTest() { system_monitor_ = std::make_unique<SystemMonitor>(); }
- test::TaskEnvironment task_environment_;
- std::unique_ptr<SystemMonitor> system_monitor_;
- };
- TEST_F(SystemMonitorTest, DeviceChangeNotifications) {
- const int kObservers = 5;
- testing::Sequence mock_sequencer[kObservers];
- MockDevicesChangedObserver observers[kObservers];
- for (int index = 0; index < kObservers; ++index) {
- system_monitor_->AddDevicesChangedObserver(&observers[index]);
- EXPECT_CALL(observers[index],
- OnDevicesChanged(SystemMonitor::DEVTYPE_UNKNOWN))
- .Times(3)
- .InSequence(mock_sequencer[index]);
- }
- system_monitor_->ProcessDevicesChanged(SystemMonitor::DEVTYPE_UNKNOWN);
- RunLoop().RunUntilIdle();
- system_monitor_->ProcessDevicesChanged(SystemMonitor::DEVTYPE_UNKNOWN);
- system_monitor_->ProcessDevicesChanged(SystemMonitor::DEVTYPE_UNKNOWN);
- RunLoop().RunUntilIdle();
- }
- } // namespace
- } // namespace base
|