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

Unified Diff: ios/chrome/browser/ui/activity_services/activity_service_controller_unittest.mm

Issue 2689533002: [ObjC ARC] Converts ios/chrome/browser/ui/activity_services:unit_tests to ARC. (Closed)
Patch Set: nit Created 3 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 side-by-side diff with in-line comments
Download patch
Index: ios/chrome/browser/ui/activity_services/activity_service_controller_unittest.mm
diff --git a/ios/chrome/browser/ui/activity_services/activity_service_controller_unittest.mm b/ios/chrome/browser/ui/activity_services/activity_service_controller_unittest.mm
index 187bd7dac613c58c1f901573b5932d50e0e825e9..676bb0e6940452bd8f4f1fe171255717dab2d314 100644
--- a/ios/chrome/browser/ui/activity_services/activity_service_controller_unittest.mm
+++ b/ios/chrome/browser/ui/activity_services/activity_service_controller_unittest.mm
@@ -6,7 +6,6 @@
#import <MobileCoreServices/MobileCoreServices.h>
-#include "base/mac/scoped_nsobject.h"
#import "base/test/ios/wait_util.h"
#include "components/reading_list/core/reading_list_switches.h"
#import "ios/chrome/browser/ui/activity_services/activity_type_util.h"
@@ -20,6 +19,10 @@
#import "third_party/ocmock/OCMock/OCMock.h"
#import "third_party/ocmock/gtest_support.h"
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
@interface ActivityServiceController (CrVisibleForTesting)
- (NSArray*)activityItemsForData:(ShareToData*)data;
- (NSArray*)applicationActivitiesForData:(ShareToData*)data
@@ -37,18 +40,18 @@ class ActivityServiceControllerTest : public PlatformTest {
protected:
void SetUp() override {
PlatformTest::SetUp();
- parentController_.reset(
- [[UIViewController alloc] initWithNibName:nil bundle:nil]);
+ parentController_ =
+ [[UIViewController alloc] initWithNibName:nil bundle:nil];
[[UIApplication sharedApplication] keyWindow].rootViewController =
parentController_;
- shareToDelegate_.reset(
- [[OCMockObject mockForProtocol:@protocol(ShareToDelegate)] retain]);
- shareData_.reset([[ShareToData alloc]
- initWithURL:GURL("https://chromium.org")
- title:@""
- isOriginalTitle:YES
- isPagePrintable:YES
- thumbnailGenerator:DummyThumbnailGeneratorBlock()]);
+ shareToDelegate_ =
+ [OCMockObject mockForProtocol:@protocol(ShareToDelegate)];
+ shareData_ =
+ [[ShareToData alloc] initWithURL:GURL("https://chromium.org")
+ title:@""
+ isOriginalTitle:YES
+ isPagePrintable:YES
+ thumbnailGenerator:DummyThumbnailGeneratorBlock()];
}
void TearDown() override {
@@ -61,7 +64,7 @@ class ActivityServiceControllerTest : public PlatformTest {
}
id<ShareToDelegate> GetShareToDelegate() {
- return static_cast<id<ShareToDelegate>>(shareToDelegate_.get());
+ return static_cast<id<ShareToDelegate>>(shareToDelegate_);
}
CGRect AnchorRect() {
@@ -72,7 +75,7 @@ class ActivityServiceControllerTest : public PlatformTest {
UIView* AnchorView() {
// On iPad, UIPopovers must be anchored to non nil views.
- return [parentController_.get() view];
+ return [parentController_ view];
}
BOOL ArrayContainsImageSource(NSArray* array) {
@@ -142,8 +145,8 @@ class ActivityServiceControllerTest : public PlatformTest {
// |extensionItem| and expects failure.
void ProcessItemsReturnedFromActivityFailure(NSArray* extensionItems,
BOOL expectedResetUI) {
- base::scoped_nsobject<ActivityServiceController> activityController(
- [[ActivityServiceController alloc] init]);
+ ActivityServiceController* activityController =
+ [[ActivityServiceController alloc] init];
// Sets up a Mock ShareToDelegate object to check that the ShareToDelegate
// callback function is not called.
@@ -199,9 +202,9 @@ class ActivityServiceControllerTest : public PlatformTest {
}
web::TestWebThreadBundle thread_bundle_;
- base::scoped_nsobject<UIViewController> parentController_;
- base::scoped_nsobject<OCMockObject> shareToDelegate_;
- base::scoped_nsobject<ShareToData> shareData_;
+ UIViewController* parentController_;
+ OCMockObject* shareToDelegate_;
+ ShareToData* shareData_;
};
TEST_F(ActivityServiceControllerTest, PresentAndDismissController) {
@@ -209,9 +212,9 @@ TEST_F(ActivityServiceControllerTest, PresentAndDismissController) {
successMessage:[OCMArg isNil]];
UIViewController* parentController =
- static_cast<UIViewController*>(parentController_.get());
- base::scoped_nsobject<ActivityServiceController> activityController(
- [[ActivityServiceController alloc] init]);
+ static_cast<UIViewController*>(parentController_);
+ ActivityServiceController* activityController =
+ [[ActivityServiceController alloc] init];
EXPECT_FALSE([activityController isActive]);
// Test sharing.
@@ -234,17 +237,17 @@ TEST_F(ActivityServiceControllerTest, PresentAndDismissController) {
// Verifies that an UIActivityImageSource is sent to the
// UIActivityViewController if and only if the ShareToData contains an image.
TEST_F(ActivityServiceControllerTest, ActivityItemsForData) {
- base::scoped_nsobject<ActivityServiceController> activityController(
- [[ActivityServiceController alloc] init]);
+ ActivityServiceController* activityController =
+ [[ActivityServiceController alloc] init];
// ShareToData does not contain an image, so the result items array will not
// contain an image source.
- base::scoped_nsobject<ShareToData> data([[ShareToData alloc]
- initWithURL:GURL("https://chromium.org")
- title:@"foo"
- isOriginalTitle:YES
- isPagePrintable:YES
- thumbnailGenerator:DummyThumbnailGeneratorBlock()]);
+ ShareToData* data =
+ [[ShareToData alloc] initWithURL:GURL("https://chromium.org")
+ title:@"foo"
+ isOriginalTitle:YES
+ isPagePrintable:YES
+ thumbnailGenerator:DummyThumbnailGeneratorBlock()];
NSArray* items = [activityController activityItemsForData:data];
EXPECT_FALSE(ArrayContainsImageSource(items));
@@ -258,14 +261,14 @@ TEST_F(ActivityServiceControllerTest, ActivityItemsForData) {
// Verifies that when App Extension support is enabled, the URL string is
// passed in a dictionary as part of the Activity Items to the App Extension.
TEST_F(ActivityServiceControllerTest, ActivityItemsForDataWithPasswordAppEx) {
- base::scoped_nsobject<ActivityServiceController> activityController(
- [[ActivityServiceController alloc] init]);
- base::scoped_nsobject<ShareToData> data([[ShareToData alloc]
- initWithURL:GURL("https://chromium.org/login.html")
- title:@"kung fu fighting"
- isOriginalTitle:YES
- isPagePrintable:YES
- thumbnailGenerator:DummyThumbnailGeneratorBlock()]);
+ ActivityServiceController* activityController =
+ [[ActivityServiceController alloc] init];
+ ShareToData* data =
+ [[ShareToData alloc] initWithURL:GURL("https://chromium.org/login.html")
+ title:@"kung fu fighting"
+ isOriginalTitle:YES
+ isPagePrintable:YES
+ thumbnailGenerator:DummyThumbnailGeneratorBlock()];
NSArray* items = [activityController activityItemsForData:data];
NSString* findLoginAction =
(NSString*)activity_services::kUTTypeAppExtensionFindLoginAction;
@@ -279,19 +282,19 @@ TEST_F(ActivityServiceControllerTest, ActivityItemsForDataWithPasswordAppEx) {
NSItemProvider* itemProvider = item.attachments[0];
// Extracts the dictionary back from the ItemProvider and then check that
// it has the expected version and the page's URL.
- __block base::scoped_nsobject<NSDictionary> result;
+ __block NSDictionary* result;
[itemProvider
loadItemForTypeIdentifier:findLoginAction
options:nil
completionHandler:^(id item, NSError* error) {
if (error || ![item isKindOfClass:[NSDictionary class]]) {
- result.reset([[NSDictionary dictionary] retain]);
+ result = @{};
} else {
- result.reset([item retain]);
+ result = item;
}
}];
base::test::ios::WaitUntilCondition(^{
- return result.get() != nil;
+ return result != nil;
});
EXPECT_EQ(2U, [result count]);
// Checks version.
@@ -320,14 +323,14 @@ TEST_F(ActivityServiceControllerTest, ActivityItemsForDataWithPasswordAppEx) {
// is enabled.
TEST_F(ActivityServiceControllerTest,
ActivityItemsForDataWithPasswordAppExReturnsURL) {
- base::scoped_nsobject<ActivityServiceController> activityController(
- [[ActivityServiceController alloc] init]);
- base::scoped_nsobject<ShareToData> data([[ShareToData alloc]
- initWithURL:GURL("https://chromium.org/login.html")
- title:@"kung fu fighting"
- isOriginalTitle:YES
- isPagePrintable:YES
- thumbnailGenerator:DummyThumbnailGeneratorBlock()]);
+ ActivityServiceController* activityController =
+ [[ActivityServiceController alloc] init];
+ ShareToData* data =
+ [[ShareToData alloc] initWithURL:GURL("https://chromium.org/login.html")
+ title:@"kung fu fighting"
+ isOriginalTitle:YES
+ isPagePrintable:YES
+ thumbnailGenerator:DummyThumbnailGeneratorBlock()];
NSArray* items = [activityController activityItemsForData:data];
NSString* shareAction = @"com.apple.UIKit.activity.PostToFacebook";
NSArray* urlItems =
@@ -345,8 +348,8 @@ TEST_F(ActivityServiceControllerTest,
// Verifies that -processItemsReturnedFromActivity:status:item: contains
// the username and password.
TEST_F(ActivityServiceControllerTest, ProcessItemsReturnedSuccessfully) {
- base::scoped_nsobject<ActivityServiceController> activityController(
- [[ActivityServiceController alloc] init]);
+ ActivityServiceController* activityController =
+ [[ActivityServiceController alloc] init];
// Sets up a Mock ShareToDelegate object to check that the callback function
// -passwordAppExDidFinish:username:password:successMessage:
@@ -357,8 +360,8 @@ TEST_F(ActivityServiceControllerTest, ProcessItemsReturnedSuccessfully) {
NSString* const kSecretPassword = @"super!secret";
__block bool blockCalled = false;
void (^validationBlock)(NSInvocation*) = ^(NSInvocation* invocation) {
- NSString* username;
- NSString* password;
+ __unsafe_unretained NSString* username;
+ __unsafe_unretained NSString* password;
// Skips 0 and 1 index because they are |self| and |cmd|.
[invocation getArgument:&username atIndex:3];
[invocation getArgument:&password atIndex:4];
@@ -379,12 +382,11 @@ TEST_F(ActivityServiceControllerTest, ProcessItemsReturnedSuccessfully) {
NSDictionary* dictionaryFromAppEx =
@{ @"username" : kSecretUsername,
@"password" : kSecretPassword };
- base::scoped_nsobject<NSItemProvider> itemProvider([[NSItemProvider alloc]
- initWithItem:dictionaryFromAppEx
- typeIdentifier:(NSString*)kUTTypePropertyList]);
- base::scoped_nsobject<NSExtensionItem> extensionItem(
- [[NSExtensionItem alloc] init]);
- [extensionItem setAttachments:@[ itemProvider.get() ]];
+ NSItemProvider* itemProvider =
+ [[NSItemProvider alloc] initWithItem:dictionaryFromAppEx
+ typeIdentifier:(NSString*)kUTTypePropertyList];
+ NSExtensionItem* extensionItem = [[NSExtensionItem alloc] init];
+ [extensionItem setAttachments:@[ itemProvider ]];
BOOL resetUI =
[activityController processItemsReturnedFromActivity:activityType
@@ -405,40 +407,39 @@ TEST_F(ActivityServiceControllerTest, ProcessItemsReturnedFailures) {
ProcessItemsReturnedFromActivityFailure(@[], YES);
// Extension Item is empty.
- base::scoped_nsobject<NSExtensionItem> extensionItem(
- [[NSExtensionItem alloc] init]);
+ NSExtensionItem* extensionItem = [[NSExtensionItem alloc] init];
[extensionItem setAttachments:@[]];
ProcessItemsReturnedFromActivityFailure(@[ extensionItem ], YES);
// Extension Item does not have a property list provider as the first
// attachment.
- base::scoped_nsobject<NSItemProvider> itemProvider([[NSItemProvider alloc]
- initWithItem:@"some arbitrary garbage"
- typeIdentifier:(NSString*)kUTTypeText]);
- [extensionItem setAttachments:@[ itemProvider.get() ]];
+ NSItemProvider* itemProvider =
+ [[NSItemProvider alloc] initWithItem:@"some arbitrary garbage"
+ typeIdentifier:(NSString*)kUTTypeText];
+ [extensionItem setAttachments:@[ itemProvider ]];
ProcessItemsReturnedFromActivityFailure(@[ extensionItem ], YES);
// Property list provider did not return a dictionary object.
- itemProvider.reset([[NSItemProvider alloc]
- initWithItem:@[ @"foo", @"bar" ]
- typeIdentifier:(NSString*)kUTTypePropertyList]);
- [extensionItem setAttachments:@[ itemProvider.get() ]];
+ itemProvider =
+ [[NSItemProvider alloc] initWithItem:@[ @"foo", @"bar" ]
+ typeIdentifier:(NSString*)kUTTypePropertyList];
+ [extensionItem setAttachments:@[ itemProvider ]];
ProcessItemsReturnedFromActivityFailure(@[ extensionItem ], NO);
}
// Verifies that the PrintActivity is sent to the UIActivityViewController if
// and only if the activity is "printable".
TEST_F(ActivityServiceControllerTest, ApplicationActivitiesForData) {
- base::scoped_nsobject<ActivityServiceController> activityController(
- [[ActivityServiceController alloc] init]);
+ ActivityServiceController* activityController =
+ [[ActivityServiceController alloc] init];
// Verify printable data.
- base::scoped_nsobject<ShareToData> data([[ShareToData alloc]
- initWithURL:GURL("https://chromium.org/printable")
- title:@"bar"
- isOriginalTitle:YES
- isPagePrintable:YES
- thumbnailGenerator:DummyThumbnailGeneratorBlock()]);
+ ShareToData* data =
+ [[ShareToData alloc] initWithURL:GURL("https://chromium.org/printable")
+ title:@"bar"
+ isOriginalTitle:YES
+ isPagePrintable:YES
+ thumbnailGenerator:DummyThumbnailGeneratorBlock()];
NSArray* items =
[activityController applicationActivitiesForData:data controller:nil];
@@ -448,12 +449,12 @@ TEST_F(ActivityServiceControllerTest, ApplicationActivitiesForData) {
EXPECT_EQ([PrintActivity class], [[items objectAtIndex:0] class]);
// Verify non-printable data.
- data.reset([[ShareToData alloc]
- initWithURL:GURL("https://chromium.org/unprintable")
- title:@"baz"
- isOriginalTitle:YES
- isPagePrintable:NO
- thumbnailGenerator:DummyThumbnailGeneratorBlock()]);
+ data =
+ [[ShareToData alloc] initWithURL:GURL("https://chromium.org/unprintable")
+ title:@"baz"
+ isOriginalTitle:YES
+ isPagePrintable:NO
+ thumbnailGenerator:DummyThumbnailGeneratorBlock()];
items = [activityController applicationActivitiesForData:data controller:nil];
EXPECT_EQ(expected_items_count - 1, [items count]);
}

Powered by Google App Engine
This is Rietveld 408576698