1 /*
2  * Copyright (C) 2018 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.android.settings.bluetooth;
17 
18 import static com.google.common.truth.Truth.assertThat;
19 
20 import android.view.inputmethod.EditorInfo;
21 import android.widget.TextView;
22 
23 import org.junit.Before;
24 import org.junit.Test;
25 import org.junit.runner.RunWith;
26 import org.mockito.MockitoAnnotations;
27 import org.robolectric.RobolectricTestRunner;
28 import org.robolectric.RuntimeEnvironment;
29 
30 @RunWith(RobolectricTestRunner.class)
31 public class BluetoothNameDialogFragmentTest {
32 
33     private TestBluetoothNameDialogFragment mBluetoothNameDialogFragment;
34     private TextView mTextView;
35 
36     @Before
setUp()37     public void setUp() {
38         MockitoAnnotations.initMocks(this);
39 
40         mBluetoothNameDialogFragment = new TestBluetoothNameDialogFragment();
41         mTextView = new TextView(RuntimeEnvironment.application);
42     }
43 
44     @Test
onEditorAction_dialogNull_shouldNotCrash()45     public void onEditorAction_dialogNull_shouldNotCrash() {
46         mBluetoothNameDialogFragment.mAlertDialog = null;
47 
48         // Should not crash
49         assertThat(
50                 mBluetoothNameDialogFragment.onEditorAction(mTextView, EditorInfo.IME_ACTION_DONE,
51                         null)).isTrue();
52     }
53 
54 
55     /**
56      * Test fragment for {@link BluetoothNameDialogFragment} to test common methods
57      */
58     public static class TestBluetoothNameDialogFragment extends BluetoothNameDialogFragment {
59 
60         @Override
getDialogTitle()61         protected int getDialogTitle() {
62             return 0;
63         }
64 
65         @Override
getDeviceName()66         protected String getDeviceName() {
67             return null;
68         }
69 
70         @Override
setDeviceName(String deviceName)71         protected void setDeviceName(String deviceName) {
72 
73         }
74 
75         @Override
getMetricsCategory()76         public int getMetricsCategory() {
77             return 0;
78         }
79     }
80 }
81