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

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

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, 6 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_util.h" 9 #include "base/file_util.h"
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.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 "chrome/browser/storage_monitor/image_capture_device.h" 15 #include "chrome/browser/storage_monitor/image_capture_device.h"
16 #include "chrome/browser/storage_monitor/image_capture_device_manager.h" 16 #include "chrome/browser/storage_monitor/image_capture_device_manager.h"
17 #include "chrome/browser/storage_monitor/test_storage_monitor.h" 17 #include "chrome/browser/storage_monitor/test_storage_monitor.h"
18 #include "chrome/test/base/testing_browser_process.h"
18 #include "content/public/test/test_browser_thread.h" 19 #include "content/public/test/test_browser_thread.h"
19 #include "testing/gtest/include/gtest/gtest.h" 20 #include "testing/gtest/include/gtest/gtest.h"
20 21
21 #if !defined(MAC_OS_X_VERSION_10_7) || \ 22 #if !defined(MAC_OS_X_VERSION_10_7) || \
22 MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_7 23 MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_7
23 24
24 @interface NSObject (ICCameraDeviceDelegateLionAPI) 25 @interface NSObject (ICCameraDeviceDelegateLionAPI)
25 - (void)deviceDidBecomeReadyWithCompleteContentCatalog:(ICDevice*)device; 26 - (void)deviceDidBecomeReadyWithCompleteContentCatalog:(ICDevice*)device;
26 - (void)didDownloadFile:(ICCameraFile*)file 27 - (void)didDownloadFile:(ICCameraFile*)file
27 error:(NSError*)error 28 error:(NSError*)error
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 bool completed_; 251 bool completed_;
251 bool removed_; 252 bool removed_;
252 base::PlatformFileError last_error_; 253 base::PlatformFileError last_error_;
253 }; 254 };
254 255
255 class ImageCaptureDeviceManagerTest : public testing::Test { 256 class ImageCaptureDeviceManagerTest : public testing::Test {
256 public: 257 public:
257 virtual void SetUp() OVERRIDE { 258 virtual void SetUp() OVERRIDE {
258 ui_thread_.reset(new content::TestBrowserThread( 259 ui_thread_.reset(new content::TestBrowserThread(
259 content::BrowserThread::UI, &message_loop_)); 260 content::BrowserThread::UI, &message_loop_));
261
262 chrome::test::TestStorageMonitor::RemoveSingleton();
263 monitor_ = new chrome::test::TestStorageMonitor;
264 TestingBrowserProcess::GetGlobal()->SetStorageMonitor(monitor_);
260 } 265 }
261 266
262 MockICCameraDevice* AttachDevice( 267 MockICCameraDevice* AttachDevice(
263 chrome::ImageCaptureDeviceManager* manager) { 268 chrome::ImageCaptureDeviceManager* manager) {
264 // Ownership will be passed to the device browser delegate. 269 // Ownership will be passed to the device browser delegate.
265 scoped_nsobject<MockICCameraDevice> device( 270 scoped_nsobject<MockICCameraDevice> device(
266 [[MockICCameraDevice alloc] init]); 271 [[MockICCameraDevice alloc] init]);
267 id<ICDeviceBrowserDelegate> delegate = manager->device_browser(); 272 id<ICDeviceBrowserDelegate> delegate = manager->device_browser();
268 [delegate deviceBrowser:nil didAddDevice:device moreComing:NO]; 273 [delegate deviceBrowser:nil didAddDevice:device moreComing:NO];
269 return device.autorelease(); 274 return device.autorelease();
270 } 275 }
271 276
272 void DetachDevice(chrome::ImageCaptureDeviceManager* manager, 277 void DetachDevice(chrome::ImageCaptureDeviceManager* manager,
273 ICCameraDevice* device) { 278 ICCameraDevice* device) {
274 id<ICDeviceBrowserDelegate> delegate = manager->device_browser(); 279 id<ICDeviceBrowserDelegate> delegate = manager->device_browser();
275 [delegate deviceBrowser:nil didRemoveDevice:device moreGoing:NO]; 280 [delegate deviceBrowser:nil didRemoveDevice:device moreGoing:NO];
276 } 281 }
277 282
278 protected: 283 protected:
279 base::MessageLoopForUI message_loop_; 284 base::MessageLoopForUI message_loop_;
280 scoped_ptr<content::TestBrowserThread> ui_thread_; 285 scoped_ptr<content::TestBrowserThread> ui_thread_;
281 chrome::test::TestStorageMonitor monitor_; 286
287 // Weak ptr to storage monitor owned by browser process.
288 chrome::test::TestStorageMonitor* monitor_;
282 TestCameraListener listener_; 289 TestCameraListener listener_;
283 }; 290 };
284 291
285 TEST_F(ImageCaptureDeviceManagerTest, TestAttachDetach) { 292 TEST_F(ImageCaptureDeviceManagerTest, TestAttachDetach) {
286 chrome::ImageCaptureDeviceManager manager; 293 chrome::ImageCaptureDeviceManager manager;
287 manager.SetNotifications(monitor_.receiver()); 294 manager.SetNotifications(monitor_->receiver());
288 ICCameraDevice* device = AttachDevice(&manager); 295 ICCameraDevice* device = AttachDevice(&manager);
289 std::vector<chrome::StorageInfo> devices = 296 std::vector<chrome::StorageInfo> devices =
290 monitor_.GetAllAvailableStorages(); 297 monitor_->GetAllAvailableStorages();
291 298
292 ASSERT_EQ(1U, devices.size()); 299 ASSERT_EQ(1U, devices.size());
293 EXPECT_EQ(std::string("ic:") + kDeviceId, devices[0].device_id()); 300 EXPECT_EQ(std::string("ic:") + kDeviceId, devices[0].device_id());
294 301
295 DetachDevice(&manager, device); 302 DetachDevice(&manager, device);
296 devices = monitor_.GetAllAvailableStorages(); 303 devices = monitor_->GetAllAvailableStorages();
297 ASSERT_EQ(0U, devices.size()); 304 ASSERT_EQ(0U, devices.size());
298 }; 305 };
299 306
300 TEST_F(ImageCaptureDeviceManagerTest, OpenCamera) { 307 TEST_F(ImageCaptureDeviceManagerTest, OpenCamera) {
301 chrome::ImageCaptureDeviceManager manager; 308 chrome::ImageCaptureDeviceManager manager;
302 manager.SetNotifications(monitor_.receiver()); 309 manager.SetNotifications(monitor_->receiver());
303 ICCameraDevice* device = AttachDevice(&manager); 310 ICCameraDevice* device = AttachDevice(&manager);
304 311
305 EXPECT_FALSE(chrome::ImageCaptureDeviceManager::deviceForUUID( 312 EXPECT_FALSE(chrome::ImageCaptureDeviceManager::deviceForUUID(
306 "nonexistent")); 313 "nonexistent"));
307 314
308 scoped_nsobject<ImageCaptureDevice> camera( 315 scoped_nsobject<ImageCaptureDevice> camera(
309 [chrome::ImageCaptureDeviceManager::deviceForUUID(kDeviceId) 316 [chrome::ImageCaptureDeviceManager::deviceForUUID(kDeviceId)
310 retain]); 317 retain]);
311 318
312 [camera setListener:listener_.AsWeakPtr()]; 319 [camera setListener:listener_.AsWeakPtr()];
(...skipping 16 matching lines...) Expand all
329 EXPECT_TRUE(listener_.completed()); 336 EXPECT_TRUE(listener_.completed());
330 337
331 [camera close]; 338 [camera close];
332 DetachDevice(&manager, device); 339 DetachDevice(&manager, device);
333 EXPECT_FALSE(chrome::ImageCaptureDeviceManager::deviceForUUID( 340 EXPECT_FALSE(chrome::ImageCaptureDeviceManager::deviceForUUID(
334 kDeviceId)); 341 kDeviceId));
335 } 342 }
336 343
337 TEST_F(ImageCaptureDeviceManagerTest, RemoveCamera) { 344 TEST_F(ImageCaptureDeviceManagerTest, RemoveCamera) {
338 chrome::ImageCaptureDeviceManager manager; 345 chrome::ImageCaptureDeviceManager manager;
339 manager.SetNotifications(monitor_.receiver()); 346 manager.SetNotifications(monitor_->receiver());
340 ICCameraDevice* device = AttachDevice(&manager); 347 ICCameraDevice* device = AttachDevice(&manager);
341 348
342 scoped_nsobject<ImageCaptureDevice> camera( 349 scoped_nsobject<ImageCaptureDevice> camera(
343 [chrome::ImageCaptureDeviceManager::deviceForUUID(kDeviceId) 350 [chrome::ImageCaptureDeviceManager::deviceForUUID(kDeviceId)
344 retain]); 351 retain]);
345 352
346 [camera setListener:listener_.AsWeakPtr()]; 353 [camera setListener:listener_.AsWeakPtr()];
347 [camera open]; 354 [camera open];
348 355
349 [camera didRemoveDevice:device]; 356 [camera didRemoveDevice:device];
350 EXPECT_TRUE(listener_.removed()); 357 EXPECT_TRUE(listener_.removed());
351 } 358 }
352 359
353 TEST_F(ImageCaptureDeviceManagerTest, DownloadFile) { 360 TEST_F(ImageCaptureDeviceManagerTest, DownloadFile) {
354 scoped_ptr<content::TestBrowserThread> file_thread( 361 scoped_ptr<content::TestBrowserThread> file_thread(
355 new content::TestBrowserThread( 362 new content::TestBrowserThread(
356 content::BrowserThread::FILE, &message_loop_)); 363 content::BrowserThread::FILE, &message_loop_));
357 364
358 chrome::ImageCaptureDeviceManager manager; 365 chrome::ImageCaptureDeviceManager manager;
359 manager.SetNotifications(monitor_.receiver()); 366 manager.SetNotifications(monitor_->receiver());
360 MockICCameraDevice* device = AttachDevice(&manager); 367 MockICCameraDevice* device = AttachDevice(&manager);
361 368
362 scoped_nsobject<ImageCaptureDevice> camera( 369 scoped_nsobject<ImageCaptureDevice> camera(
363 [chrome::ImageCaptureDeviceManager::deviceForUUID(kDeviceId) 370 [chrome::ImageCaptureDeviceManager::deviceForUUID(kDeviceId)
364 retain]); 371 retain]);
365 372
366 [camera setListener:listener_.AsWeakPtr()]; 373 [camera setListener:listener_.AsWeakPtr()];
367 [camera open]; 374 [camera open];
368 375
369 std::string kTestFileName("pic1"); 376 std::string kTestFileName("pic1");
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
407 414
408 [camera didRemoveDevice:device]; 415 [camera didRemoveDevice:device];
409 } 416 }
410 417
411 TEST_F(ImageCaptureDeviceManagerTest, TestSubdirectories) { 418 TEST_F(ImageCaptureDeviceManagerTest, TestSubdirectories) {
412 scoped_ptr<content::TestBrowserThread> file_thread( 419 scoped_ptr<content::TestBrowserThread> file_thread(
413 new content::TestBrowserThread( 420 new content::TestBrowserThread(
414 content::BrowserThread::FILE, &message_loop_)); 421 content::BrowserThread::FILE, &message_loop_));
415 422
416 chrome::ImageCaptureDeviceManager manager; 423 chrome::ImageCaptureDeviceManager manager;
417 manager.SetNotifications(monitor_.receiver()); 424 manager.SetNotifications(monitor_->receiver());
418 MockICCameraDevice* device = AttachDevice(&manager); 425 MockICCameraDevice* device = AttachDevice(&manager);
419 426
420 scoped_nsobject<ImageCaptureDevice> camera( 427 scoped_nsobject<ImageCaptureDevice> camera(
421 [chrome::ImageCaptureDeviceManager::deviceForUUID(kDeviceId) 428 [chrome::ImageCaptureDeviceManager::deviceForUUID(kDeviceId)
422 retain]); 429 retain]);
423 430
424 [camera setListener:listener_.AsWeakPtr()]; 431 [camera setListener:listener_.AsWeakPtr()];
425 [camera open]; 432 [camera open];
426 433
427 std::string kTestFileName("pic1"); 434 std::string kTestFileName("pic1");
(...skipping 12 matching lines...) Expand all
440 message_loop_.RunUntilIdle(); 447 message_loop_.RunUntilIdle();
441 448
442 char file_contents[5]; 449 char file_contents[5];
443 ASSERT_EQ(4, file_util::ReadFile(temp_file, file_contents, 450 ASSERT_EQ(4, file_util::ReadFile(temp_file, file_contents,
444 strlen(kTestFileContents))); 451 strlen(kTestFileContents)));
445 EXPECT_EQ(kTestFileContents, 452 EXPECT_EQ(kTestFileContents,
446 std::string(file_contents, strlen(kTestFileContents))); 453 std::string(file_contents, strlen(kTestFileContents)));
447 454
448 [camera didRemoveDevice:device]; 455 [camera didRemoveDevice:device];
449 } 456 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698