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/system_message_window_win.h"
6
7#include <dbt.h>
8#include <string>
9#include <vector>
10
11#include "base/files/file_path.h"
12#include "base/system_monitor/system_monitor.h"
13#include "base/test/mock_devices_changed_observer.h"
14#include "testing/gmock/include/gmock/gmock.h"
15#include "testing/gtest/include/gtest/gtest.h"
16
17namespace content {
18
19class SystemMessageWindowWinTest : public testing::Test {
20 public:
21  virtual ~SystemMessageWindowWinTest() { }
22
23 protected:
24  virtual void SetUp() OVERRIDE {
25    system_monitor_.AddDevicesChangedObserver(&observer_);
26  }
27
28  base::MessageLoop message_loop_;
29  base::SystemMonitor system_monitor_;
30  base::MockDevicesChangedObserver observer_;
31  SystemMessageWindowWin window_;
32};
33
34TEST_F(SystemMessageWindowWinTest, DevicesChanged) {
35  EXPECT_CALL(observer_, OnDevicesChanged(testing::_)).Times(1);
36  window_.OnDeviceChange(DBT_DEVNODES_CHANGED, NULL);
37  message_loop_.RunUntilIdle();
38}
39
40TEST_F(SystemMessageWindowWinTest, RandomMessage) {
41  window_.OnDeviceChange(DBT_DEVICEQUERYREMOVE, NULL);
42  message_loop_.RunUntilIdle();
43}
44
45}  // namespace content
46