diff options
author | thakis <thakis@chromium.org> | 2015-10-12 11:50:52 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-10-12 18:51:48 +0000 |
commit | a87fa33951887b83b197cf6f25cc7da5d8cb9c7a (patch) | |
tree | 3adc3199080325f49695a6a23e554ccd19cac5c8 /components/storage_monitor | |
parent | 9b4a9b9cbdbda996aaf9bf8c95fca674e1ccdbb8 (diff) | |
download | chromium_src-a87fa33951887b83b197cf6f25cc7da5d8cb9c7a.zip chromium_src-a87fa33951887b83b197cf6f25cc7da5d8cb9c7a.tar.gz chromium_src-a87fa33951887b83b197cf6f25cc7da5d8cb9c7a.tar.bz2 |
mac: Make component_unittests build with the 10.11 SDK.
* Pass non-nil arguments in a few places. These are all delegate
methods implemented by chrome code that doesn't look at the
parameters, so just pass a nearby object of the same type. (Most
of the time this looks like the right object to pass, too!)
* For the deviceBrowser: parameter, no good object was available,
so add a method to ImageCaptureDeviceManager to hand out
a good object to pass.
* Rename device_browser() to device_browser_delegate() to be
less confusing wrt the new object.
* Finally, mark initWithDictionary: as NS_DESIGNATED_INITIALIZER
so the compiler doesn't complain about
[MockICCameraDevice init] not calling a designated initializer.
Since this is an internal API, we're playing with fire anyways.
(This requires moving the declaration from a category to a class
extension.)
No intended behavior change.
BUG=517914
Review URL: https://codereview.chromium.org/1396773006
Cr-Commit-Position: refs/heads/master@{#353567}
Diffstat (limited to 'components/storage_monitor')
3 files changed, 34 insertions, 13 deletions
diff --git a/components/storage_monitor/image_capture_device_manager.h b/components/storage_monitor/image_capture_device_manager.h index 2a4578f..056d56f 100644 --- a/components/storage_monitor/image_capture_device_manager.h +++ b/components/storage_monitor/image_capture_device_manager.h @@ -12,6 +12,7 @@ #include "components/storage_monitor/storage_monitor.h" @protocol ICDeviceBrowserDelegate; +@class ICDeviceBrowser; @class ImageCaptureDevice; @class ImageCaptureDeviceManagerImpl; @@ -32,7 +33,7 @@ class ImageCaptureDeviceManager { static ImageCaptureDevice* deviceForUUID(const std::string& uuid); // Returns a weak pointer to the internal ImageCapture interface protocol. - id<ICDeviceBrowserDelegate> device_browser(); + id<ICDeviceBrowserDelegate> device_browser_delegate(); // Sets the receiver for device attach/detach notifications. // TODO(gbillock): Move this to be a constructor argument. @@ -43,8 +44,13 @@ class ImageCaptureDeviceManager { void EjectDevice(const std::string& uuid, base::Callback<void(StorageMonitor::EjectStatus)> callback); + private: base::scoped_nsobject<ImageCaptureDeviceManagerImpl> device_browser_; + + // Returns a weak pointer to the internal device browser. + ICDeviceBrowser* device_browser_for_test(); + friend class ImageCaptureDeviceManagerTest; }; } // namespace storage_monitor diff --git a/components/storage_monitor/image_capture_device_manager.mm b/components/storage_monitor/image_capture_device_manager.mm index 7ad7dbc..e9660de 100644 --- a/components/storage_monitor/image_capture_device_manager.mm +++ b/components/storage_monitor/image_capture_device_manager.mm @@ -42,6 +42,8 @@ storage_monitor::ImageCaptureDeviceManager* g_image_capture_device_manager = // They're gotten by cracking the device ID and taking the unique ID output. - (ImageCaptureDevice*)deviceForUUID:(const std::string&)uuid; +- (ICDeviceBrowser*)deviceBrowserForTest; + @end @implementation ImageCaptureDeviceManagerImpl @@ -128,6 +130,10 @@ storage_monitor::ImageCaptureDeviceManager* g_image_capture_device_manager = storage_monitor::StorageInfo::MAC_IMAGE_CAPTURE, uuid)); } +- (ICDeviceBrowser*)deviceBrowserForTest { + return deviceBrowser_.get(); +} + @end // ImageCaptureDeviceManagerImpl namespace storage_monitor { @@ -165,8 +171,13 @@ ImageCaptureDevice* ImageCaptureDeviceManager::deviceForUUID( return [manager deviceForUUID:uuid]; } -id<ICDeviceBrowserDelegate> ImageCaptureDeviceManager::device_browser() { +id<ICDeviceBrowserDelegate> +ImageCaptureDeviceManager::device_browser_delegate() { return device_browser_.get(); } +ICDeviceBrowser* ImageCaptureDeviceManager::device_browser_for_test() { + return [device_browser_ deviceBrowserForTest]; +} + } // namespace storage_monitor diff --git a/components/storage_monitor/image_capture_device_manager_unittest.mm b/components/storage_monitor/image_capture_device_manager_unittest.mm index 7a0c588..22a07de 100644 --- a/components/storage_monitor/image_capture_device_manager_unittest.mm +++ b/components/storage_monitor/image_capture_device_manager_unittest.mm @@ -27,8 +27,8 @@ const char kTestFileContents[] = "test"; } // namespace // Private ICCameraDevice method needed to properly initialize the object. -@interface NSObject (PrivateAPIICCameraDevice) -- (id)initWithDictionary:(id)properties; +@interface NSObject () +- (instancetype)initWithDictionary:(id)properties NS_DESIGNATED_INITIALIZER; @end @interface MockICCameraDevice : ICCameraDevice { @@ -248,15 +248,19 @@ class ImageCaptureDeviceManagerTest : public testing::Test { // Ownership will be passed to the device browser delegate. base::scoped_nsobject<MockICCameraDevice> device( [[MockICCameraDevice alloc] init]); - id<ICDeviceBrowserDelegate> delegate = manager->device_browser(); - [delegate deviceBrowser:nil didAddDevice:device moreComing:NO]; + id<ICDeviceBrowserDelegate> delegate = manager->device_browser_delegate(); + [delegate deviceBrowser:manager->device_browser_for_test() + didAddDevice:device + moreComing:NO]; return device.autorelease(); } void DetachDevice(ImageCaptureDeviceManager* manager, ICCameraDevice* device) { - id<ICDeviceBrowserDelegate> delegate = manager->device_browser(); - [delegate deviceBrowser:nil didRemoveDevice:device moreGoing:NO]; + id<ICDeviceBrowserDelegate> delegate = manager->device_browser_delegate(); + [delegate deviceBrowser:manager->device_browser_for_test() + didRemoveDevice:device + moreGoing:NO]; } protected: @@ -295,16 +299,16 @@ TEST_F(ImageCaptureDeviceManagerTest, OpenCamera) { base::scoped_nsobject<MockICCameraFile> picture1( [[MockICCameraFile alloc] init:@"pic1"]); - [camera cameraDevice:nil didAddItem:picture1]; + [camera cameraDevice:device didAddItem:picture1]; base::scoped_nsobject<MockICCameraFile> picture2( [[MockICCameraFile alloc] init:@"pic2"]); - [camera cameraDevice:nil didAddItem:picture2]; + [camera cameraDevice:device didAddItem:picture2]; ASSERT_EQ(2U, listener_.items().size()); EXPECT_EQ("pic1", listener_.items()[0]); EXPECT_EQ("pic2", listener_.items()[1]); EXPECT_FALSE(listener_.completed()); - [camera deviceDidBecomeReadyWithCompleteContentCatalog:nil]; + [camera deviceDidBecomeReadyWithCompleteContentCatalog:device]; ASSERT_EQ(2U, listener_.items().size()); EXPECT_TRUE(listener_.completed()); @@ -345,7 +349,7 @@ TEST_F(ImageCaptureDeviceManagerTest, DownloadFile) { base::scoped_nsobject<MockICCameraFile> picture1( [[MockICCameraFile alloc] init:base::SysUTF8ToNSString(kTestFileName)]); [device addMediaFile:picture1]; - [camera cameraDevice:nil didAddItem:picture1]; + [camera cameraDevice:device didAddItem:picture1]; base::ScopedTempDir temp_dir; ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); @@ -397,7 +401,7 @@ TEST_F(ImageCaptureDeviceManagerTest, TestSubdirectories) { [[MockICCameraFile alloc] init:base::SysUTF8ToNSString(kTestFileName)]); [picture1 setParent:base::SysUTF8ToNSString("dir")]; [device addMediaFile:picture1]; - [camera cameraDevice:nil didAddItem:picture1]; + [camera cameraDevice:device didAddItem:picture1]; base::ScopedTempDir temp_dir; ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |