Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 936ebd03 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Set the max length of user name field in Profile info" into qt-qpr1-dev

parents f8396c5c 59f73429
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@
        android:labelFor="@id/user_photo"
        android:inputType="text|textCapWords"
        android:selectAllOnFocus="true"
        android:hint="@string/user_nickname"/>
        android:hint="@string/user_nickname"
        android:maxLength="100"/>

</LinearLayout>
+25 −18
Original line number Diff line number Diff line
@@ -18,7 +18,6 @@ package com.android.settings.users;

import static com.google.common.truth.Truth.assertThat;

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.same;
import static org.mockito.Mockito.mock;
@@ -26,18 +25,20 @@ import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import android.content.Context;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;

import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;

import com.android.settings.R;
import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;

import java.util.stream.Collectors;
import java.util.stream.Stream;

import org.junit.Before;
import org.junit.Test;
@@ -47,20 +48,15 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.android.controller.ActivityController;
import org.robolectric.annotation.Config;

@RunWith(RobolectricTestRunner.class)
public class EditUserInfoControllerTest {
    private static final int MAX_USER_NAME_LENGTH = 100;

    @Mock
    private Fragment mFragment;
    @Mock
    private LayoutInflater mInflater;
    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
    private View mDialogContent;
    @Mock
    private EditText mUserName;
    @Mock
    private ImageView mPhotoView;
    @Mock
    private Drawable mCurrentIcon;

    private FragmentActivity mActivity;
@@ -86,12 +82,6 @@ public class EditUserInfoControllerTest {
        MockitoAnnotations.initMocks(this);
        mActivity = spy(ActivityController.of(new FragmentActivity()).get());
        when(mFragment.getActivity()).thenReturn(mActivity);
        when(mActivity.getLayoutInflater()).thenReturn(mInflater);
        when(mInflater.inflate(eq(R.layout.edit_user_info_dialog_content), any())).thenReturn(
                mDialogContent);
        when(mDialogContent.findViewById(eq(R.id.user_name))).thenReturn(mUserName);
        when(mDialogContent.findViewById(eq(R.id.user_photo))).thenReturn(mPhotoView);
        when(mPhotoView.getContext()).thenReturn((Context) mActivity);
        mController = new TestEditUserInfoController();
    }

@@ -106,4 +96,21 @@ public class EditUserInfoControllerTest {
        assertThat(photoController).isNotNull();
        verify(photoController).onActivityResult(eq(0), eq(0), same(resultData));
    }

    @Test
    @Config(shadows = ShadowAlertDialogCompat.class)
    public void userNameView_inputLongName_shouldBeConstrained() {
        // generate a string of 200 'A's
        final String longName = Stream.generate(
                () -> String.valueOf('A')).limit(200).collect(Collectors.joining());
        final AlertDialog dialog = (AlertDialog) mController.createDialog(mFragment, mCurrentIcon,
                "test user", R.string.profile_info_settings_title, null,
                android.os.Process.myUserHandle());
        final EditText userName = ShadowAlertDialogCompat.shadowOf(dialog).getView()
                .findViewById(R.id.user_name);

        userName.setText(longName);

        assertThat(userName.getText().length()).isEqualTo(MAX_USER_NAME_LENGTH);
    }
}