Commit fdcdc521 authored by Gayane Petrosyan's avatar Gayane Petrosyan Committed by Commit Bot

[Sh-Clank] Added HIGHLIGHTED_TEXT content type

Bug: 1102382
Change-Id: I7a4bcfdf6ed30a3ff458f8b4c8e022a7daa2aa6f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2311678
Commit-Queue: Gayane Petrosyan <gayane@chromium.org>
Reviewed-by: default avatarTheresa  <twellington@chromium.org>
Reviewed-by: default avatarKyle Milka <kmilka@chromium.org>
Cr-Commit-Position: refs/heads/master@{#791494}
parent e1402cf5
...@@ -170,7 +170,10 @@ public class ChromeActionModeHandler { ...@@ -170,7 +170,10 @@ public class ChromeActionModeHandler {
new ShareParams.Builder(mTab.getWindowAndroid(), /*url=*/"", /*title=*/"") new ShareParams.Builder(mTab.getWindowAndroid(), /*url=*/"", /*title=*/"")
.setText(sanitizeTextForShare(mHelper.getSelectedText())) .setText(sanitizeTextForShare(mHelper.getSelectedText()))
.build(), .build(),
new ChromeShareExtras.Builder().setSaveLastUsed(true).build()); new ChromeShareExtras.Builder()
.setSaveLastUsed(true)
.setIsUserHighlightedText(true)
.build());
} else { } else {
return mHelper.onActionItemClicked(mode, item); return mHelper.onActionItemClicked(mode, item);
} }
......
...@@ -36,12 +36,16 @@ public class ChromeShareExtras { ...@@ -36,12 +36,16 @@ public class ChromeShareExtras {
*/ */
private final String mImageSrcUrl; private final String mImageSrcUrl;
/** Indicates if text property is highlighted by user. */
private final boolean mIsUserHighlightedText;
private ChromeShareExtras(boolean saveLastUsed, boolean shareDirectly, private ChromeShareExtras(boolean saveLastUsed, boolean shareDirectly,
boolean isUrlOfVisiblePage, String imageSrcUrl) { boolean isUrlOfVisiblePage, String imageSrcUrl, boolean isUserHighlightedText) {
mSaveLastUsed = saveLastUsed; mSaveLastUsed = saveLastUsed;
mShareDirectly = shareDirectly; mShareDirectly = shareDirectly;
mIsUrlOfVisiblePage = isUrlOfVisiblePage; mIsUrlOfVisiblePage = isUrlOfVisiblePage;
mImageSrcUrl = imageSrcUrl; mImageSrcUrl = imageSrcUrl;
mIsUserHighlightedText = isUserHighlightedText;
} }
/** /**
...@@ -73,6 +77,13 @@ public class ChromeShareExtras { ...@@ -73,6 +77,13 @@ public class ChromeShareExtras {
return mImageSrcUrl; return mImageSrcUrl;
} }
/**
* @return Whether the URL is of the current visible page.
*/
public boolean isUserHighlightedText() {
return mIsUserHighlightedText;
}
/** /**
* The builder for {@link ChromeShareExtras} objects. * The builder for {@link ChromeShareExtras} objects.
*/ */
...@@ -81,6 +92,7 @@ public class ChromeShareExtras { ...@@ -81,6 +92,7 @@ public class ChromeShareExtras {
private boolean mShareDirectly; private boolean mShareDirectly;
private boolean mIsUrlOfVisiblePage; private boolean mIsUrlOfVisiblePage;
private String mImageSrcUrl; private String mImageSrcUrl;
private boolean mIsUserHighlightedText;
/** /**
* Sets whether to save the chosen activity for future direct sharing. * Sets whether to save the chosen activity for future direct sharing.
...@@ -115,9 +127,17 @@ public class ChromeShareExtras { ...@@ -115,9 +127,17 @@ public class ChromeShareExtras {
return this; return this;
} }
/**
* Sets whether text property is highlighted by user.
*/
public Builder setIsUserHighlightedText(boolean isUserHighlightedText) {
mIsUserHighlightedText = isUserHighlightedText;
return this;
}
public ChromeShareExtras build() { public ChromeShareExtras build() {
return new ChromeShareExtras( return new ChromeShareExtras(mSaveLastUsed, mShareDirectly, mIsUrlOfVisiblePage,
mSaveLastUsed, mShareDirectly, mIsUrlOfVisiblePage, mImageSrcUrl); mImageSrcUrl, mIsUserHighlightedText);
} }
} }
} }
...@@ -189,7 +189,8 @@ class ChromeProvidedSharingOptionsProvider { ...@@ -189,7 +189,8 @@ class ChromeProvidedSharingOptionsProvider {
}, },
/*isFirstParty=*/true); /*isFirstParty=*/true);
return new FirstPartyOption(propertyModel, return new FirstPartyOption(propertyModel,
Arrays.asList(ContentType.LINK_PAGE_VISIBLE, ContentType.TEXT, ContentType.IMAGE)); Arrays.asList(ContentType.LINK_PAGE_VISIBLE, ContentType.TEXT,
ContentType.HIGHLIGHTED_TEXT, ContentType.IMAGE));
} }
private FirstPartyOption createCopyLinkFirstPartyOption() { private FirstPartyOption createCopyLinkFirstPartyOption() {
...@@ -232,7 +233,8 @@ class ChromeProvidedSharingOptionsProvider { ...@@ -232,7 +233,8 @@ class ChromeProvidedSharingOptionsProvider {
Toast.makeText(mActivity, R.string.text_copied, Toast.LENGTH_SHORT).show(); Toast.makeText(mActivity, R.string.text_copied, Toast.LENGTH_SHORT).show();
}, },
/*isFirstParty=*/true); /*isFirstParty=*/true);
return new FirstPartyOption(propertyModel, Collections.singleton(ContentType.TEXT)); return new FirstPartyOption(
propertyModel, Arrays.asList(ContentType.TEXT, ContentType.HIGHLIGHTED_TEXT));
} }
private FirstPartyOption createSendTabToSelfFirstPartyOption() { private FirstPartyOption createSendTabToSelfFirstPartyOption() {
...@@ -313,7 +315,8 @@ class ChromeProvidedSharingOptionsProvider { ...@@ -313,7 +315,8 @@ class ChromeProvidedSharingOptionsProvider {
// TODO(1102382): Init and call link-to-text feature. // TODO(1102382): Init and call link-to-text feature.
}, },
/*isFirstParty=*/true); /*isFirstParty=*/true);
return new FirstPartyOption(propertyModel, Collections.singleton(ContentType.TEXT)); return new FirstPartyOption(
propertyModel, Collections.singleton(ContentType.HIGHLIGHTED_TEXT));
} }
/** /**
......
...@@ -100,8 +100,8 @@ public class ShareSheetCoordinator ...@@ -100,8 +100,8 @@ public class ShareSheetCoordinator
mBottomSheet = new ShareSheetBottomSheetContent(activity, this); mBottomSheet = new ShareSheetBottomSheetContent(activity, this);
mShareStartTime = shareStartTime; mShareStartTime = shareStartTime;
Set<Integer> contentTypes = ShareSheetPropertyModelBuilder.getContentTypes( Set<Integer> contentTypes =
params, chromeShareExtras.isUrlOfVisiblePage()); ShareSheetPropertyModelBuilder.getContentTypes(params, chromeShareExtras);
List<PropertyModel> chromeFeatures = List<PropertyModel> chromeFeatures =
createTopRowPropertyModels(activity, params, chromeShareExtras, contentTypes); createTopRowPropertyModels(activity, params, chromeShareExtras, contentTypes);
List<PropertyModel> thirdPartyApps = createBottomRowPropertyModels( List<PropertyModel> thirdPartyApps = createBottomRowPropertyModels(
......
...@@ -17,6 +17,7 @@ import androidx.annotation.IntDef; ...@@ -17,6 +17,7 @@ import androidx.annotation.IntDef;
import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.metrics.RecordUserAction; import org.chromium.base.metrics.RecordUserAction;
import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.share.ChromeShareExtras;
import org.chromium.chrome.browser.share.ShareHelper; import org.chromium.chrome.browser.share.ShareHelper;
import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
import org.chromium.components.browser_ui.share.ShareParams; import org.chromium.components.browser_ui.share.ShareParams;
...@@ -43,14 +44,15 @@ import java.util.Set; ...@@ -43,14 +44,15 @@ import java.util.Set;
// TODO(crbug/1022172): Should be package-protected once modularization is complete. // TODO(crbug/1022172): Should be package-protected once modularization is complete.
public class ShareSheetPropertyModelBuilder { public class ShareSheetPropertyModelBuilder {
@IntDef({ContentType.LINK_PAGE_VISIBLE, ContentType.LINK_PAGE_NOT_VISIBLE, ContentType.TEXT, @IntDef({ContentType.LINK_PAGE_VISIBLE, ContentType.LINK_PAGE_NOT_VISIBLE, ContentType.TEXT,
ContentType.IMAGE, ContentType.OTHER_FILE_TYPE}) ContentType.IMAGE, ContentType.OTHER_FILE_TYPE, ContentType.HIGHLIGHTED_TEXT})
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@interface ContentType { @interface ContentType {
int LINK_PAGE_VISIBLE = 0; int LINK_PAGE_VISIBLE = 0;
int LINK_PAGE_NOT_VISIBLE = 1; int LINK_PAGE_NOT_VISIBLE = 1;
int TEXT = 2; int TEXT = 2;
int IMAGE = 3; int IMAGE = 3;
int OTHER_FILE_TYPE = 4; int HIGHLIGHTED_TEXT = 4;
int OTHER_FILE_TYPE = 5;
} }
private static final int MAX_NUM_APPS = 7; private static final int MAX_NUM_APPS = 7;
...@@ -58,9 +60,9 @@ public class ShareSheetPropertyModelBuilder { ...@@ -58,9 +60,9 @@ public class ShareSheetPropertyModelBuilder {
// Variations parameter name for the comma-separated list of third-party activity names. // Variations parameter name for the comma-separated list of third-party activity names.
private static final String PARAM_SHARING_HUB_THIRD_PARTY_APPS = "sharing-hub-third-party-apps"; private static final String PARAM_SHARING_HUB_THIRD_PARTY_APPS = "sharing-hub-third-party-apps";
static final HashSet<Integer> ALL_CONTENT_TYPES = new HashSet<>( static final HashSet<Integer> ALL_CONTENT_TYPES = new HashSet<>(Arrays.asList(
Arrays.asList(ContentType.LINK_PAGE_VISIBLE, ContentType.LINK_PAGE_NOT_VISIBLE, ContentType.LINK_PAGE_VISIBLE, ContentType.LINK_PAGE_NOT_VISIBLE, ContentType.TEXT,
ContentType.TEXT, ContentType.IMAGE, ContentType.OTHER_FILE_TYPE)); ContentType.IMAGE, ContentType.HIGHLIGHTED_TEXT, ContentType.OTHER_FILE_TYPE));
private static final ArrayList<String> FALLBACK_ACTIVITIES = private static final ArrayList<String> FALLBACK_ACTIVITIES =
new ArrayList<>(Arrays.asList("com.whatsapp.ContactPicker", new ArrayList<>(Arrays.asList("com.whatsapp.ContactPicker",
"com.facebook.composer.shareintent.ImplicitShareIntentHandlerDefaultAlias", "com.facebook.composer.shareintent.ImplicitShareIntentHandlerDefaultAlias",
...@@ -99,17 +101,18 @@ public class ShareSheetPropertyModelBuilder { ...@@ -99,17 +101,18 @@ public class ShareSheetPropertyModelBuilder {
* <li>If a URL is present, {@code isUrlOfVisiblePage} determines whether to add * <li>If a URL is present, {@code isUrlOfVisiblePage} determines whether to add
* {@link ContentType.LINK_PAGE_VISIBLE} or {@link ContentType.LINK_PAGE_NOT_VISIBLE}. * {@link ContentType.LINK_PAGE_VISIBLE} or {@link ContentType.LINK_PAGE_NOT_VISIBLE}.
* <li>If the text being shared is not the same as the URL, add {@link ContentType.TEXT} * <li>If the text being shared is not the same as the URL, add {@link ContentType.TEXT}
* <li>If the share contains files and the {@code fileContentType} is an image, add <li>If text is highlighted by user, add {@link ContentType.HIGHLIGHTED_TEXT}.
<li>If the share contains files and the {@code fileContentType} is an image, add
* {@link ContentType.IMAGE}. Otherwise, add {@link ContentType.OTHER_FILE_TYPE}. * {@link ContentType.IMAGE}. Otherwise, add {@link ContentType.OTHER_FILE_TYPE}.
* </ul> * </ul>
*/ */
static Set<Integer> getContentTypes(ShareParams params, boolean isUrlOfVisiblePage) { static Set<Integer> getContentTypes(ShareParams params, ChromeShareExtras chromeShareExtras) {
if (!ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_SHARING_HUB_V15)) { if (!ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_SHARING_HUB_V15)) {
return ALL_CONTENT_TYPES; return ALL_CONTENT_TYPES;
} }
Set<Integer> contentTypes = new HashSet<>(); Set<Integer> contentTypes = new HashSet<>();
if (!TextUtils.isEmpty(params.getUrl())) { if (!TextUtils.isEmpty(params.getUrl())) {
if (isUrlOfVisiblePage) { if (chromeShareExtras.isUrlOfVisiblePage()) {
contentTypes.add(ContentType.LINK_PAGE_VISIBLE); contentTypes.add(ContentType.LINK_PAGE_VISIBLE);
} else { } else {
contentTypes.add(ContentType.LINK_PAGE_NOT_VISIBLE); contentTypes.add(ContentType.LINK_PAGE_NOT_VISIBLE);
...@@ -117,7 +120,11 @@ public class ShareSheetPropertyModelBuilder { ...@@ -117,7 +120,11 @@ public class ShareSheetPropertyModelBuilder {
} }
if (!TextUtils.isEmpty(params.getText()) if (!TextUtils.isEmpty(params.getText())
&& !TextUtils.equals(params.getUrl(), params.getText())) { && !TextUtils.equals(params.getUrl(), params.getText())) {
contentTypes.add(ContentType.TEXT); if (chromeShareExtras.isUserHighlightedText()) {
contentTypes.add(ContentType.HIGHLIGHTED_TEXT);
} else {
contentTypes.add(ContentType.TEXT);
}
} }
if (params.getFileUris() != null) { if (params.getFileUris() != null) {
if (!TextUtils.isEmpty(params.getFileContentType()) if (!TextUtils.isEmpty(params.getFileContentType())
......
...@@ -150,7 +150,8 @@ public class ChromeProvidedSharingOptionsProviderTest { ...@@ -150,7 +150,8 @@ public class ChromeProvidedSharingOptionsProviderTest {
@Test @Test
@MediumTest @MediumTest
@Features.EnableFeatures({ChromeFeatureList.CHROME_SHARING_HUB_V15}) @Features.EnableFeatures({ChromeFeatureList.CHROME_SHARING_HUB_V15,
ChromeFeatureList.CHROME_SHARE_HIGHLIGHTS_ANDROID})
@Features.DisableFeatures( @Features.DisableFeatures(
{ChromeFeatureList.CHROME_SHARE_SCREENSHOT, ChromeFeatureList.CHROME_SHARE_QRCODE, {ChromeFeatureList.CHROME_SHARE_SCREENSHOT, ChromeFeatureList.CHROME_SHARE_QRCODE,
ChromeFeatureList.CHROME_SHARE_HIGHLIGHTS_ANDROID}) ChromeFeatureList.CHROME_SHARE_HIGHLIGHTS_ANDROID})
...@@ -233,7 +234,7 @@ public class ChromeProvidedSharingOptionsProviderTest { ...@@ -233,7 +234,7 @@ public class ChromeProvidedSharingOptionsProviderTest {
setUpChromeProvidedSharingOptionsProviderTest(/*printingEnabled=*/false); setUpChromeProvidedSharingOptionsProviderTest(/*printingEnabled=*/false);
List<PropertyModel> propertyModels = List<PropertyModel> propertyModels =
mChromeProvidedSharingOptionsProvider.getPropertyModels( mChromeProvidedSharingOptionsProvider.getPropertyModels(
ImmutableSet.of(ContentType.TEXT)); ImmutableSet.of(ContentType.HIGHLIGHTED_TEXT));
Assert.assertEquals("Incorrect number of property models.", 2, propertyModels.size()); Assert.assertEquals("Incorrect number of property models.", 2, propertyModels.size());
assertModelsAreInTheRightOrder(propertyModels, assertModelsAreInTheRightOrder(propertyModels,
......
...@@ -34,6 +34,7 @@ import org.mockito.MockitoAnnotations; ...@@ -34,6 +34,7 @@ import org.mockito.MockitoAnnotations;
import org.chromium.base.test.util.CommandLineFlags; import org.chromium.base.test.util.CommandLineFlags;
import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.flags.ChromeSwitches; import org.chromium.chrome.browser.flags.ChromeSwitches;
import org.chromium.chrome.browser.share.ChromeShareExtras;
import org.chromium.chrome.browser.share.share_sheet.ShareSheetPropertyModelBuilder.ContentType; import org.chromium.chrome.browser.share.share_sheet.ShareSheetPropertyModelBuilder.ContentType;
import org.chromium.chrome.test.ChromeBrowserTestRule; import org.chromium.chrome.test.ChromeBrowserTestRule;
import org.chromium.chrome.test.ChromeJUnit4ClassRunner; import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
...@@ -116,15 +117,15 @@ public final class ShareSheetPropertyModelBuilderTest { ...@@ -116,15 +117,15 @@ public final class ShareSheetPropertyModelBuilderTest {
@Features.EnableFeatures({ChromeFeatureList.CHROME_SHARING_HUB_V15}) @Features.EnableFeatures({ChromeFeatureList.CHROME_SHARING_HUB_V15})
public void getContentTypes_sharingHub15Enabled_hasCorrectLinkContentType() { public void getContentTypes_sharingHub15Enabled_hasCorrectLinkContentType() {
ShareParams shareParams = new ShareParams.Builder(null, "", URL).build(); ShareParams shareParams = new ShareParams.Builder(null, "", URL).build();
ChromeShareExtras shareExtras = new ChromeShareExtras.Builder().build();
assertEquals("Should contain LINK_PAGE_NOT_VISIBLE.", assertEquals("Should contain LINK_PAGE_NOT_VISIBLE.",
ImmutableSet.of(ContentType.LINK_PAGE_NOT_VISIBLE), ImmutableSet.of(ContentType.LINK_PAGE_NOT_VISIBLE),
ShareSheetPropertyModelBuilder.getContentTypes(shareParams, /*isUrlOfPageVisible=*/ ShareSheetPropertyModelBuilder.getContentTypes(shareParams, shareExtras));
false)); shareExtras = new ChromeShareExtras.Builder().setIsUrlOfVisiblePage(true).build();
assertEquals("Should contain LINK_PAGE_VISIBLE.", assertEquals("Should contain LINK_PAGE_VISIBLE.",
ImmutableSet.of(ContentType.LINK_PAGE_VISIBLE), ImmutableSet.of(ContentType.LINK_PAGE_VISIBLE),
ShareSheetPropertyModelBuilder.getContentTypes(shareParams, /*isUrlOfPageVisible=*/ ShareSheetPropertyModelBuilder.getContentTypes(shareParams, shareExtras));
true));
} }
@Test @Test
...@@ -132,13 +133,13 @@ public final class ShareSheetPropertyModelBuilderTest { ...@@ -132,13 +133,13 @@ public final class ShareSheetPropertyModelBuilderTest {
@Features.EnableFeatures({ChromeFeatureList.CHROME_SHARING_HUB_V15}) @Features.EnableFeatures({ChromeFeatureList.CHROME_SHARING_HUB_V15})
public void getContentTypes_sharingHub15EnabledAndNoUrl_hasNoLinkContentType() { public void getContentTypes_sharingHub15EnabledAndNoUrl_hasNoLinkContentType() {
ShareParams shareParams = new ShareParams.Builder(null, "", "").build(); ShareParams shareParams = new ShareParams.Builder(null, "", "").build();
ChromeShareExtras shareExtras = new ChromeShareExtras.Builder().build();
assertEquals("Should not contain LINK_PAGE_NOT_VISIBLE", ImmutableSet.of(), assertEquals("Should not contain LINK_PAGE_NOT_VISIBLE", ImmutableSet.of(),
ShareSheetPropertyModelBuilder.getContentTypes(shareParams, /*isUrlOfPageVisible=*/ ShareSheetPropertyModelBuilder.getContentTypes(shareParams, shareExtras));
false)); shareExtras = new ChromeShareExtras.Builder().setIsUrlOfVisiblePage(true).build();
assertEquals("Should not contain LINK_PAGE_VISIBLE.", ImmutableSet.of(), assertEquals("Should not contain LINK_PAGE_VISIBLE.", ImmutableSet.of(),
ShareSheetPropertyModelBuilder.getContentTypes(shareParams, /*isUrlOfPageVisible=*/ ShareSheetPropertyModelBuilder.getContentTypes(shareParams, shareExtras));
true));
} }
@Test @Test
...@@ -146,10 +147,10 @@ public final class ShareSheetPropertyModelBuilderTest { ...@@ -146,10 +147,10 @@ public final class ShareSheetPropertyModelBuilderTest {
@Features.EnableFeatures({ChromeFeatureList.CHROME_SHARING_HUB_V15}) @Features.EnableFeatures({ChromeFeatureList.CHROME_SHARING_HUB_V15})
public void getContentTypes_sharingHub15EnabledAndUrlDifferentFromText_hasTextContentType() { public void getContentTypes_sharingHub15EnabledAndUrlDifferentFromText_hasTextContentType() {
ShareParams shareParams = new ShareParams.Builder(null, "", "").setText("testText").build(); ShareParams shareParams = new ShareParams.Builder(null, "", "").setText("testText").build();
ChromeShareExtras shareExtras = new ChromeShareExtras.Builder().build();
assertEquals("Should contain TEXT.", ImmutableSet.of(ContentType.TEXT), assertEquals("Should contain TEXT.", ImmutableSet.of(ContentType.TEXT),
ShareSheetPropertyModelBuilder.getContentTypes(shareParams, /*isUrlOfPageVisible=*/ ShareSheetPropertyModelBuilder.getContentTypes(shareParams, shareExtras));
false));
} }
@Test @Test
...@@ -157,10 +158,24 @@ public final class ShareSheetPropertyModelBuilderTest { ...@@ -157,10 +158,24 @@ public final class ShareSheetPropertyModelBuilderTest {
@Features.EnableFeatures({ChromeFeatureList.CHROME_SHARING_HUB_V15}) @Features.EnableFeatures({ChromeFeatureList.CHROME_SHARING_HUB_V15})
public void getContentTypes_sharingHub15EnabledAndTextIsNull_hasNoTextContentType() { public void getContentTypes_sharingHub15EnabledAndTextIsNull_hasNoTextContentType() {
ShareParams shareParams = new ShareParams.Builder(null, "", "").build(); ShareParams shareParams = new ShareParams.Builder(null, "", "").build();
ChromeShareExtras shareExtras = new ChromeShareExtras.Builder().build();
assertEquals("Should not contain TEXT.", ImmutableSet.of(), assertEquals("Should not contain TEXT.", ImmutableSet.of(),
ShareSheetPropertyModelBuilder.getContentTypes(shareParams, /*isUrlOfPageVisible=*/ ShareSheetPropertyModelBuilder.getContentTypes(shareParams, shareExtras));
false)); }
@Test
@MediumTest
@Features.EnableFeatures({ChromeFeatureList.CHROME_SHARING_HUB_V15})
public void
getContentTypes_sharingHub15EnabledAndUrlDifferentFromText_hasHighlightedTextContentType() {
ShareParams shareParams = new ShareParams.Builder(null, "", "").setText("testText").build();
ChromeShareExtras shareExtras =
new ChromeShareExtras.Builder().setIsUserHighlightedText(true).build();
assertEquals("Should contain HIGHLIGHTED_TEXT.",
ImmutableSet.of(ContentType.HIGHLIGHTED_TEXT),
ShareSheetPropertyModelBuilder.getContentTypes(shareParams, shareExtras));
} }
@Test @Test
...@@ -171,10 +186,10 @@ public final class ShareSheetPropertyModelBuilderTest { ...@@ -171,10 +186,10 @@ public final class ShareSheetPropertyModelBuilderTest {
.setFileUris(new ArrayList<>(ImmutableSet.of(Uri.EMPTY))) .setFileUris(new ArrayList<>(ImmutableSet.of(Uri.EMPTY)))
.setFileContentType(IMAGE_TYPE) .setFileContentType(IMAGE_TYPE)
.build(); .build();
ChromeShareExtras shareExtras = new ChromeShareExtras.Builder().build();
assertEquals("Should contain IMAGE.", ImmutableSet.of(ContentType.IMAGE), assertEquals("Should contain IMAGE.", ImmutableSet.of(ContentType.IMAGE),
ShareSheetPropertyModelBuilder.getContentTypes(shareParams, /*isUrlOfPageVisible=*/ ShareSheetPropertyModelBuilder.getContentTypes(shareParams, shareExtras));
false));
} }
@Test @Test
...@@ -183,10 +198,10 @@ public final class ShareSheetPropertyModelBuilderTest { ...@@ -183,10 +198,10 @@ public final class ShareSheetPropertyModelBuilderTest {
public void getContentTypes_sharingHub15EnabledAndNoFiles_hasNoImageContentType() { public void getContentTypes_sharingHub15EnabledAndNoFiles_hasNoImageContentType() {
ShareParams shareParams = ShareParams shareParams =
new ShareParams.Builder(null, "", "").setFileContentType(IMAGE_TYPE).build(); new ShareParams.Builder(null, "", "").setFileContentType(IMAGE_TYPE).build();
ChromeShareExtras shareExtras = new ChromeShareExtras.Builder().build();
assertEquals("Should not contain IMAGE.", ImmutableSet.of(), assertEquals("Should not contain IMAGE.", ImmutableSet.of(),
ShareSheetPropertyModelBuilder.getContentTypes(shareParams, /*isUrlOfPageVisible=*/ ShareSheetPropertyModelBuilder.getContentTypes(shareParams, shareExtras));
false));
} }
@Test @Test
...@@ -198,11 +213,11 @@ public final class ShareSheetPropertyModelBuilderTest { ...@@ -198,11 +213,11 @@ public final class ShareSheetPropertyModelBuilderTest {
.setFileUris(new ArrayList<>(ImmutableList.of(Uri.EMPTY, Uri.EMPTY))) .setFileUris(new ArrayList<>(ImmutableList.of(Uri.EMPTY, Uri.EMPTY)))
.setFileContentType("*/*") .setFileContentType("*/*")
.build(); .build();
ChromeShareExtras shareExtras = new ChromeShareExtras.Builder().build();
assertEquals("Should contain OTHER_FILE_TYPE.", assertEquals("Should contain OTHER_FILE_TYPE.",
ImmutableSet.of(ContentType.OTHER_FILE_TYPE), ImmutableSet.of(ContentType.OTHER_FILE_TYPE),
ShareSheetPropertyModelBuilder.getContentTypes(shareParams, /*isUrlOfPageVisible=*/ ShareSheetPropertyModelBuilder.getContentTypes(shareParams, shareExtras));
false));
} }
@Test @Test
...@@ -211,10 +226,10 @@ public final class ShareSheetPropertyModelBuilderTest { ...@@ -211,10 +226,10 @@ public final class ShareSheetPropertyModelBuilderTest {
public void getContentTypes_sharingHub15EnabledAndNoFiles_hasNoFileContentType() { public void getContentTypes_sharingHub15EnabledAndNoFiles_hasNoFileContentType() {
ShareParams shareParams = ShareParams shareParams =
new ShareParams.Builder(null, "", "").setFileContentType("*/*").build(); new ShareParams.Builder(null, "", "").setFileContentType("*/*").build();
ChromeShareExtras shareExtras = new ChromeShareExtras.Builder().build();
assertEquals("Should not contain OTHER_FILE_TYPE.", ImmutableSet.of(), assertEquals("Should not contain OTHER_FILE_TYPE.", ImmutableSet.of(),
ShareSheetPropertyModelBuilder.getContentTypes(shareParams, /*isUrlOfPageVisible=*/ ShareSheetPropertyModelBuilder.getContentTypes(shareParams, shareExtras));
false));
} }
@Test @Test
...@@ -227,12 +242,12 @@ public final class ShareSheetPropertyModelBuilderTest { ...@@ -227,12 +242,12 @@ public final class ShareSheetPropertyModelBuilderTest {
.setFileUris(new ArrayList<>(ImmutableList.of(Uri.EMPTY, Uri.EMPTY))) .setFileUris(new ArrayList<>(ImmutableList.of(Uri.EMPTY, Uri.EMPTY)))
.setFileContentType("*/*") .setFileContentType("*/*")
.build(); .build();
ChromeShareExtras shareExtras = new ChromeShareExtras.Builder().build();
assertEquals("Should contain correct content types.", assertEquals("Should contain correct content types.",
ImmutableSet.of(ContentType.LINK_PAGE_NOT_VISIBLE, ContentType.OTHER_FILE_TYPE, ImmutableSet.of(ContentType.LINK_PAGE_NOT_VISIBLE, ContentType.OTHER_FILE_TYPE,
ContentType.TEXT), ContentType.TEXT),
ShareSheetPropertyModelBuilder.getContentTypes(shareParams, /*isUrlOfPageVisible=*/ ShareSheetPropertyModelBuilder.getContentTypes(shareParams, shareExtras));
false));
} }
@Test @Test
...@@ -241,7 +256,7 @@ public final class ShareSheetPropertyModelBuilderTest { ...@@ -241,7 +256,7 @@ public final class ShareSheetPropertyModelBuilderTest {
public void getContentTypes_sharingHub15Disabled_returnsAllContentTypes() { public void getContentTypes_sharingHub15Disabled_returnsAllContentTypes() {
assertEquals("Should contain all content types.", assertEquals("Should contain all content types.",
ShareSheetPropertyModelBuilder.ALL_CONTENT_TYPES, ShareSheetPropertyModelBuilder.ALL_CONTENT_TYPES,
ShareSheetPropertyModelBuilder.getContentTypes(null, false)); ShareSheetPropertyModelBuilder.getContentTypes(null, null));
} }
@Test @Test
......
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