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

Commit 74ad28ff authored by TreeHugger Robot's avatar TreeHugger Robot
Browse files

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

Change-Id: I5cb48821cb1bd7cc4d88b33844af567dd9cfcf7a
parents df930075 936ebd03
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);
    }
}