1fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang/* 2fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang * Copyright (C) 2017 The Android Open Source Project 3fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang * 4fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang * Licensed under the Apache License, Version 2.0 (the "License"); 5fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang * you may not use this file except in compliance with the License. 6fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang * You may obtain a copy of the License at 7fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang * 8fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang * http://www.apache.org/licenses/LICENSE-2.0 9fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang * 10fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang * Unless required by applicable law or agreed to in writing, software 11fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang * distributed under the License is distributed on an "AS IS" BASIS, 12fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang * See the License for the specific language governing permissions and 14fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang * limitations under the License. 15fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang */ 16fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang 17fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhangpackage com.android.settingslib; 18fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang 19fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang 205c50dc11b857dfdc265a4e0aa80fd7d17a62e7f6James Lemieuximport static org.mockito.Mockito.RETURNS_DEEP_STUBS; 215c50dc11b857dfdc265a4e0aa80fd7d17a62e7f6James Lemieuximport static org.mockito.Mockito.mock; 225c50dc11b857dfdc265a4e0aa80fd7d17a62e7f6James Lemieuximport static org.mockito.Mockito.never; 235c50dc11b857dfdc265a4e0aa80fd7d17a62e7f6James Lemieuximport static org.mockito.Mockito.verify; 245c50dc11b857dfdc265a4e0aa80fd7d17a62e7f6James Lemieuximport static org.mockito.Mockito.when; 255c50dc11b857dfdc265a4e0aa80fd7d17a62e7f6James Lemieux 26fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhangimport android.content.Context; 27fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhangimport android.support.v7.preference.Preference; 28fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhangimport android.support.v7.preference.PreferenceViewHolder; 29fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhangimport android.view.View; 30fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhangimport android.widget.TextView; 31fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang 32fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhangimport org.junit.Before; 33fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhangimport org.junit.Test; 34fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhangimport org.junit.runner.RunWith; 35fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhangimport org.mockito.Mock; 36fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhangimport org.mockito.MockitoAnnotations; 37fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang 384ca9ebd5d355b72eb6076b5cce68968ea9d794c3Tony Mantler@RunWith(SettingsLibRobolectricTestRunner.class) 39fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhangpublic class RestrictedPreferenceHelperTest { 40fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang 41fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang @Mock 42fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang private Context mContext; 43fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang @Mock 44fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang private Preference mPreference; 45fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang 46fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang private PreferenceViewHolder mViewHolder; 47fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang private RestrictedPreferenceHelper mHelper; 48fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang 49fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang @Before 50fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang public void setUp() { 51fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang MockitoAnnotations.initMocks(this); 5281d53516abaf15f8443f715b96ab35c71202c28cFilip Pavlis mViewHolder = PreferenceViewHolder.createInstanceForTests(mock(View.class)); 53fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang mHelper = new RestrictedPreferenceHelper(mContext, mPreference, null); 54fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang } 55fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang 56fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang @Test 57fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang public void bindPreference_disabled_shouldDisplayDisabledSummary() { 58fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang final TextView summaryView = mock(TextView.class, RETURNS_DEEP_STUBS); 59fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang when(mViewHolder.itemView.findViewById(android.R.id.summary)) 60fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang .thenReturn(summaryView); 61fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang when(summaryView.getContext().getText(R.string.disabled_by_admin_summary_text)) 62fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang .thenReturn("test"); 63fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang 64fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang mHelper.useAdminDisabledSummary(true); 65fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang mHelper.setDisabledByAdmin(new RestrictedLockUtils.EnforcedAdmin()); 66fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang mHelper.onBindViewHolder(mViewHolder); 67fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang 68fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang verify(summaryView).setText("test"); 69fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang verify(summaryView, never()).setVisibility(View.GONE); 70fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang } 71fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang 72fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang @Test 73fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang public void bindPreference_notDisabled_shouldNotHideSummary() { 74fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang final TextView summaryView = mock(TextView.class, RETURNS_DEEP_STUBS); 75fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang when(mViewHolder.itemView.findViewById(android.R.id.summary)) 76fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang .thenReturn(summaryView); 77fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang when(summaryView.getContext().getText(R.string.disabled_by_admin_summary_text)) 78fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang .thenReturn("test"); 79fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang when(summaryView.getText()).thenReturn("test"); 80fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang 81fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang mHelper.useAdminDisabledSummary(true); 82fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang mHelper.setDisabledByAdmin(null); 83fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang mHelper.onBindViewHolder(mViewHolder); 84fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang 85fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang verify(summaryView).setText(null); 86fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang verify(summaryView, never()).setVisibility(View.GONE); 87fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang } 88fdfc88faef4d722b7ae09d8acd7a57a511b3eb72Fan Zhang} 89