Commit 20fe65b7 authored by Tanmoy Mollik's avatar Tanmoy Mollik Committed by Commit Bot

[Android] Add test resource for user profile picture

Add a test resource to use in place of user profile picture in tests.
The tests that require it are also updated.

Bug: 1125452
Change-Id: I0b6323b4c9d76816e3216c14d9ca5cd338c60b9b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2401658Reviewed-by: default avatarBoris Sazonov <bsazonov@chromium.org>
Reviewed-by: default avatarAlice Wang <aliceywang@chromium.org>
Commit-Queue: Tanmoy Mollik <triploblastic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#815627}
parent 68eddc95
...@@ -88,8 +88,9 @@ public class BookmarkPersonalizedPromoRenderTest { ...@@ -88,8 +88,9 @@ public class BookmarkPersonalizedPromoRenderTest {
TestThreadUtils.runOnUiThreadBlocking( TestThreadUtils.runOnUiThreadBlocking(
() ()
-> mFakeProfileDataSource.setProfileData(account.name, -> mFakeProfileDataSource.setProfileData(account.name,
new ProfileDataSource.ProfileData( new ProfileDataSource.ProfileData(account.name,
account.name, null, "Full Name", "Given Name"))); mAccountManagerTestRule.createProfileImage(), "Full Name",
"Given Name")));
} }
@After @After
......
...@@ -5,10 +5,6 @@ ...@@ -5,10 +5,6 @@
package org.chromium.chrome.browser.ntp; package org.chromium.chrome.browser.ntp;
import android.accounts.Account; import android.accounts.Account;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.support.test.InstrumentationRegistry; import android.support.test.InstrumentationRegistry;
import android.view.View; import android.view.View;
...@@ -113,8 +109,9 @@ public class RecentTabsPageTest { ...@@ -113,8 +109,9 @@ public class RecentTabsPageTest {
TestThreadUtils.runOnUiThreadBlocking( TestThreadUtils.runOnUiThreadBlocking(
() ()
-> mFakeProfileDataSource.setProfileData(account.name, -> mFakeProfileDataSource.setProfileData(account.name,
new ProfileDataSource.ProfileData( new ProfileDataSource.ProfileData(account.name,
account.name, createAvatar(), "Full Name", "Given Name"))); mAccountManagerTestRule.createProfileImage(), "Full Name",
"Given Name")));
RecentTabsManager.forcePromoStateForTests( RecentTabsManager.forcePromoStateForTests(
RecentTabsManager.PromoState.PROMO_SIGNIN_PERSONALIZED); RecentTabsManager.PromoState.PROMO_SIGNIN_PERSONALIZED);
mPage = loadRecentTabsPage(); mPage = loadRecentTabsPage();
...@@ -129,8 +126,9 @@ public class RecentTabsPageTest { ...@@ -129,8 +126,9 @@ public class RecentTabsPageTest {
TestThreadUtils.runOnUiThreadBlocking( TestThreadUtils.runOnUiThreadBlocking(
() ()
-> mFakeProfileDataSource.setProfileData(account.name, -> mFakeProfileDataSource.setProfileData(account.name,
new ProfileDataSource.ProfileData( new ProfileDataSource.ProfileData(account.name,
account.name, createAvatar(), "Full Name", "Given Name"))); mAccountManagerTestRule.createProfileImage(), "Full Name",
"Given Name")));
RecentTabsManager.forcePromoStateForTests( RecentTabsManager.forcePromoStateForTests(
RecentTabsManager.PromoState.PROMO_SYNC_PERSONALIZED); RecentTabsManager.PromoState.PROMO_SYNC_PERSONALIZED);
mPage = loadRecentTabsPage(); mPage = loadRecentTabsPage();
...@@ -201,23 +199,4 @@ public class RecentTabsPageTest { ...@@ -201,23 +199,4 @@ public class RecentTabsPageTest {
Assert.assertTrue(InstrumentationRegistry.getInstrumentation().invokeContextMenuAction( Assert.assertTrue(InstrumentationRegistry.getInstrumentation().invokeContextMenuAction(
mActivityTestRule.getActivity(), contextMenuItemId, 0)); mActivityTestRule.getActivity(), contextMenuItemId, 0));
} }
/**
* TODO(https://crbug.com/1125452): Remove this method and use test only resource.
*/
private Bitmap createAvatar() {
final int avatarSize = 40;
Bitmap result = Bitmap.createBitmap(avatarSize, avatarSize, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(result);
canvas.drawColor(Color.RED);
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setColor(Color.BLUE);
canvas.drawCircle(0, 0, avatarSize, paint);
return result;
}
} }
...@@ -101,11 +101,10 @@ public class SyncErrorCardPreferenceTest { ...@@ -101,11 +101,10 @@ public class SyncErrorCardPreferenceTest {
TestThreadUtils.runOnUiThreadBlocking(() -> { TestThreadUtils.runOnUiThreadBlocking(() -> {
mFakeProfileSyncService = new FakeProfileSyncService(); mFakeProfileSyncService = new FakeProfileSyncService();
ProfileSyncService.overrideForTests(mFakeProfileSyncService); ProfileSyncService.overrideForTests(mFakeProfileSyncService);
// TODO(https://crbug.com/1125452): Use test resource for profile avatar instead of
// null.
mFakeProfileDataSource.setProfileData(account.name, mFakeProfileDataSource.setProfileData(account.name,
new ProfileDataSource.ProfileData( new ProfileDataSource.ProfileData(account.name,
account.name, null, "Full Name", "Given Name")); mAccountManagerTestRule.createProfileImage(), "Full Name",
"Given Name"));
AndroidSyncSettings.overrideForTests(mAndroidSyncSettingsMock); AndroidSyncSettings.overrideForTests(mAndroidSyncSettingsMock);
when(mAndroidSyncSettingsMock.isChromeSyncEnabled()).thenReturn(true); when(mAndroidSyncSettingsMock.isChromeSyncEnabled()).thenReturn(true);
}); });
......
...@@ -5,19 +5,25 @@ ...@@ -5,19 +5,25 @@
package org.chromium.chrome.test.util.browser.signin; package org.chromium.chrome.test.util.browser.signin;
import android.accounts.Account; import android.accounts.Account;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.appcompat.content.res.AppCompatResources;
import org.junit.rules.TestRule; import org.junit.rules.TestRule;
import org.junit.runner.Description; import org.junit.runner.Description;
import org.junit.runners.model.Statement; import org.junit.runners.model.Statement;
import org.chromium.base.ContextUtils;
import org.chromium.chrome.browser.sync.ProfileSyncService; import org.chromium.chrome.browser.sync.ProfileSyncService;
import org.chromium.components.signin.AccountManagerFacadeProvider; import org.chromium.components.signin.AccountManagerFacadeProvider;
import org.chromium.components.signin.AccountUtils; import org.chromium.components.signin.AccountUtils;
import org.chromium.components.signin.ProfileDataSource; import org.chromium.components.signin.ProfileDataSource;
import org.chromium.components.signin.base.CoreAccountId; import org.chromium.components.signin.base.CoreAccountId;
import org.chromium.components.signin.base.CoreAccountInfo; import org.chromium.components.signin.base.CoreAccountInfo;
import org.chromium.components.signin.core.browser.javatests.R;
import org.chromium.components.signin.test.util.FakeAccountManagerFacade; import org.chromium.components.signin.test.util.FakeAccountManagerFacade;
import org.chromium.components.signin.test.util.FakeProfileDataSource; import org.chromium.components.signin.test.util.FakeProfileDataSource;
import org.chromium.content_public.browser.test.util.TestThreadUtils; import org.chromium.content_public.browser.test.util.TestThreadUtils;
...@@ -210,4 +216,18 @@ public class AccountManagerTestRule implements TestRule { ...@@ -210,4 +216,18 @@ public class AccountManagerTestRule implements TestRule {
SigninTestUtil.signOut(); SigninTestUtil.signOut();
mIsSignedIn = false; mIsSignedIn = false;
} }
/**
* Returns a profile image created from test resource.
*/
public Bitmap createProfileImage() {
Drawable drawable = AppCompatResources.getDrawable(
ContextUtils.getApplicationContext(), R.drawable.test_profile_picture);
Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(),
drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
drawable.draw(canvas);
return bitmap;
}
} }
...@@ -102,6 +102,7 @@ android_library("signin_java_test_support") { ...@@ -102,6 +102,7 @@ android_library("signin_java_test_support") {
testonly = true testonly = true
deps = [ deps = [
":java", ":java",
":signin_test_resources",
"//base:base_java", "//base:base_java",
"//base:base_java_test_support", "//base:base_java_test_support",
"//third_party/android_deps:androidx_annotation_annotation_java", "//third_party/android_deps:androidx_annotation_annotation_java",
...@@ -116,4 +117,12 @@ android_library("signin_java_test_support") { ...@@ -116,4 +117,12 @@ android_library("signin_java_test_support") {
"javatests/src/org/chromium/components/signin/test/util/FakeAccountManagerFacade.java", "javatests/src/org/chromium/components/signin/test/util/FakeAccountManagerFacade.java",
"javatests/src/org/chromium/components/signin/test/util/FakeProfileDataSource.java", "javatests/src/org/chromium/components/signin/test/util/FakeProfileDataSource.java",
] ]
resources_package = "org.chromium.components.signin.core.browser.javatests"
}
android_resources("signin_test_resources") {
testonly = true
create_srcjar = false
sources = [ "javatests/res/drawable/test_profile_picture.xml" ]
} }
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2020 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:targetApi="21"
android:width="40dp"
android:height="40dp"
android:viewportWidth="192"
android:viewportHeight="192">
<path
android:fillColor="#1E8E3E"
android:pathData="M96,0C43.01,0,0,43.01,0,96s43.01,96,96,96s96-43.01,96-96S148.99,0,96,0z" />
<path
android:fillColor="#4C8BF5"
android:pathData="M96,85.09c13.28,0,24-10.72,24-24c0-13.28-10.72-24-24-24s-24,10.72-24,24
C72,74.37,82.72,85.09,96,85.09z" />
<path
android:fillColor="#F4C20D"
android:pathData="M96,99.27c-29.33,0-52.36,14.18-52.36,27.27c11.09,17.06,30.51,28.36,52.36,28.36
s41.27-11.3,52.36-28.36C148.36,113.45,125.33,99.27,96,99.27z" />
<path
android:pathData="M 0 0 H 192 V 192 H 0 V 0 Z" />
</vector>
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