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

Side by Side Diff: chrome/browser/system_monitor/image_capture_device_manager_unittest.mm

Issue 12147002: Add a receiver interface to RemovableStorageNotifications. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Merging Created 7 years, 10 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 5
6 #import <Foundation/Foundation.h> 6 #import <Foundation/Foundation.h>
7 #import <ImageCaptureCore/ImageCaptureCore.h> 7 #import <ImageCaptureCore/ImageCaptureCore.h>
8 8
9 #include "base/file_path.h" 9 #include "base/file_path.h"
10 #include "base/file_util.h" 10 #include "base/file_util.h"
11 #include "base/files/scoped_temp_dir.h" 11 #include "base/files/scoped_temp_dir.h"
12 #include "base/mac/foundation_util.h" 12 #include "base/mac/foundation_util.h"
13 #include "base/memory/weak_ptr.h" 13 #include "base/memory/weak_ptr.h"
14 #include "base/message_loop.h" 14 #include "base/message_loop.h"
15 #include "base/system_monitor/system_monitor.h"
16 #include "chrome/browser/system_monitor/image_capture_device.h" 15 #include "chrome/browser/system_monitor/image_capture_device.h"
17 #include "chrome/browser/system_monitor/image_capture_device_manager.h" 16 #include "chrome/browser/system_monitor/image_capture_device_manager.h"
17 #include "chrome/browser/system_monitor/test_removable_storage_notifications.h"
18 #include "content/public/test/test_browser_thread.h" 18 #include "content/public/test/test_browser_thread.h"
19 #include "testing/gtest/include/gtest/gtest.h" 19 #include "testing/gtest/include/gtest/gtest.h"
20 20
21 #if !defined(MAC_OS_X_VERSION_10_7) || \ 21 #if !defined(MAC_OS_X_VERSION_10_7) || \
22 MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_7 22 MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_7
23 23
24 @interface NSObject (ICCameraDeviceDelegateLionAPI) 24 @interface NSObject (ICCameraDeviceDelegateLionAPI)
25 - (void)deviceDidBecomeReadyWithCompleteContentCatalog:(ICDevice*)device; 25 - (void)deviceDidBecomeReadyWithCompleteContentCatalog:(ICDevice*)device;
26 - (void)didDownloadFile:(ICCameraFile*)file 26 - (void)didDownloadFile:(ICCameraFile*)file
27 error:(NSError*)error 27 error:(NSError*)error
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 std::vector<std::string> items_; 210 std::vector<std::string> items_;
211 std::vector<std::string> downloads_; 211 std::vector<std::string> downloads_;
212 bool completed_; 212 bool completed_;
213 bool removed_; 213 bool removed_;
214 base::PlatformFileError last_error_; 214 base::PlatformFileError last_error_;
215 }; 215 };
216 216
217 class ImageCaptureDeviceManagerTest : public testing::Test { 217 class ImageCaptureDeviceManagerTest : public testing::Test {
218 public: 218 public:
219 virtual void SetUp() OVERRIDE { 219 virtual void SetUp() OVERRIDE {
220 base::SystemMonitor::AllocateSystemIOPorts();
221 system_monitor_.reset(new base::SystemMonitor());
222 ui_thread_.reset(new content::TestBrowserThread( 220 ui_thread_.reset(new content::TestBrowserThread(
223 content::BrowserThread::UI, &message_loop_)); 221 content::BrowserThread::UI, &message_loop_));
224 } 222 }
225 223
226 MockICCameraDevice* AttachDevice( 224 MockICCameraDevice* AttachDevice(
227 chrome::ImageCaptureDeviceManager* manager) { 225 chrome::ImageCaptureDeviceManager* manager) {
228 // Ownership will be passed to the device browser delegate. 226 // Ownership will be passed to the device browser delegate.
229 scoped_nsobject<MockICCameraDevice> device( 227 scoped_nsobject<MockICCameraDevice> device(
230 [[MockICCameraDevice alloc] init]); 228 [[MockICCameraDevice alloc] init]);
231 id<ICDeviceBrowserDelegate> delegate = manager->device_browser(); 229 id<ICDeviceBrowserDelegate> delegate = manager->device_browser();
232 [delegate deviceBrowser:nil didAddDevice:device moreComing:NO]; 230 [delegate deviceBrowser:nil didAddDevice:device moreComing:NO];
233 return device.autorelease(); 231 return device.autorelease();
234 } 232 }
235 233
236 void DetachDevice(chrome::ImageCaptureDeviceManager* manager, 234 void DetachDevice(chrome::ImageCaptureDeviceManager* manager,
237 ICCameraDevice* device) { 235 ICCameraDevice* device) {
238 id<ICDeviceBrowserDelegate> delegate = manager->device_browser(); 236 id<ICDeviceBrowserDelegate> delegate = manager->device_browser();
239 [delegate deviceBrowser:nil didRemoveDevice:device moreGoing:NO]; 237 [delegate deviceBrowser:nil didRemoveDevice:device moreGoing:NO];
240 } 238 }
241 239
242 protected: 240 protected:
243 MessageLoopForUI message_loop_; 241 MessageLoopForUI message_loop_;
244 scoped_ptr<content::TestBrowserThread> ui_thread_; 242 scoped_ptr<content::TestBrowserThread> ui_thread_;
245 scoped_ptr<base::SystemMonitor> system_monitor_; 243 chrome::test::TestRemovableStorageNotifications notifications_;
246 TestCameraListener listener_; 244 TestCameraListener listener_;
247 }; 245 };
248 246
249 TEST_F(ImageCaptureDeviceManagerTest, TestAttachDetach) { 247 TEST_F(ImageCaptureDeviceManagerTest, TestAttachDetach) {
250 chrome::ImageCaptureDeviceManager manager; 248 chrome::ImageCaptureDeviceManager manager;
249 manager.SetNotifications(notifications_.receiver());
251 ICCameraDevice* device = AttachDevice(&manager); 250 ICCameraDevice* device = AttachDevice(&manager);
252 std::vector<base::SystemMonitor::RemovableStorageInfo> devices = 251 std::vector<chrome::RemovableStorageNotifications::StorageInfo> devices =
253 system_monitor_->GetAttachedRemovableStorage(); 252 notifications_.GetAttachedStorage();
254 253
255 ASSERT_EQ(1U, devices.size()); 254 ASSERT_EQ(1U, devices.size());
256 EXPECT_EQ(std::string("ic:") + kDeviceId, devices[0].device_id); 255 EXPECT_EQ(std::string("ic:") + kDeviceId, devices[0].device_id);
257 256
258 DetachDevice(&manager, device); 257 DetachDevice(&manager, device);
259 devices = system_monitor_->GetAttachedRemovableStorage(); 258 devices = notifications_.GetAttachedStorage();
260 ASSERT_EQ(0U, devices.size()); 259 ASSERT_EQ(0U, devices.size());
261 }; 260 };
262 261
263 TEST_F(ImageCaptureDeviceManagerTest, OpenCamera) { 262 TEST_F(ImageCaptureDeviceManagerTest, OpenCamera) {
264 chrome::ImageCaptureDeviceManager manager; 263 chrome::ImageCaptureDeviceManager manager;
264 manager.SetNotifications(notifications_.receiver());
265 ICCameraDevice* device = AttachDevice(&manager); 265 ICCameraDevice* device = AttachDevice(&manager);
266 266
267 EXPECT_FALSE(chrome::ImageCaptureDeviceManager::deviceForUUID( 267 EXPECT_FALSE(chrome::ImageCaptureDeviceManager::deviceForUUID(
268 "nonexistent")); 268 "nonexistent"));
269 269
270 scoped_nsobject<ImageCaptureDevice> camera( 270 scoped_nsobject<ImageCaptureDevice> camera(
271 [chrome::ImageCaptureDeviceManager::deviceForUUID(kDeviceId) 271 [chrome::ImageCaptureDeviceManager::deviceForUUID(kDeviceId)
272 retain]); 272 retain]);
273 273
274 [camera setListener:listener_.AsWeakPtr()]; 274 [camera setListener:listener_.AsWeakPtr()];
(...skipping 16 matching lines...) Expand all
291 EXPECT_TRUE(listener_.completed()); 291 EXPECT_TRUE(listener_.completed());
292 292
293 [camera close]; 293 [camera close];
294 DetachDevice(&manager, device); 294 DetachDevice(&manager, device);
295 EXPECT_FALSE(chrome::ImageCaptureDeviceManager::deviceForUUID( 295 EXPECT_FALSE(chrome::ImageCaptureDeviceManager::deviceForUUID(
296 kDeviceId)); 296 kDeviceId));
297 } 297 }
298 298
299 TEST_F(ImageCaptureDeviceManagerTest, RemoveCamera) { 299 TEST_F(ImageCaptureDeviceManagerTest, RemoveCamera) {
300 chrome::ImageCaptureDeviceManager manager; 300 chrome::ImageCaptureDeviceManager manager;
301 manager.SetNotifications(notifications_.receiver());
301 ICCameraDevice* device = AttachDevice(&manager); 302 ICCameraDevice* device = AttachDevice(&manager);
302 303
303 scoped_nsobject<ImageCaptureDevice> camera( 304 scoped_nsobject<ImageCaptureDevice> camera(
304 [chrome::ImageCaptureDeviceManager::deviceForUUID(kDeviceId) 305 [chrome::ImageCaptureDeviceManager::deviceForUUID(kDeviceId)
305 retain]); 306 retain]);
306 307
307 [camera setListener:listener_.AsWeakPtr()]; 308 [camera setListener:listener_.AsWeakPtr()];
308 [camera open]; 309 [camera open];
309 310
310 [camera didRemoveDevice:device]; 311 [camera didRemoveDevice:device];
311 EXPECT_TRUE(listener_.removed()); 312 EXPECT_TRUE(listener_.removed());
312 } 313 }
313 314
314 TEST_F(ImageCaptureDeviceManagerTest, DownloadFile) { 315 TEST_F(ImageCaptureDeviceManagerTest, DownloadFile) {
315 scoped_ptr<content::TestBrowserThread> file_thread_( 316 scoped_ptr<content::TestBrowserThread> file_thread_(
316 new content::TestBrowserThread( 317 new content::TestBrowserThread(
317 content::BrowserThread::FILE, &message_loop_)); 318 content::BrowserThread::FILE, &message_loop_));
318 319
319 chrome::ImageCaptureDeviceManager manager; 320 chrome::ImageCaptureDeviceManager manager;
321 manager.SetNotifications(notifications_.receiver());
320 MockICCameraDevice* device = AttachDevice(&manager); 322 MockICCameraDevice* device = AttachDevice(&manager);
321 323
322 scoped_nsobject<ImageCaptureDevice> camera( 324 scoped_nsobject<ImageCaptureDevice> camera(
323 [chrome::ImageCaptureDeviceManager::deviceForUUID(kDeviceId) 325 [chrome::ImageCaptureDeviceManager::deviceForUUID(kDeviceId)
324 retain]); 326 retain]);
325 327
326 [camera setListener:listener_.AsWeakPtr()]; 328 [camera setListener:listener_.AsWeakPtr()];
327 [camera open]; 329 [camera open];
328 330
329 std::string kTestFileName("pic1"); 331 std::string kTestFileName("pic1");
(...skipping 30 matching lines...) Expand all
360 EXPECT_EQ(kTestFileName, listener_.downloads()[1]); 362 EXPECT_EQ(kTestFileName, listener_.downloads()[1]);
361 ASSERT_EQ(base::PLATFORM_FILE_OK, listener_.last_error()); 363 ASSERT_EQ(base::PLATFORM_FILE_OK, listener_.last_error());
362 char file_contents[5]; 364 char file_contents[5];
363 ASSERT_EQ(4, file_util::ReadFile(temp_file, file_contents, 365 ASSERT_EQ(4, file_util::ReadFile(temp_file, file_contents,
364 strlen(kTestFileContents))); 366 strlen(kTestFileContents)));
365 EXPECT_EQ(kTestFileContents, 367 EXPECT_EQ(kTestFileContents,
366 std::string(file_contents, strlen(kTestFileContents))); 368 std::string(file_contents, strlen(kTestFileContents)));
367 369
368 [camera didRemoveDevice:device]; 370 [camera didRemoveDevice:device];
369 } 371 }
OLDNEW
« no previous file with comments | « chrome/browser/system_monitor/image_capture_device_manager.mm ('k') | chrome/browser/system_monitor/media_storage_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698