FooterPreferenceTest.java revision 5efe8f0a096fd13d5ecdacf90447e0b4ef132967
15efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang/*
25efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang * Copyright (C) 2016 The Android Open Source Project
35efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang *
45efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang * Licensed under the Apache License, Version 2.0 (the "License");
55efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang * you may not use this file except in compliance with the License.
65efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang * You may obtain a copy of the License at
75efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang *
85efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang *      http://www.apache.org/licenses/LICENSE-2.0
95efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang *
105efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang * Unless required by applicable law or agreed to in writing, software
115efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang * distributed under the License is distributed on an "AS IS" BASIS,
125efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
135efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang * See the License for the specific language governing permissions and
145efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang * limitations under the License.
155efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang */
165efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang
175efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Langpackage com.android.settingslib.widget;
185efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang
195efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Langimport android.content.Context;
205efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Langimport android.support.v7.preference.PreferenceViewHolder;
215efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Langimport android.text.method.LinkMovementMethod;
225efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Langimport android.view.LayoutInflater;
235efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Langimport android.widget.TextView;
245efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang
255efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Langimport com.android.settingslib.R;
265efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Langimport com.android.settingslib.SettingLibRobolectricTestRunner;
275efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Langimport com.android.settingslib.TestConfig;
285efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang
295efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Langimport org.junit.Before;
305efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Langimport org.junit.Test;
315efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Langimport org.junit.runner.RunWith;
325efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Langimport org.robolectric.annotation.Config;
335efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Langimport org.robolectric.shadows.ShadowApplication;
345efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang
355efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Langimport static com.google.common.truth.Truth.assertThat;
365efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang
375efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang@RunWith(SettingLibRobolectricTestRunner.class)
385efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
395efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Langpublic class FooterPreferenceTest {
405efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang
415efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang    private Context mContext;
425efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang
435efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang    @Before
445efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang    public void setUp() {
455efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang        mContext = ShadowApplication.getInstance().getApplicationContext();
465efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang    }
475efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang
485efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang    @Test
495efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang    public void createNewPreference_shouldSetKeyAndOrder() {
505efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang        final FooterPreference preference = new FooterPreference(mContext);
515efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang
525efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang        assertThat(preference.getKey()).isEqualTo(FooterPreference.KEY_FOOTER);
535efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang        assertThat(preference.getOrder()).isEqualTo(FooterPreference.ORDER_FOOTER);
545efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang    }
555efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang
565efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang    @Test
575efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang    public void bindPreference_shouldLinkifyContent() {
585efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang        final FooterPreference preference = new FooterPreference(mContext);
595efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang        final PreferenceViewHolder holder = PreferenceViewHolder.createInstanceForTests(
605efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang                LayoutInflater.from(mContext).inflate(R.layout.preference_footer, null));
615efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang
625efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang        preference.onBindViewHolder(holder);
635efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang        assertThat(((TextView) holder.findViewById(android.R.id.title)).getMovementMethod())
645efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang                .isInstanceOf(LinkMovementMethod.class);
655efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang    }
665efe8f0a096fd13d5ecdacf90447e0b4ef132967Juan Lang}
67