Commit 837af2f6 authored by Sebastien Lalancette's avatar Sebastien Lalancette Committed by Commit Bot

[Sharing] Hooked Up QR Code Generation Activity in Controller.

Added code to add the generate QR code activity to the activity service
controller behind its feature flag. Also added a simple unit test.

Bug: 1064990
Change-Id: Ib386f3bb8fa85d27094197b2febbc1a4c1d66a5a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2127891
Commit-Queue: Sebastien Lalancette <seblalancette@chromium.org>
Reviewed-by: default avatarGauthier Ambard <gambard@chromium.org>
Cr-Commit-Position: refs/heads/master@{#754935}
parent b1a0b0c7
...@@ -38,6 +38,7 @@ source_set("activity_services") { ...@@ -38,6 +38,7 @@ source_set("activity_services") {
"//ios/chrome/browser/snapshots", "//ios/chrome/browser/snapshots",
"//ios/chrome/browser/sync", "//ios/chrome/browser/sync",
"//ios/chrome/browser/tabs", "//ios/chrome/browser/tabs",
"//ios/chrome/browser/ui:feature_flags",
"//ios/chrome/browser/ui/activity_services/activities", "//ios/chrome/browser/ui/activity_services/activities",
"//ios/chrome/browser/ui/activity_services/requirements", "//ios/chrome/browser/ui/activity_services/requirements",
"//ios/chrome/browser/ui/commands", "//ios/chrome/browser/ui/commands",
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
#import <MobileCoreServices/MobileCoreServices.h> #import <MobileCoreServices/MobileCoreServices.h>
#include "base/feature_list.h"
#include "base/logging.h" #include "base/logging.h"
#include "base/mac/foundation_util.h" #include "base/mac/foundation_util.h"
#include "base/metrics/user_metrics.h" #include "base/metrics/user_metrics.h"
...@@ -23,6 +24,7 @@ ...@@ -23,6 +24,7 @@
#import "ios/chrome/browser/ui/activity_services/activities/bookmark_activity.h" #import "ios/chrome/browser/ui/activity_services/activities/bookmark_activity.h"
#import "ios/chrome/browser/ui/activity_services/activities/copy_activity.h" #import "ios/chrome/browser/ui/activity_services/activities/copy_activity.h"
#import "ios/chrome/browser/ui/activity_services/activities/find_in_page_activity.h" #import "ios/chrome/browser/ui/activity_services/activities/find_in_page_activity.h"
#import "ios/chrome/browser/ui/activity_services/activities/generate_qr_code_activity.h"
#import "ios/chrome/browser/ui/activity_services/activities/print_activity.h" #import "ios/chrome/browser/ui/activity_services/activities/print_activity.h"
#import "ios/chrome/browser/ui/activity_services/activities/reading_list_activity.h" #import "ios/chrome/browser/ui/activity_services/activities/reading_list_activity.h"
#import "ios/chrome/browser/ui/activity_services/activities/request_desktop_or_mobile_site_activity.h" #import "ios/chrome/browser/ui/activity_services/activities/request_desktop_or_mobile_site_activity.h"
...@@ -35,7 +37,9 @@ ...@@ -35,7 +37,9 @@
#import "ios/chrome/browser/ui/activity_services/requirements/activity_service_presentation.h" #import "ios/chrome/browser/ui/activity_services/requirements/activity_service_presentation.h"
#import "ios/chrome/browser/ui/activity_services/share_protocol.h" #import "ios/chrome/browser/ui/activity_services/share_protocol.h"
#import "ios/chrome/browser/ui/activity_services/share_to_data.h" #import "ios/chrome/browser/ui/activity_services/share_to_data.h"
#import "ios/chrome/browser/ui/commands/qr_generation_commands.h"
#import "ios/chrome/browser/ui/commands/snackbar_commands.h" #import "ios/chrome/browser/ui/commands/snackbar_commands.h"
#include "ios/chrome/browser/ui/ui_feature_flags.h"
#include "ios/chrome/browser/ui/util/ui_util.h" #include "ios/chrome/browser/ui/util/ui_util.h"
#import "ios/chrome/browser/ui/util/uikit_ui_util.h" #import "ios/chrome/browser/ui/util/uikit_ui_util.h"
#include "ios/chrome/grit/ios_strings.h" #include "ios/chrome/grit/ios_strings.h"
...@@ -74,8 +78,9 @@ NSString* const kActivityServicesSnackbarCategory = ...@@ -74,8 +78,9 @@ NSString* const kActivityServicesSnackbarCategory =
// Returns an array of UIActivity objects that can handle the given |data|. // Returns an array of UIActivity objects that can handle the given |data|.
- (NSArray*) - (NSArray*)
applicationActivitiesForData:(ShareToData*)data applicationActivitiesForData:(ShareToData*)data
browserCommandHandler:(id<BrowserCommands>)browserCommandHandler commandHandler:(id<BrowserCommands,
findInPageHandler:(id<FindInPageCommands>)findInPageHandler FindInPageCommands,
QRGenerationCommands>)commandHandler
bookmarkModel:(bookmarks::BookmarkModel*)bookmarkModel bookmarkModel:(bookmarks::BookmarkModel*)bookmarkModel
canSendTabToSelf:(BOOL)canSendTabToSelf; canSendTabToSelf:(BOOL)canSendTabToSelf;
// Processes |extensionItems| returned from App Extension invocation returning // Processes |extensionItems| returned from App Extension invocation returning
...@@ -127,9 +132,10 @@ NSString* const kActivityServicesSnackbarCategory = ...@@ -127,9 +132,10 @@ NSString* const kActivityServicesSnackbarCategory =
- (void)shareWithData:(ShareToData*)data - (void)shareWithData:(ShareToData*)data
browserState:(ChromeBrowserState*)browserState browserState:(ChromeBrowserState*)browserState
dispatcher: dispatcher:(id<BrowserCommands,
(id<BrowserCommands, FindInPageCommands, SnackbarCommands>) FindInPageCommands,
dispatcher QRGenerationCommands,
SnackbarCommands>)dispatcher
passwordProvider:(id<ActivityServicePassword>)passwordProvider passwordProvider:(id<ActivityServicePassword>)passwordProvider
positionProvider:(id<ActivityServicePositioner>)positionProvider positionProvider:(id<ActivityServicePositioner>)positionProvider
presentationProvider:(id<ActivityServicePresentation>)presentationProvider { presentationProvider:(id<ActivityServicePresentation>)presentationProvider {
...@@ -165,8 +171,7 @@ NSString* const kActivityServicesSnackbarCategory = ...@@ -165,8 +171,7 @@ NSString* const kActivityServicesSnackbarCategory =
initWithActivityItems:[self activityItemsForData:data] initWithActivityItems:[self activityItemsForData:data]
applicationActivities:[self applicationActivities:[self
applicationActivitiesForData:data applicationActivitiesForData:data
browserCommandHandler:dispatcher commandHandler:dispatcher
findInPageHandler:dispatcher
bookmarkModel:bookmarkModel bookmarkModel:bookmarkModel
canSendTabToSelf:canSendTabToSelf]]; canSendTabToSelf:canSendTabToSelf]];
...@@ -284,8 +289,9 @@ NSString* const kActivityServicesSnackbarCategory = ...@@ -284,8 +289,9 @@ NSString* const kActivityServicesSnackbarCategory =
- (NSArray*) - (NSArray*)
applicationActivitiesForData:(ShareToData*)data applicationActivitiesForData:(ShareToData*)data
browserCommandHandler:(id<BrowserCommands>)browserCommandHandler commandHandler:(id<BrowserCommands,
findInPageHandler:(id<FindInPageCommands>)findInPageHandler FindInPageCommands,
QRGenerationCommands>)commandHandler
bookmarkModel:(bookmarks::BookmarkModel*)bookmarkModel bookmarkModel:(bookmarks::BookmarkModel*)bookmarkModel
canSendTabToSelf:(BOOL)canSendTabToSelf { canSendTabToSelf:(BOOL)canSendTabToSelf {
NSMutableArray* applicationActivities = [NSMutableArray array]; NSMutableArray* applicationActivities = [NSMutableArray array];
...@@ -296,15 +302,14 @@ NSString* const kActivityServicesSnackbarCategory = ...@@ -296,15 +302,14 @@ NSString* const kActivityServicesSnackbarCategory =
if (data.shareURL.SchemeIsHTTPOrHTTPS()) { if (data.shareURL.SchemeIsHTTPOrHTTPS()) {
if (canSendTabToSelf) { if (canSendTabToSelf) {
SendTabToSelfActivity* sendTabToSelfActivity = SendTabToSelfActivity* sendTabToSelfActivity =
[[SendTabToSelfActivity alloc] [[SendTabToSelfActivity alloc] initWithDispatcher:commandHandler];
initWithDispatcher:browserCommandHandler];
[applicationActivities addObject:sendTabToSelfActivity]; [applicationActivities addObject:sendTabToSelfActivity];
} }
ReadingListActivity* readingListActivity = ReadingListActivity* readingListActivity =
[[ReadingListActivity alloc] initWithURL:data.shareURL [[ReadingListActivity alloc] initWithURL:data.shareURL
title:data.title title:data.title
dispatcher:browserCommandHandler]; dispatcher:commandHandler];
[applicationActivities addObject:readingListActivity]; [applicationActivities addObject:readingListActivity];
if (bookmarkModel) { if (bookmarkModel) {
...@@ -313,27 +318,35 @@ NSString* const kActivityServicesSnackbarCategory = ...@@ -313,27 +318,35 @@ NSString* const kActivityServicesSnackbarCategory =
BookmarkActivity* bookmarkActivity = BookmarkActivity* bookmarkActivity =
[[BookmarkActivity alloc] initWithURL:data.visibleURL [[BookmarkActivity alloc] initWithURL:data.visibleURL
bookmarked:bookmarked bookmarked:bookmarked
dispatcher:browserCommandHandler]; dispatcher:commandHandler];
[applicationActivities addObject:bookmarkActivity]; [applicationActivities addObject:bookmarkActivity];
} }
if (base::FeatureList::IsEnabled(kQRCodeGeneration)) {
GenerateQrCodeActivity* generateQrCodeActivity =
[[GenerateQrCodeActivity alloc] initWithURL:data.shareURL
title:data.title
dispatcher:commandHandler];
[applicationActivities addObject:generateQrCodeActivity];
}
if (data.isPageSearchable) { if (data.isPageSearchable) {
FindInPageActivity* findInPageActivity = FindInPageActivity* findInPageActivity =
[[FindInPageActivity alloc] initWithHandler:findInPageHandler]; [[FindInPageActivity alloc] initWithHandler:commandHandler];
[applicationActivities addObject:findInPageActivity]; [applicationActivities addObject:findInPageActivity];
} }
if (data.userAgent != web::UserAgentType::NONE) { if (data.userAgent != web::UserAgentType::NONE) {
RequestDesktopOrMobileSiteActivity* requestActivity = RequestDesktopOrMobileSiteActivity* requestActivity =
[[RequestDesktopOrMobileSiteActivity alloc] [[RequestDesktopOrMobileSiteActivity alloc]
initWithDispatcher:browserCommandHandler initWithDispatcher:commandHandler
userAgent:data.userAgent]; userAgent:data.userAgent];
[applicationActivities addObject:requestActivity]; [applicationActivities addObject:requestActivity];
} }
} }
if (data.isPagePrintable) { if (data.isPagePrintable) {
PrintActivity* printActivity = [[PrintActivity alloc] init]; PrintActivity* printActivity = [[PrintActivity alloc] init];
printActivity.dispatcher = browserCommandHandler; printActivity.dispatcher = commandHandler;
[applicationActivities addObject:printActivity]; [applicationActivities addObject:printActivity];
} }
return applicationActivities; return applicationActivities;
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#import "ios/chrome/browser/passwords/password_form_filler.h" #import "ios/chrome/browser/passwords/password_form_filler.h"
#import "ios/chrome/browser/ui/activity_services/activities/bookmark_activity.h" #import "ios/chrome/browser/ui/activity_services/activities/bookmark_activity.h"
#import "ios/chrome/browser/ui/activity_services/activities/find_in_page_activity.h" #import "ios/chrome/browser/ui/activity_services/activities/find_in_page_activity.h"
#import "ios/chrome/browser/ui/activity_services/activities/generate_qr_code_activity.h"
#import "ios/chrome/browser/ui/activity_services/activities/print_activity.h" #import "ios/chrome/browser/ui/activity_services/activities/print_activity.h"
#import "ios/chrome/browser/ui/activity_services/activities/request_desktop_or_mobile_site_activity.h" #import "ios/chrome/browser/ui/activity_services/activities/request_desktop_or_mobile_site_activity.h"
#import "ios/chrome/browser/ui/activity_services/activities/send_tab_to_self_activity.h" #import "ios/chrome/browser/ui/activity_services/activities/send_tab_to_self_activity.h"
...@@ -30,6 +31,7 @@ ...@@ -30,6 +31,7 @@
#import "ios/chrome/browser/ui/activity_services/share_to_data.h" #import "ios/chrome/browser/ui/activity_services/share_to_data.h"
#import "ios/chrome/browser/ui/commands/browser_commands.h" #import "ios/chrome/browser/ui/commands/browser_commands.h"
#import "ios/chrome/browser/ui/commands/snackbar_commands.h" #import "ios/chrome/browser/ui/commands/snackbar_commands.h"
#include "ios/chrome/browser/ui/ui_feature_flags.h"
#include "ios/chrome/browser/ui/util/ui_util.h" #include "ios/chrome/browser/ui/util/ui_util.h"
#include "ios/chrome/grit/ios_strings.h" #include "ios/chrome/grit/ios_strings.h"
#import "ios/third_party/material_components_ios/src/components/Snackbar/src/MaterialSnackbar.h" #import "ios/third_party/material_components_ios/src/components/Snackbar/src/MaterialSnackbar.h"
...@@ -77,9 +79,9 @@ ...@@ -77,9 +79,9 @@
- (NSArray*)activityItemsForData:(ShareToData*)data; - (NSArray*)activityItemsForData:(ShareToData*)data;
- (NSArray*) - (NSArray*)
applicationActivitiesForData:(ShareToData*)data applicationActivitiesForData:(ShareToData*)data
browserCommandHandler:(id<BrowserCommands>)browserCommandHandler commandHandler:(id<BrowserCommands,
findInPageHandler: FindInPageCommands,
(id<FindInPageCommands>)findInPageCommandHandler QRGenerationCommands>)commandHandler
bookmarkModel:(bookmarks::BookmarkModel*)bookmarkModel bookmarkModel:(bookmarks::BookmarkModel*)bookmarkModel
canSendTabToSelf:(BOOL)canSendTabToSelf; canSendTabToSelf:(BOOL)canSendTabToSelf;
...@@ -183,6 +185,9 @@ class ActivityServiceControllerTest : public PlatformTest { ...@@ -183,6 +185,9 @@ class ActivityServiceControllerTest : public PlatformTest {
protected: protected:
void SetUp() override { void SetUp() override {
PlatformTest::SetUp(); PlatformTest::SetUp();
scoped_features_.InitAndDisableFeature(kQRCodeGeneration);
TestChromeBrowserState::Builder test_cbs_builder; TestChromeBrowserState::Builder test_cbs_builder;
ASSERT_TRUE(state_dir_.CreateUniqueTempDir()); ASSERT_TRUE(state_dir_.CreateUniqueTempDir());
...@@ -327,6 +332,7 @@ class ActivityServiceControllerTest : public PlatformTest { ...@@ -327,6 +332,7 @@ class ActivityServiceControllerTest : public PlatformTest {
// databases. See https://crbug.com/546640 for more details. // databases. See https://crbug.com/546640 for more details.
base::ScopedTempDir state_dir_; base::ScopedTempDir state_dir_;
base::test::ScopedFeatureList scoped_features_;
web::WebTaskEnvironment task_environment_; web::WebTaskEnvironment task_environment_;
UIViewController* parentController_; UIViewController* parentController_;
ShareToData* shareData_; ShareToData* shareData_;
...@@ -551,8 +557,7 @@ TEST_F(ActivityServiceControllerTest, ApplicationActivitiesForData) { ...@@ -551,8 +557,7 @@ TEST_F(ActivityServiceControllerTest, ApplicationActivitiesForData) {
NSArray* items = NSArray* items =
[activityController applicationActivitiesForData:data [activityController applicationActivitiesForData:data
browserCommandHandler:nil commandHandler:nil
findInPageHandler:nil
bookmarkModel:bookmark_model_ bookmarkModel:bookmark_model_
canSendTabToSelf:false]; canSendTabToSelf:false];
ASSERT_EQ(5U, [items count]); ASSERT_EQ(5U, [items count]);
...@@ -569,8 +574,7 @@ TEST_F(ActivityServiceControllerTest, ApplicationActivitiesForData) { ...@@ -569,8 +574,7 @@ TEST_F(ActivityServiceControllerTest, ApplicationActivitiesForData) {
userAgent:web::UserAgentType::NONE userAgent:web::UserAgentType::NONE
thumbnailGenerator:thumbnail_generator_]; thumbnailGenerator:thumbnail_generator_];
items = [activityController applicationActivitiesForData:data items = [activityController applicationActivitiesForData:data
browserCommandHandler:nil commandHandler:nil
findInPageHandler:nil
bookmarkModel:bookmark_model_ bookmarkModel:bookmark_model_
canSendTabToSelf:false]; canSendTabToSelf:false];
EXPECT_EQ(4U, [items count]); EXPECT_EQ(4U, [items count]);
...@@ -596,8 +600,7 @@ TEST_F(ActivityServiceControllerTest, HTTPActivities) { ...@@ -596,8 +600,7 @@ TEST_F(ActivityServiceControllerTest, HTTPActivities) {
NSArray* items = NSArray* items =
[activityController applicationActivitiesForData:data [activityController applicationActivitiesForData:data
browserCommandHandler:nil commandHandler:nil
findInPageHandler:nil
bookmarkModel:bookmark_model_ bookmarkModel:bookmark_model_
canSendTabToSelf:false]; canSendTabToSelf:false];
ASSERT_EQ(6U, [items count]); ASSERT_EQ(6U, [items count]);
...@@ -612,8 +615,7 @@ TEST_F(ActivityServiceControllerTest, HTTPActivities) { ...@@ -612,8 +615,7 @@ TEST_F(ActivityServiceControllerTest, HTTPActivities) {
userAgent:web::UserAgentType::MOBILE userAgent:web::UserAgentType::MOBILE
thumbnailGenerator:thumbnail_generator_]; thumbnailGenerator:thumbnail_generator_];
items = [activityController applicationActivitiesForData:data items = [activityController applicationActivitiesForData:data
browserCommandHandler:nil commandHandler:nil
findInPageHandler:nil
bookmarkModel:bookmark_model_ bookmarkModel:bookmark_model_
canSendTabToSelf:false]; canSendTabToSelf:false];
ASSERT_EQ(2U, [items count]); ASSERT_EQ(2U, [items count]);
...@@ -637,8 +639,7 @@ TEST_F(ActivityServiceControllerTest, BookmarkActivities) { ...@@ -637,8 +639,7 @@ TEST_F(ActivityServiceControllerTest, BookmarkActivities) {
NSArray* items = NSArray* items =
[activityController applicationActivitiesForData:data [activityController applicationActivitiesForData:data
browserCommandHandler:nil commandHandler:nil
findInPageHandler:nil
bookmarkModel:bookmark_model_ bookmarkModel:bookmark_model_
canSendTabToSelf:false]; canSendTabToSelf:false];
ASSERT_EQ(5U, [items count]); ASSERT_EQ(5U, [items count]);
...@@ -664,8 +665,7 @@ TEST_F(ActivityServiceControllerTest, BookmarkActivities) { ...@@ -664,8 +665,7 @@ TEST_F(ActivityServiceControllerTest, BookmarkActivities) {
userAgent:web::UserAgentType::NONE userAgent:web::UserAgentType::NONE
thumbnailGenerator:thumbnail_generator_]; thumbnailGenerator:thumbnail_generator_];
items = [activityController applicationActivitiesForData:data items = [activityController applicationActivitiesForData:data
browserCommandHandler:nil commandHandler:nil
findInPageHandler:nil
bookmarkModel:bookmark_model_ bookmarkModel:bookmark_model_
canSendTabToSelf:false]; canSendTabToSelf:false];
ASSERT_EQ(5U, [items count]); ASSERT_EQ(5U, [items count]);
...@@ -698,8 +698,7 @@ TEST_F(ActivityServiceControllerTest, RequestMobileDesktopSite) { ...@@ -698,8 +698,7 @@ TEST_F(ActivityServiceControllerTest, RequestMobileDesktopSite) {
OCMExpect([mockBrowserCommandHandler requestDesktopSite]); OCMExpect([mockBrowserCommandHandler requestDesktopSite]);
NSArray* items = NSArray* items =
[activityController applicationActivitiesForData:data [activityController applicationActivitiesForData:data
browserCommandHandler:mockBrowserCommandHandler commandHandler:mockBrowserCommandHandler
findInPageHandler:nil
bookmarkModel:bookmark_model_ bookmarkModel:bookmark_model_
canSendTabToSelf:false]; canSendTabToSelf:false];
ASSERT_EQ(6U, [items count]); ASSERT_EQ(6U, [items count]);
...@@ -725,8 +724,7 @@ TEST_F(ActivityServiceControllerTest, RequestMobileDesktopSite) { ...@@ -725,8 +724,7 @@ TEST_F(ActivityServiceControllerTest, RequestMobileDesktopSite) {
OCMExpect([mockBrowserCommandHandler requestMobileSite]); OCMExpect([mockBrowserCommandHandler requestMobileSite]);
items = items =
[activityController applicationActivitiesForData:data [activityController applicationActivitiesForData:data
browserCommandHandler:mockBrowserCommandHandler commandHandler:mockBrowserCommandHandler
findInPageHandler:nil
bookmarkModel:bookmark_model_ bookmarkModel:bookmark_model_
canSendTabToSelf:false]; canSendTabToSelf:false];
ASSERT_EQ(6U, [items count]); ASSERT_EQ(6U, [items count]);
...@@ -844,8 +842,7 @@ TEST_F(ActivityServiceControllerTest, FindInPageActivity) { ...@@ -844,8 +842,7 @@ TEST_F(ActivityServiceControllerTest, FindInPageActivity) {
NSArray* items = NSArray* items =
[activityController applicationActivitiesForData:data [activityController applicationActivitiesForData:data
browserCommandHandler:nil commandHandler:nil
findInPageHandler:nil
bookmarkModel:bookmark_model_ bookmarkModel:bookmark_model_
canSendTabToSelf:false]; canSendTabToSelf:false];
ASSERT_EQ(5U, [items count]); ASSERT_EQ(5U, [items count]);
...@@ -862,8 +859,7 @@ TEST_F(ActivityServiceControllerTest, FindInPageActivity) { ...@@ -862,8 +859,7 @@ TEST_F(ActivityServiceControllerTest, FindInPageActivity) {
userAgent:web::UserAgentType::NONE userAgent:web::UserAgentType::NONE
thumbnailGenerator:thumbnail_generator_]; thumbnailGenerator:thumbnail_generator_];
items = [activityController applicationActivitiesForData:data items = [activityController applicationActivitiesForData:data
browserCommandHandler:nil commandHandler:nil
findInPageHandler:nil
bookmarkModel:bookmark_model_ bookmarkModel:bookmark_model_
canSendTabToSelf:false]; canSendTabToSelf:false];
EXPECT_EQ(4U, [items count]); EXPECT_EQ(4U, [items count]);
...@@ -889,8 +885,7 @@ TEST_F(ActivityServiceControllerTest, SendTabToSelfActivity) { ...@@ -889,8 +885,7 @@ TEST_F(ActivityServiceControllerTest, SendTabToSelfActivity) {
NSArray* items = NSArray* items =
[activityController applicationActivitiesForData:data [activityController applicationActivitiesForData:data
browserCommandHandler:nil commandHandler:nil
findInPageHandler:nil
bookmarkModel:bookmark_model_ bookmarkModel:bookmark_model_
canSendTabToSelf:true]; canSendTabToSelf:true];
ASSERT_EQ(6U, [items count]); ASSERT_EQ(6U, [items count]);
...@@ -912,8 +907,7 @@ TEST_F(ActivityServiceControllerTest, SendTabToSelfActivity) { ...@@ -912,8 +907,7 @@ TEST_F(ActivityServiceControllerTest, SendTabToSelfActivity) {
thumbnailGenerator:thumbnail_generator_]; thumbnailGenerator:thumbnail_generator_];
items = [activityController applicationActivitiesForData:data items = [activityController applicationActivitiesForData:data
browserCommandHandler:nil commandHandler:nil
findInPageHandler:nil
bookmarkModel:bookmark_model_ bookmarkModel:bookmark_model_
canSendTabToSelf:false]; canSendTabToSelf:false];
ASSERT_EQ(5U, [items count]); ASSERT_EQ(5U, [items count]);
...@@ -930,8 +924,7 @@ TEST_F(ActivityServiceControllerTest, SendTabToSelfActivity) { ...@@ -930,8 +924,7 @@ TEST_F(ActivityServiceControllerTest, SendTabToSelfActivity) {
userAgent:web::UserAgentType::NONE userAgent:web::UserAgentType::NONE
thumbnailGenerator:thumbnail_generator_]; thumbnailGenerator:thumbnail_generator_];
items = [activityController applicationActivitiesForData:data items = [activityController applicationActivitiesForData:data
browserCommandHandler:nil commandHandler:nil
findInPageHandler:nil
bookmarkModel:bookmark_model_ bookmarkModel:bookmark_model_
canSendTabToSelf:true]; canSendTabToSelf:true];
EXPECT_EQ(2U, [items count]); EXPECT_EQ(2U, [items count]);
...@@ -940,8 +933,6 @@ TEST_F(ActivityServiceControllerTest, SendTabToSelfActivity) { ...@@ -940,8 +933,6 @@ TEST_F(ActivityServiceControllerTest, SendTabToSelfActivity) {
} }
TEST_F(ActivityServiceControllerTest, PresentWhenOffTheRecord) { TEST_F(ActivityServiceControllerTest, PresentWhenOffTheRecord) {
base::test::ScopedFeatureList scoped_features;
UIViewController* parentController = UIViewController* parentController =
static_cast<UIViewController*>(parentController_); static_cast<UIViewController*>(parentController_);
...@@ -963,4 +954,39 @@ TEST_F(ActivityServiceControllerTest, PresentWhenOffTheRecord) { ...@@ -963,4 +954,39 @@ TEST_F(ActivityServiceControllerTest, PresentWhenOffTheRecord) {
EXPECT_TRUE([activityController isActive]); EXPECT_TRUE([activityController isActive]);
} }
// Tests that the QR Code generation activity is present when the flag is
// enabled.
TEST_F(ActivityServiceControllerTest, GenerateQRCodeActivity_FlagEnabled) {
scoped_features_.Reset();
scoped_features_.InitAndEnableFeature(kQRCodeGeneration);
ActivityServiceController* activityController =
[[ActivityServiceController alloc] init];
ShareToData* data = [[ShareToData alloc]
initWithShareURL:GURL("https://chromium.org/printable")
visibleURL:GURL("https://chromium.org/printable")
title:@"bar"
isOriginalTitle:YES
isPagePrintable:YES
isPageSearchable:YES
userAgent:web::UserAgentType::NONE
thumbnailGenerator:thumbnail_generator_];
NSArray* items =
[activityController applicationActivitiesForData:data
commandHandler:nil
bookmarkModel:bookmark_model_
canSendTabToSelf:false];
// Verify that the QR code activity is present at the right index and has the
// correct string.
ASSERT_EQ(6U, [items count]);
UIActivity* activity = [items objectAtIndex:3];
EXPECT_EQ([GenerateQrCodeActivity class], [activity class]);
NSString* generateQRCodeString =
l10n_util::GetNSString(IDS_IOS_SHARE_MENU_GENERATE_QR_CODE_ACTION);
EXPECT_TRUE([generateQRCodeString isEqualToString:activity.activityTitle]);
}
} // namespace } // namespace
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment