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

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, 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 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 monitor_ = chrome::test::TestStorageMonitor::Create();
vandebo (ex-Chrome) 2013/07/10 16:57:45 Leak?
Greg Billock 2013/07/10 21:11:16 no
260 } 263 }
261 264
262 MockICCameraDevice* AttachDevice( 265 MockICCameraDevice* AttachDevice(
263 chrome::ImageCaptureDeviceManager* manager) { 266 chrome::ImageCaptureDeviceManager* manager) {
264 // Ownership will be passed to the device browser delegate. 267 // Ownership will be passed to the device browser delegate.
265 base::scoped_nsobject<MockICCameraDevice> device( 268 base::scoped_nsobject<MockICCameraDevice> device(
266 [[MockICCameraDevice alloc] init]); 269 [[MockICCameraDevice alloc] init]);
267 id<ICDeviceBrowserDelegate> delegate = manager->device_browser(); 270 id<ICDeviceBrowserDelegate> delegate = manager->device_browser();
268 [delegate deviceBrowser:nil didAddDevice:device moreComing:NO]; 271 [delegate deviceBrowser:nil didAddDevice:device moreComing:NO];
269 return device.autorelease(); 272 return device.autorelease();
270 } 273 }
271 274
272 void DetachDevice(chrome::ImageCaptureDeviceManager* manager, 275 void DetachDevice(chrome::ImageCaptureDeviceManager* manager,
273 ICCameraDevice* device) { 276 ICCameraDevice* device) {
274 id<ICDeviceBrowserDelegate> delegate = manager->device_browser(); 277 id<ICDeviceBrowserDelegate> delegate = manager->device_browser();
275 [delegate deviceBrowser:nil didRemoveDevice:device moreGoing:NO]; 278 [delegate deviceBrowser:nil didRemoveDevice:device moreGoing:NO];
276 } 279 }
277 280
278 protected: 281 protected:
279 base::MessageLoopForUI message_loop_; 282 base::MessageLoopForUI message_loop_;
280 scoped_ptr<content::TestBrowserThread> ui_thread_; 283 scoped_ptr<content::TestBrowserThread> ui_thread_;
281 chrome::test::TestStorageMonitor monitor_; 284
285 // Weak ptr to storage monitor owned by browser process.
vandebo (ex-Chrome) 2013/07/10 16:57:45 Not Weak ptr
Greg Billock 2013/07/10 21:11:16 Done.
286 chrome::test::TestStorageMonitor* monitor_;
282 TestCameraListener listener_; 287 TestCameraListener listener_;
283 }; 288 };
284 289
285 TEST_F(ImageCaptureDeviceManagerTest, TestAttachDetach) { 290 TEST_F(ImageCaptureDeviceManagerTest, TestAttachDetach) {
286 chrome::ImageCaptureDeviceManager manager; 291 chrome::ImageCaptureDeviceManager manager;
287 manager.SetNotifications(monitor_.receiver()); 292 manager.SetNotifications(monitor_->receiver());
288 ICCameraDevice* device = AttachDevice(&manager); 293 ICCameraDevice* device = AttachDevice(&manager);
289 std::vector<chrome::StorageInfo> devices = 294 std::vector<chrome::StorageInfo> devices =
290 monitor_.GetAllAvailableStorages(); 295 monitor_->GetAllAvailableStorages();
291 296
292 ASSERT_EQ(1U, devices.size()); 297 ASSERT_EQ(1U, devices.size());
293 EXPECT_EQ(std::string("ic:") + kDeviceId, devices[0].device_id()); 298 EXPECT_EQ(std::string("ic:") + kDeviceId, devices[0].device_id());
294 299
295 DetachDevice(&manager, device); 300 DetachDevice(&manager, device);
296 devices = monitor_.GetAllAvailableStorages(); 301 devices = monitor_->GetAllAvailableStorages();
297 ASSERT_EQ(0U, devices.size()); 302 ASSERT_EQ(0U, devices.size());
298 }; 303 };
299 304
300 TEST_F(ImageCaptureDeviceManagerTest, OpenCamera) { 305 TEST_F(ImageCaptureDeviceManagerTest, OpenCamera) {
301 chrome::ImageCaptureDeviceManager manager; 306 chrome::ImageCaptureDeviceManager manager;
302 manager.SetNotifications(monitor_.receiver()); 307 manager.SetNotifications(monitor_->receiver());
303 ICCameraDevice* device = AttachDevice(&manager); 308 ICCameraDevice* device = AttachDevice(&manager);
304 309
305 EXPECT_FALSE(chrome::ImageCaptureDeviceManager::deviceForUUID( 310 EXPECT_FALSE(chrome::ImageCaptureDeviceManager::deviceForUUID(
306 "nonexistent")); 311 "nonexistent"));
307 312
308 base::scoped_nsobject<ImageCaptureDevice> camera( 313 base::scoped_nsobject<ImageCaptureDevice> camera(
309 [chrome::ImageCaptureDeviceManager::deviceForUUID(kDeviceId) retain]); 314 [chrome::ImageCaptureDeviceManager::deviceForUUID(kDeviceId) retain]);
310 315
311 [camera setListener:listener_.AsWeakPtr()]; 316 [camera setListener:listener_.AsWeakPtr()];
312 [camera open]; 317 [camera open];
(...skipping 15 matching lines...) Expand all
328 EXPECT_TRUE(listener_.completed()); 333 EXPECT_TRUE(listener_.completed());
329 334
330 [camera close]; 335 [camera close];
331 DetachDevice(&manager, device); 336 DetachDevice(&manager, device);
332 EXPECT_FALSE(chrome::ImageCaptureDeviceManager::deviceForUUID( 337 EXPECT_FALSE(chrome::ImageCaptureDeviceManager::deviceForUUID(
333 kDeviceId)); 338 kDeviceId));
334 } 339 }
335 340
336 TEST_F(ImageCaptureDeviceManagerTest, RemoveCamera) { 341 TEST_F(ImageCaptureDeviceManagerTest, RemoveCamera) {
337 chrome::ImageCaptureDeviceManager manager; 342 chrome::ImageCaptureDeviceManager manager;
338 manager.SetNotifications(monitor_.receiver()); 343 manager.SetNotifications(monitor_->receiver());
339 ICCameraDevice* device = AttachDevice(&manager); 344 ICCameraDevice* device = AttachDevice(&manager);
340 345
341 base::scoped_nsobject<ImageCaptureDevice> camera( 346 base::scoped_nsobject<ImageCaptureDevice> camera(
342 [chrome::ImageCaptureDeviceManager::deviceForUUID(kDeviceId) retain]); 347 [chrome::ImageCaptureDeviceManager::deviceForUUID(kDeviceId) retain]);
343 348
344 [camera setListener:listener_.AsWeakPtr()]; 349 [camera setListener:listener_.AsWeakPtr()];
345 [camera open]; 350 [camera open];
346 351
347 [camera didRemoveDevice:device]; 352 [camera didRemoveDevice:device];
348 EXPECT_TRUE(listener_.removed()); 353 EXPECT_TRUE(listener_.removed());
349 } 354 }
350 355
351 TEST_F(ImageCaptureDeviceManagerTest, DownloadFile) { 356 TEST_F(ImageCaptureDeviceManagerTest, DownloadFile) {
352 scoped_ptr<content::TestBrowserThread> file_thread( 357 scoped_ptr<content::TestBrowserThread> file_thread(
353 new content::TestBrowserThread( 358 new content::TestBrowserThread(
354 content::BrowserThread::FILE, &message_loop_)); 359 content::BrowserThread::FILE, &message_loop_));
355 360
356 chrome::ImageCaptureDeviceManager manager; 361 chrome::ImageCaptureDeviceManager manager;
357 manager.SetNotifications(monitor_.receiver()); 362 manager.SetNotifications(monitor_->receiver());
358 MockICCameraDevice* device = AttachDevice(&manager); 363 MockICCameraDevice* device = AttachDevice(&manager);
359 364
360 base::scoped_nsobject<ImageCaptureDevice> camera( 365 base::scoped_nsobject<ImageCaptureDevice> camera(
361 [chrome::ImageCaptureDeviceManager::deviceForUUID(kDeviceId) retain]); 366 [chrome::ImageCaptureDeviceManager::deviceForUUID(kDeviceId) retain]);
362 367
363 [camera setListener:listener_.AsWeakPtr()]; 368 [camera setListener:listener_.AsWeakPtr()];
364 [camera open]; 369 [camera open];
365 370
366 std::string kTestFileName("pic1"); 371 std::string kTestFileName("pic1");
367 372
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
403 408
404 [camera didRemoveDevice:device]; 409 [camera didRemoveDevice:device];
405 } 410 }
406 411
407 TEST_F(ImageCaptureDeviceManagerTest, TestSubdirectories) { 412 TEST_F(ImageCaptureDeviceManagerTest, TestSubdirectories) {
408 scoped_ptr<content::TestBrowserThread> file_thread( 413 scoped_ptr<content::TestBrowserThread> file_thread(
409 new content::TestBrowserThread( 414 new content::TestBrowserThread(
410 content::BrowserThread::FILE, &message_loop_)); 415 content::BrowserThread::FILE, &message_loop_));
411 416
412 chrome::ImageCaptureDeviceManager manager; 417 chrome::ImageCaptureDeviceManager manager;
413 manager.SetNotifications(monitor_.receiver()); 418 manager.SetNotifications(monitor_->receiver());
414 MockICCameraDevice* device = AttachDevice(&manager); 419 MockICCameraDevice* device = AttachDevice(&manager);
415 420
416 base::scoped_nsobject<ImageCaptureDevice> camera( 421 base::scoped_nsobject<ImageCaptureDevice> camera(
417 [chrome::ImageCaptureDeviceManager::deviceForUUID(kDeviceId) retain]); 422 [chrome::ImageCaptureDeviceManager::deviceForUUID(kDeviceId) retain]);
418 423
419 [camera setListener:listener_.AsWeakPtr()]; 424 [camera setListener:listener_.AsWeakPtr()];
420 [camera open]; 425 [camera open];
421 426
422 std::string kTestFileName("pic1"); 427 std::string kTestFileName("pic1");
423 base::scoped_nsobject<MockICCameraFile> picture1( 428 base::scoped_nsobject<MockICCameraFile> picture1(
(...skipping 10 matching lines...) Expand all
434 message_loop_.RunUntilIdle(); 439 message_loop_.RunUntilIdle();
435 440
436 char file_contents[5]; 441 char file_contents[5];
437 ASSERT_EQ(4, file_util::ReadFile(temp_file, file_contents, 442 ASSERT_EQ(4, file_util::ReadFile(temp_file, file_contents,
438 strlen(kTestFileContents))); 443 strlen(kTestFileContents)));
439 EXPECT_EQ(kTestFileContents, 444 EXPECT_EQ(kTestFileContents,
440 std::string(file_contents, strlen(kTestFileContents))); 445 std::string(file_contents, strlen(kTestFileContents)));
441 446
442 [camera didRemoveDevice:device]; 447 [camera didRemoveDevice:device];
443 } 448 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698