1 /*
2  * Copyright (C) 2019 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 
17 package com.android.settings;
18 
19 import static com.google.common.truth.Truth.assertThat;
20 
21 import static org.mockito.Mockito.spy;
22 import static org.mockito.Mockito.when;
23 import static org.robolectric.Shadows.shadowOf;
24 
25 import android.app.Activity;
26 import android.content.Intent;
27 import android.view.View;
28 import android.widget.CheckBox;
29 
30 import org.junit.Before;
31 import org.junit.Test;
32 import org.junit.runner.RunWith;
33 import org.robolectric.Robolectric;
34 import org.robolectric.RobolectricTestRunner;
35 
36 @RunWith(RobolectricTestRunner.class)
37 public class ResetNetworkTest {
38     private Activity mActivity;
39     private ResetNetwork mResetNetwork;
40 
41     @Before
setUp()42     public void setUp() {
43         mActivity = Robolectric.setupActivity(Activity.class);
44         mResetNetwork = spy(new ResetNetwork());
45         when(mResetNetwork.getContext()).thenReturn(mActivity);
46         mResetNetwork.mEsimContainer = new View(mActivity);
47         mResetNetwork.mEsimCheckbox = new CheckBox(mActivity);
48     }
49 
50     @Test
showFinalConfirmation_checkboxVisible_eraseEsimChecked()51     public void showFinalConfirmation_checkboxVisible_eraseEsimChecked() {
52         mResetNetwork.mEsimContainer.setVisibility(View.VISIBLE);
53         mResetNetwork.mEsimCheckbox.setChecked(true);
54 
55         mResetNetwork.showFinalConfirmation();
56 
57         Intent intent = shadowOf(mActivity).getNextStartedActivity();
58         assertThat(intent.getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS)
59                 .getBoolean(MainClear.ERASE_ESIMS_EXTRA, false)).isTrue();
60     }
61 
62     @Test
showFinalConfirmation_checkboxVisible_eraseEsimUnchecked()63     public void showFinalConfirmation_checkboxVisible_eraseEsimUnchecked() {
64         mResetNetwork.mEsimContainer.setVisibility(View.VISIBLE);
65         mResetNetwork.mEsimCheckbox.setChecked(false);
66 
67         mResetNetwork.showFinalConfirmation();
68 
69         Intent intent = shadowOf(mActivity).getNextStartedActivity();
70         assertThat(intent.getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS)
71                 .getBoolean(MainClear.ERASE_ESIMS_EXTRA, false)).isFalse();
72     }
73 
74     @Test
showFinalConfirmation_checkboxGone_eraseEsimChecked()75     public void showFinalConfirmation_checkboxGone_eraseEsimChecked() {
76         mResetNetwork.mEsimContainer.setVisibility(View.GONE);
77         mResetNetwork.mEsimCheckbox.setChecked(true);
78 
79         mResetNetwork.showFinalConfirmation();
80 
81         Intent intent = shadowOf(mActivity).getNextStartedActivity();
82         assertThat(intent.getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS)
83                 .getBoolean(MainClear.ERASE_ESIMS_EXTRA, false)).isFalse();
84     }
85 
86     @Test
showFinalConfirmation_checkboxGone_eraseEsimUnchecked()87     public void showFinalConfirmation_checkboxGone_eraseEsimUnchecked() {
88         mResetNetwork.mEsimContainer.setVisibility(View.GONE);
89         mResetNetwork.mEsimCheckbox.setChecked(false);
90 
91         mResetNetwork.showFinalConfirmation();
92 
93         Intent intent = shadowOf(mActivity).getNextStartedActivity();
94         assertThat(intent.getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS)
95                 .getBoolean(MainClear.ERASE_ESIMS_EXTRA, false)).isFalse();
96     }
97 }
98