0

Remove Search Recent Tabs from suggested actions with Tab Group Sync

When Tab Groups Sync is enabled, Recent Tabs is not present in Tab Grid,
so this CL then removes the suggested action from Regular Grid search.

Fixed: 329632687
Change-Id: Iec8be37bd9307cb8b7e20e7604e9b1b1547fe418
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5676399
Commit-Queue: Louis Romero <lpromero@google.com>
Auto-Submit: Louis Romero <lpromero@google.com>
Code-Coverage: findit-for-me@appspot.gserviceaccount.com <findit-for-me@appspot.gserviceaccount.com>
Reviewed-by: Ewann Pellé <ewannpv@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1323381}
This commit is contained in:
Louis Romero
2024-07-04 15:51:01 +00:00
committed by Chromium LUCI CQ
parent 7b13913f84
commit 07228a1177
4 changed files with 54 additions and 29 deletions

@ -36,6 +36,7 @@ source_set("unit_tests") {
"//base",
"//base/test:test_support",
"//ios/chrome/app/strings",
"//ios/chrome/browser/shared/public/features",
"//ios/chrome/browser/shared/ui/table_view",
"//ios/chrome/browser/shared/ui/table_view:test_support",
"//third_party/ocmock",

@ -8,6 +8,7 @@
#import "base/apple/foundation_util.h"
#import "base/check_op.h"
#import "ios/chrome/browser/shared/public/features/features.h"
#import "ios/chrome/browser/shared/ui/symbols/symbols.h"
#import "ios/chrome/browser/shared/ui/table_view/cells/table_view_image_item.h"
#import "ios/chrome/browser/shared/ui/table_view/cells/table_view_item.h"
@ -117,16 +118,18 @@ typedef NS_ENUM(NSInteger, ItemType) {
[model addItem:searchWebItem
toSectionWithIdentifier:kSectionIdentifierSuggestedActions];
TableViewImageItem* searchRecentTabsItem = [[TableViewImageItem alloc]
initWithType:ItemTypeSuggestedActionSearchRecentTabs];
searchRecentTabsItem.title = l10n_util::GetNSString(
IDS_IOS_TABS_SEARCH_SUGGESTED_ACTION_SEARCH_RECENT_TABS);
searchRecentTabsItem.image =
[[UIImage imageNamed:@"suggested_action_recent_tabs"]
imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
searchRecentTabsItem.textColor = actionsTextColor;
[model addItem:searchRecentTabsItem
toSectionWithIdentifier:kSectionIdentifierSuggestedActions];
if (!IsTabGroupSyncEnabled()) {
TableViewImageItem* searchRecentTabsItem = [[TableViewImageItem alloc]
initWithType:ItemTypeSuggestedActionSearchRecentTabs];
searchRecentTabsItem.title = l10n_util::GetNSString(
IDS_IOS_TABS_SEARCH_SUGGESTED_ACTION_SEARCH_RECENT_TABS);
searchRecentTabsItem.image =
[[UIImage imageNamed:@"suggested_action_recent_tabs"]
imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
searchRecentTabsItem.textColor = actionsTextColor;
[model addItem:searchRecentTabsItem
toSectionWithIdentifier:kSectionIdentifierSuggestedActions];
}
TableViewTabsSearchSuggestedHistoryItem* searchHistoryItem =
[[TableViewTabsSearchSuggestedHistoryItem alloc]

@ -4,15 +4,15 @@
#import "ios/chrome/browser/ui/tab_switcher/tab_grid/suggested_actions/suggested_actions_view_controller.h"
#import "ios/chrome/browser/shared/public/features/features.h"
#import "ios/chrome/browser/shared/ui/table_view/cells/table_view_image_item.h"
#import "ios/chrome/browser/shared/ui/table_view/legacy_chrome_table_view_controller_test.h"
#import "ios/chrome/grit/ios_strings.h"
#import "testing/gtest/include/gtest/gtest.h"
#import "testing/gtest_mac.h"
#import "ui/base/l10n/l10n_util_mac.h"
#import "third_party/ocmock/OCMock/OCMock.h"
#import "third_party/ocmock/gtest_support.h"
#import "ui/base/l10n/l10n_util_mac.h"
// Test fixture for testing SuggestedActionsViewController class.
class SuggestedActionsViewControllerTest
@ -38,21 +38,35 @@ TEST_F(SuggestedActionsViewControllerTest, Initialization) {
ASSERT_EQ(1, NumberOfSections());
ASSERT_EQ(3, NumberOfItemsInSection(0));
// This is a static table it should have 3 items in that order: (SearchWeb,
// SearchRecentTabs, SearchHistory).
TableViewImageItem* item = GetTableViewItem(0, 0);
EXPECT_NSEQ(
l10n_util::GetNSString(IDS_IOS_TABS_SEARCH_SUGGESTED_ACTION_SEARCH_WEB),
item.title);
item = GetTableViewItem(0, 1);
EXPECT_NSEQ(l10n_util::GetNSString(
IDS_IOS_TABS_SEARCH_SUGGESTED_ACTION_SEARCH_RECENT_TABS),
item.title);
item = GetTableViewItem(0, 2);
EXPECT_NSEQ(
l10n_util::GetNSString(
IDS_IOS_TABS_SEARCH_SUGGESTED_ACTION_SEARCH_HISTORY_UNKNOWN_RESULT_COUNT),
item.title);
if (IsTabGroupSyncEnabled()) {
// This is a static table it should have 2 items in that order:
// (SearchWeb, SearchHistory).
TableViewImageItem* item = GetTableViewItem(0, 0);
EXPECT_NSEQ(
l10n_util::GetNSString(IDS_IOS_TABS_SEARCH_SUGGESTED_ACTION_SEARCH_WEB),
item.title);
item = GetTableViewItem(0, 1);
EXPECT_NSEQ(
l10n_util::GetNSString(
IDS_IOS_TABS_SEARCH_SUGGESTED_ACTION_SEARCH_HISTORY_UNKNOWN_RESULT_COUNT),
item.title);
} else {
// This is a static table it should have 3 items in that order: (SearchWeb,
// SearchRecentTabs, SearchHistory).
TableViewImageItem* item = GetTableViewItem(0, 0);
EXPECT_NSEQ(
l10n_util::GetNSString(IDS_IOS_TABS_SEARCH_SUGGESTED_ACTION_SEARCH_WEB),
item.title);
item = GetTableViewItem(0, 1);
EXPECT_NSEQ(l10n_util::GetNSString(
IDS_IOS_TABS_SEARCH_SUGGESTED_ACTION_SEARCH_RECENT_TABS),
item.title);
item = GetTableViewItem(0, 2);
EXPECT_NSEQ(
l10n_util::GetNSString(
IDS_IOS_TABS_SEARCH_SUGGESTED_ACTION_SEARCH_HISTORY_UNKNOWN_RESULT_COUNT),
item.title);
}
}
// Tests that selecting the search web item should call the relevant delegate.

@ -2216,13 +2216,20 @@ void EchoURLDefaultSearchEngineResponseProvider::GetResponseHeadersAndBody(
toSelectMatcher:SearchSuggestedActionsSectionHeader()]
assertWithMatcher:grey_notNil()];
id<GREYMatcher> recentTabsMatcher =
grey_descendant(SearchRecentTabsSuggestedAction());
if ([ChromeEarlGrey isTabGroupSyncEnabled]) {
// When Tab Group Sync is enabled, Recent Tabs is not reachable from
// Tab Grid.
recentTabsMatcher = grey_not(recentTabsMatcher);
}
[[self
scrollDownViewMatcher:RegularTabGrid()
toSelectMatcher:grey_allOf(
SearchSuggestedActionsSection(),
grey_descendant(SearchOnWebSuggestedAction()),
grey_descendant(
SearchRecentTabsSuggestedAction()),
recentTabsMatcher,
grey_descendant(SearchHistorySuggestedAction()),
grey_sufficientlyVisible(), nil)]
assertWithMatcher:grey_notNil()];