Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(20)

Side by Side Diff: chrome/browser/storage_monitor/storage_monitor_unittest.cc

Issue 16703025: [StorageMonitor] Move StorageMonitor ownership to BrowserProcessImpl (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/message_loop.h" 5 #include "base/message_loop.h"
6 #include "base/strings/utf_string_conversions.h" 6 #include "base/strings/utf_string_conversions.h"
7 #include "base/synchronization/waitable_event.h" 7 #include "base/synchronization/waitable_event.h"
8 #include "chrome/browser/storage_monitor/mock_removable_storage_observer.h" 8 #include "chrome/browser/storage_monitor/mock_removable_storage_observer.h"
9 #include "chrome/browser/storage_monitor/storage_monitor.h" 9 #include "chrome/browser/storage_monitor/storage_monitor.h"
10 #include "chrome/browser/storage_monitor/test_storage_monitor.h" 10 #include "chrome/browser/storage_monitor/test_storage_monitor.h"
11 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
12 12
13 namespace chrome { 13 namespace chrome {
14 14
15 TEST(StorageMonitorTest, TestInitialize) { 15 TEST(StorageMonitorTest, TestInitialize) {
16 test::TestStorageMonitor::RemoveSingleton();
16 test::TestStorageMonitor monitor; 17 test::TestStorageMonitor monitor;
17 EXPECT_FALSE(monitor.init_called_); 18 EXPECT_FALSE(monitor.init_called_);
18 19
19 base::WaitableEvent event(false, false); 20 base::WaitableEvent event(false, false);
vandebo (ex-Chrome) 2013/07/10 16:57:45 aside: WaitableEvent seems like the wrong primitiv
Greg Billock 2013/07/10 21:11:16 Yeah. It's a handy latch. I don't think we have a
vandebo (ex-Chrome) 2013/07/11 15:53:00 This is only slightly more code and is easier to u
Greg Billock 2013/07/11 20:53:35 ok. done. On 2013/07/11 15:53:00, vandebo wrote:
20 monitor.EnsureInitialized(base::Bind(&base::WaitableEvent::Signal, 21 monitor.EnsureInitialized(base::Bind(&base::WaitableEvent::Signal,
21 base::Unretained(&event))); 22 base::Unretained(&event)));
22 EXPECT_TRUE(monitor.init_called_); 23 EXPECT_TRUE(monitor.init_called_);
23 EXPECT_FALSE(event.IsSignaled()); 24 EXPECT_FALSE(event.IsSignaled());
24 monitor.MarkInitialized(); 25 monitor.MarkInitialized();
25 EXPECT_TRUE(event.IsSignaled()); 26 EXPECT_TRUE(event.IsSignaled());
26 } 27 }
27 28
28 TEST(StorageMonitorTest, DeviceAttachDetachNotifications) { 29 TEST(StorageMonitorTest, DeviceAttachDetachNotifications) {
29 base::MessageLoop message_loop; 30 base::MessageLoop message_loop;
30 const string16 kDeviceName = ASCIIToUTF16("media device"); 31 const string16 kDeviceName = ASCIIToUTF16("media device");
31 const std::string kDeviceId1 = "dcim:UUID:FFF0-0001"; 32 const std::string kDeviceId1 = "dcim:UUID:FFF0-0001";
32 const std::string kDeviceId2 = "dcim:UUID:FFF0-0002"; 33 const std::string kDeviceId2 = "dcim:UUID:FFF0-0002";
33 MockRemovableStorageObserver observer1; 34 MockRemovableStorageObserver observer1;
34 MockRemovableStorageObserver observer2; 35 MockRemovableStorageObserver observer2;
36 test::TestStorageMonitor::RemoveSingleton();
vandebo (ex-Chrome) 2013/07/10 16:57:45 nit: bump to the top of the test?
Greg Billock 2013/07/10 21:11:16 Done.
35 test::TestStorageMonitor monitor; 37 test::TestStorageMonitor monitor;
36 monitor.AddObserver(&observer1); 38 monitor.AddObserver(&observer1);
37 monitor.AddObserver(&observer2); 39 monitor.AddObserver(&observer2);
38 40
39 StorageInfo info(kDeviceId1, kDeviceName, FILE_PATH_LITERAL("path"), 41 StorageInfo info(kDeviceId1, kDeviceName, FILE_PATH_LITERAL("path"),
40 string16(), string16(), string16(), 0); 42 string16(), string16(), string16(), 0);
41 monitor.receiver()->ProcessAttach(info); 43 monitor.receiver()->ProcessAttach(info);
42 message_loop.RunUntilIdle(); 44 message_loop.RunUntilIdle();
43 45
44 EXPECT_EQ(kDeviceId1, observer1.last_attached().device_id()); 46 EXPECT_EQ(kDeviceId1, observer1.last_attached().device_id());
(...skipping 22 matching lines...) Expand all
67 // The kDeviceId2 won't be notified since it was never attached. 69 // The kDeviceId2 won't be notified since it was never attached.
68 EXPECT_EQ(1, observer1.detach_calls()); 70 EXPECT_EQ(1, observer1.detach_calls());
69 EXPECT_EQ(1, observer2.detach_calls()); 71 EXPECT_EQ(1, observer2.detach_calls());
70 72
71 monitor.RemoveObserver(&observer1); 73 monitor.RemoveObserver(&observer1);
72 monitor.RemoveObserver(&observer2); 74 monitor.RemoveObserver(&observer2);
73 } 75 }
74 76
75 TEST(StorageMonitorTest, GetAllAvailableStoragesEmpty) { 77 TEST(StorageMonitorTest, GetAllAvailableStoragesEmpty) {
76 base::MessageLoop message_loop; 78 base::MessageLoop message_loop;
79 test::TestStorageMonitor::RemoveSingleton();
77 test::TestStorageMonitor monitor; 80 test::TestStorageMonitor monitor;
78 std::vector<StorageInfo> devices = monitor.GetAllAvailableStorages(); 81 std::vector<StorageInfo> devices = monitor.GetAllAvailableStorages();
79 EXPECT_EQ(0U, devices.size()); 82 EXPECT_EQ(0U, devices.size());
80 } 83 }
81 84
82 TEST(StorageMonitorTest, GetAllAvailableStorageAttachDetach) { 85 TEST(StorageMonitorTest, GetAllAvailableStorageAttachDetach) {
83 base::MessageLoop message_loop; 86 base::MessageLoop message_loop;
87 test::TestStorageMonitor::RemoveSingleton();
84 test::TestStorageMonitor monitor; 88 test::TestStorageMonitor monitor;
85 const std::string kDeviceId1 = "dcim:UUID:FFF0-0042"; 89 const std::string kDeviceId1 = "dcim:UUID:FFF0-0042";
86 const string16 kDeviceName1 = ASCIIToUTF16("test"); 90 const string16 kDeviceName1 = ASCIIToUTF16("test");
87 const base::FilePath kDevicePath1(FILE_PATH_LITERAL("/testfoo")); 91 const base::FilePath kDevicePath1(FILE_PATH_LITERAL("/testfoo"));
88 StorageInfo info1(kDeviceId1, kDeviceName1, kDevicePath1.value(), 92 StorageInfo info1(kDeviceId1, kDeviceName1, kDevicePath1.value(),
89 string16(), string16(), string16(), 0); 93 string16(), string16(), string16(), 0);
90 monitor.receiver()->ProcessAttach(info1); 94 monitor.receiver()->ProcessAttach(info1);
91 message_loop.RunUntilIdle(); 95 message_loop.RunUntilIdle();
92 std::vector<StorageInfo> devices = monitor.GetAllAvailableStorages(); 96 std::vector<StorageInfo> devices = monitor.GetAllAvailableStorages();
93 ASSERT_EQ(1U, devices.size()); 97 ASSERT_EQ(1U, devices.size());
(...skipping 25 matching lines...) Expand all
119 EXPECT_EQ(kDeviceName2, devices[0].name()); 123 EXPECT_EQ(kDeviceName2, devices[0].name());
120 EXPECT_EQ(kDevicePath2.value(), devices[0].location()); 124 EXPECT_EQ(kDevicePath2.value(), devices[0].location());
121 125
122 monitor.receiver()->ProcessDetach(kDeviceId2); 126 monitor.receiver()->ProcessDetach(kDeviceId2);
123 message_loop.RunUntilIdle(); 127 message_loop.RunUntilIdle();
124 devices = monitor.GetAllAvailableStorages(); 128 devices = monitor.GetAllAvailableStorages();
125 EXPECT_EQ(0U, devices.size()); 129 EXPECT_EQ(0U, devices.size());
126 } 130 }
127 131
128 } // namespace chrome 132 } // namespace chrome
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698