1150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal/* 2150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Copyright (C) 2018 The Android Open Source Project 3150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * 4150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Licensed under the Apache License, Version 2.0 (the "License"); 5150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * you may not use this file except in compliance with the License. 6150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * You may obtain a copy of the License at 7150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * 8150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * http://www.apache.org/licenses/LICENSE-2.0 9150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * 10150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Unless required by applicable law or agreed to in writing, software 11150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * distributed under the License is distributed on an "AS IS" BASIS, 12150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * See the License for the specific language governing permissions and 14150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * limitations under the License. 15150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 16150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 17150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawalpackage com.android.car.setupwizardlib; 18150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 19150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawalimport static com.google.common.truth.Truth.assertThat; 20150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 216fd8a4056d8138b7040fe23e1cf1d4772681fbbaRoshan Agrawalimport android.app.Activity; 22150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawalimport android.os.Bundle; 236fd8a4056d8138b7040fe23e1cf1d4772681fbbaRoshan Agrawalimport android.support.v4.app.Fragment; 24150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawalimport android.view.View; 25150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawalimport android.widget.Button; 26150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawalimport android.widget.ImageView; 27150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 28150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawalimport com.android.car.setupwizardlib.robolectric.BaseRobolectricTest; 29150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawalimport com.android.car.setupwizardlib.robolectric.CarSetupWizardLibRobolectricTestRunner; 30150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawalimport com.android.car.setupwizardlib.robolectric.TestHelper; 31150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 32150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawalimport org.junit.Before; 33150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawalimport org.junit.Test; 34150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawalimport org.junit.runner.RunWith; 35150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawalimport org.mockito.Mockito; 36150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawalimport org.robolectric.Robolectric; 37150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 38150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal/** 39150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Unit tests for the {@link BaseActivity}. 40150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 41150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal@RunWith(CarSetupWizardLibRobolectricTestRunner.class) 42150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawalpublic class BaseActivityTest extends BaseRobolectricTest { 43150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal BaseActivity mBaseActivity; 44150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal CarSetupWizardLayout mCarSetupWizardLayout; 45150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 46150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Before 47150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void setupBaseActivityAndLayout() { 48150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal mBaseActivity = (BaseActivity) Robolectric.buildActivity(BaseActivity.class).create().get(); 49150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal mCarSetupWizardLayout = mBaseActivity.getCarSetupWizardLayout(); 50150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 51150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 52150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 53150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that the BaseActivity's content view is set to be a CarSetupWizardLayout 54150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 55150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 56150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testContentViewIsCarSetupWizardLayout() { 57150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal View contentView = mBaseActivity.findViewById(R.id.car_setup_wizard_layout); 58150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal assertThat(contentView).isNotNull(); 59150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal assertThat(contentView instanceof CarSetupWizardLayout).isTrue(); 60150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 61150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 62150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal private BaseActivity createSpyBaseActivity() { 63150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal BaseActivity spyBaseActivity = Mockito.spy( 64150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal (BaseActivity) Robolectric.buildActivity(BaseActivity.class).get()); 65150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal spyBaseActivity.onCreate(null); 66150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 67150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal return spyBaseActivity; 68150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 69150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 70150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 71150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that the BaseActivity sets the back button listener to call 72150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * {@link BaseActivity#handleBackButton()} when created. 73150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 74150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 75150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testBackButtonListenerIsDefault() { 76150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal BaseActivity spyBaseActivity = createSpyBaseActivity(); 77150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 78150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal ImageView backButton = (ImageView) spyBaseActivity.findViewById( 79150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal R.id.back_button); 80150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal backButton.performClick(); 81150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 82150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal Mockito.verify(spyBaseActivity).handleBackButton(); 83150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 84150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 85150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 86150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that the BaseActivity sets the secondary toolbar button listener to the default when 87150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * created. 88150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 89150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 90150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testSecondaryToolbarButtonListenerIsDefault() { 91150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal BaseActivity spyBaseActivity = createSpyBaseActivity(); 92150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 93150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal Button secondaryToolBarButton = (Button) spyBaseActivity.findViewById( 94150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal R.id.secondary_toolbar_button); 95150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal secondaryToolBarButton.performClick(); 96150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 976fd8a4056d8138b7040fe23e1cf1d4772681fbbaRoshan Agrawal Mockito.verify(spyBaseActivity).nextAction(Activity.RESULT_OK); 98150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 99150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 100150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 101150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 102150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that the BaseActivity sets the primary toolbar button listener to the default when 103150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * created. 104150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 105150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 106150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testPrimaryToolbarButtonListenerIsDefault() { 107150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal BaseActivity spyBaseActivity = createSpyBaseActivity(); 108150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 109150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal Button primaryToolBarButton = (Button) spyBaseActivity.findViewById( 110150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal R.id.primary_toolbar_button); 111150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal primaryToolBarButton.performClick(); 112150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 1136fd8a4056d8138b7040fe23e1cf1d4772681fbbaRoshan Agrawal Mockito.verify(spyBaseActivity).nextAction(Activity.RESULT_OK); 114150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 115150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 116150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal private BaseActivity getStartedBaseActivity() { 117150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal return (BaseActivity) Robolectric.buildActivity(BaseActivity.class).create().start().get(); 118150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 119150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 120150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal private BaseActivity getSavedInstanceStateBaseActivity() { 121150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal return (BaseActivity) Robolectric.buildActivity( 122150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal BaseActivity.class).create().saveInstanceState(new Bundle()).get(); 123150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 124150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 125150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 126150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that fragment commits are allowed after {@link BaseActivity#onStart()} is called. 127150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 128150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 129150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testFragmentCommitsAllowedAfterOnStart() { 130150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal assertThat(getStartedBaseActivity().getAllowFragmentCommits()).isTrue(); 131150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 132150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 133150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 134150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that fragment commits are not allowed after {@link BaseActivity#onSaveInstanceState } 135150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * is called. 136150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 137150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 138150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testFragmentCommitsNotAllowedAfterOnSavedInstanceState() { 139150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal assertThat(getSavedInstanceStateBaseActivity().getAllowFragmentCommits()).isFalse(); 140150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 141150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 142150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 143150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 144150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that {@link BaseActivity#setContentFragment} sets the content fragment and calls the 145150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * expected methods when fragment commits are allowed. 146150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 147150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 148150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testSetContentFragmentWhenFragmentCommitsAllowed() { 149150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal BaseActivity spyBaseActivity = Mockito.spy(getStartedBaseActivity()); 150150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 151150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal Fragment fragment = new Fragment(); 152150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal spyBaseActivity.setContentFragment(fragment); 153150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 154150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal assertThat(spyBaseActivity.getContentFragment()).isEqualTo(fragment); 155150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal assertThat(spyBaseActivity.getSupportFragmentManager().getBackStackEntryCount()).isEqualTo( 156150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 0); 157150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal // Verify that onContentFragmentSet is called with the test fragment 158150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal Mockito.verify(spyBaseActivity).onContentFragmentSet(fragment); 159150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 160150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 161150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 162150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that {@link BaseActivity#setContentFragment} does nothing when fragment commits are not 163150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * allowed. 164150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 165150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 166150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testSetContentFragmentWhenFragmentCommitsNotAllowed() { 167150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal BaseActivity spyBaseActivity = Mockito.spy(getSavedInstanceStateBaseActivity()); 168150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 169150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal Fragment fragment = new Fragment(); 170150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal spyBaseActivity.setContentFragment(fragment); 171150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 172150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal assertThat(spyBaseActivity.getContentFragment()).isEqualTo(null); 173150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal assertThat(spyBaseActivity.getSupportFragmentManager().getBackStackEntryCount()).isEqualTo( 174150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 0); 175150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal // Verify that onContentFragmentSet is not called 176150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal Mockito.verify(spyBaseActivity, Mockito.times(0)).onContentFragmentSet(fragment); 177150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 178150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 179150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 180150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that {@link BaseActivity#setContentFragmentWithBackstack)} sets the content fragment, 181150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * adds it to the fragment backstack, and calls the expected methods when fragment commits 182150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * are allowed. 183150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 184150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 185150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testSetContentFragmentWithBackstackWhenFragmentCommitsAllowed() { 186150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal BaseActivity spyBaseActivity = Mockito.spy(getStartedBaseActivity()); 187150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 188150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal Fragment fragment = new Fragment(); 189150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal spyBaseActivity.setContentFragmentWithBackstack(fragment); 190150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 191150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal assertThat(spyBaseActivity.getContentFragment()).isEqualTo(fragment); 192150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal assertThat(spyBaseActivity.getSupportFragmentManager().getBackStackEntryCount()).isEqualTo( 193150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 1); 194150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal // Verify that onContentFragmentSet is called with the test fragment 195150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal Mockito.verify(spyBaseActivity).onContentFragmentSet(fragment); 196150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 197150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 198150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 199150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that {@link BaseActivity#setContentFragmentWithBackstack)} does nothing when fragment 200150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * commits are not allowed. 201150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 202150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 203150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testSetContentFragmentWithBackstackWhenFragmentCommitsNotAllowed() { 204150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal BaseActivity spyBaseActivity = Mockito.spy(getSavedInstanceStateBaseActivity()); 205150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 206150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal Fragment fragment = new Fragment(); 207150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal spyBaseActivity.setContentFragment(fragment); 208150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 209150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal assertThat(spyBaseActivity.getContentFragment()).isEqualTo(null); 210150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal assertThat(spyBaseActivity.getSupportFragmentManager().getBackStackEntryCount()).isEqualTo( 211150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 0); 212150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal // Verify that onContentFragmentSet is not called 213150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal Mockito.verify(spyBaseActivity, Mockito.times(0)).onContentFragmentSet(fragment); 214150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 215150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 216150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 217150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that {@link BaseActivity#popBackStackImmediate()} returns false when no fragment is 218150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * added to the backstack. 219150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 220150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 221150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testPopBackStackImmediateWithEmptyStack() { 222150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal assertThat(mBaseActivity.popBackStackImmediate()).isEqualTo(false); 223150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 224150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 225150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 226150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that {@link BaseActivity#popBackStackImmediate()} returns true when a fragment is 227150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * added to the backstack and that the fragment is popped off of the backstack. 228150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 229150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 230150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testPopBackStackImmediateWithFragmentInStack() { 231150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal Fragment fragment = new Fragment(); 232150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal mBaseActivity.setContentFragmentWithBackstack(fragment); 233150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal assertThat(mBaseActivity.popBackStackImmediate()).isEqualTo(true); 234150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 235150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal assertThat(mBaseActivity.getContentFragment()).isNull(); 236150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 237150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 238150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 239150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that {@link BaseActivity#getContentFragment()} returns the content fragment. 240150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 241150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 242150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testGetContentFragment() { 243150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal Fragment fragment = new Fragment(); 244150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal mBaseActivity.setContentFragment(fragment); 245150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 246150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal assertThat(mBaseActivity.getContentFragment()).isEqualTo( 247150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal mBaseActivity.getSupportFragmentManager().findFragmentByTag( 248150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal mBaseActivity.CONTENT_FRAGMENT_TAG)); 249150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 250150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 251150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 252150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that {@link BaseActivity#setContentLayout} adds the specified layout to the 253150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * BaseActivity. 254150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 255150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 256150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testSetContentLayout() { 257150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal mBaseActivity.setContentLayout(R.layout.base_activity_test_layout); 258150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal View contentLayout = mBaseActivity.findViewById(R.id.content_layout); 259150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal assertThat(contentLayout).isNotNull(); 260150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 261150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 262150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 263150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that {@link BaseActivity#finishAction()} results in a call to 264150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * {@link BaseActivity#finish}. 265150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 266150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 267150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testFinishAction() { 268150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal BaseActivity spyBaseActivity = Mockito.spy(mBaseActivity); 269150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal spyBaseActivity.finishAction(); 270150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 271150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal Mockito.verify(spyBaseActivity).finish(); 272150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 273150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 274150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 275150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that {@link BaseActivity#finishAction(int)} )} results in a call to 276150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * {@link BaseActivity#nextAction} and {@link BaseActivity#finish}. 277150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 278150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 279150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testFinishActionWithResultCode() { 280150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal BaseActivity spyBaseActivity = Mockito.spy(mBaseActivity); 281150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal spyBaseActivity.finishAction(BaseActivity.RESULT_OK); 282150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 283150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal Mockito.verify(spyBaseActivity).nextAction(BaseActivity.RESULT_OK, null); 284150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal Mockito.verify(spyBaseActivity).finish(); 285150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 286150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 287150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 288150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that {@link BaseActivity#setBackButtonVisible} sets the back button visible/not visible. 289150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 290150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 291150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testSetBackButtonVisibleTrue() { 292150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal mBaseActivity.setBackButtonVisible(true); 293150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal TestHelper.assertViewVisible(mCarSetupWizardLayout.getBackButton()); 294150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 295150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 296150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 297150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that {@link BaseActivity#setBackButtonVisible} sets the back button visible/not visible. 298150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 299150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 300150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testSetBackButtonVisibleFalse() { 301150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal mBaseActivity.setBackButtonVisible(false); 302150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal TestHelper.assertViewNotVisible(mCarSetupWizardLayout.getBackButton()); 303150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 304150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 305150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 306150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that {@link BaseActivity#setToolbarTitleVisible} sets the toolbar title visible/not 307150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * visible. 308150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 309150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 310150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testSetToolbarTitleVisibleTrue() { 311150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal mBaseActivity.setToolbarTitleVisible(true); 312150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal TestHelper.assertViewVisible(mCarSetupWizardLayout.getToolbarTitle()); 313150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 314150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 315150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 316150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that {@link BaseActivity#setToolbarTitleVisible} sets the toolbar button visible/not 317150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * visible. 318150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 319150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 320150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testSetToolbarTitleVisibleFalse() { 321150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal mBaseActivity.setToolbarTitleVisible(false); 322150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal TestHelper.assertViewNotVisible(mCarSetupWizardLayout.getToolbarTitle()); 323150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 324150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 325150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 326150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that {@link BaseActivity#setToolbarTitleText(String)} sets the toolbar title text. 327150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 328150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 329150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testSetToolbarTitleText() { 330150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal mBaseActivity.setToolbarTitleText("title text"); 331150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal TestHelper.assertTextEqual(mCarSetupWizardLayout.getToolbarTitle(), "title text"); 332150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 333150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 334150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 335150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that {@link BaseActivity#setPrimaryToolbarButtonVisible} sets the primary toolbar button 336150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * visible/not visible. 337150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 338150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 339150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testSetPrimaryToolbarButtonVisibleTrue() { 340150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal mBaseActivity.setPrimaryToolbarButtonVisible(true); 341150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal TestHelper.assertViewVisible(mCarSetupWizardLayout.getPrimaryToolbarButton()); 342150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 343150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 344150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 345150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that {@link BaseActivity#setPrimaryToolbarButtonVisible} sets the primary toolbar button 346150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * visible/not visible. 347150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 348150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 349150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testSetPrimaryToolbarButtonVisibleFalse() { 350150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal mBaseActivity.setPrimaryToolbarButtonVisible(false); 351150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal TestHelper.assertViewNotVisible(mCarSetupWizardLayout.getPrimaryToolbarButton()); 352150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 353150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 354150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 355150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that {@link BaseActivity#setPrimaryToolbarButtonEnabled} sets the primary toolbar button 356150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * visible/not visible. 357150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 358150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 359150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testSetPrimaryToolbarButtonEnabledTrue() { 360150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal mBaseActivity.setPrimaryToolbarButtonEnabled(true); 361150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal TestHelper.assertViewEnabled(mCarSetupWizardLayout.getPrimaryToolbarButton()); 362150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 363150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 364150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 365150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that {@link BaseActivity#setPrimaryToolbarButtonEnabled} sets the primary toolbar button 366150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * visible/not visible. 367150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 368150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 369150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testSetPrimaryToolbarButtonEnabledFalse() { 370150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal mBaseActivity.setPrimaryToolbarButtonEnabled(false); 371150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal TestHelper.assertViewNotEnabled(mCarSetupWizardLayout.getPrimaryToolbarButton()); 372150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 373150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 374150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 375150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that {@link BaseActivity#setPrimaryToolbarButtonText(String)} sets the primary 376150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * toolbar title text. 377150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 378150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 379150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testSetPrimaryToolbarButtonText() { 380150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal mBaseActivity.setPrimaryToolbarButtonText("button text"); 381150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal TestHelper.assertTextEqual(mCarSetupWizardLayout.getPrimaryToolbarButton(), "button text"); 382150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 383150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 384150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 385150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that {@link BaseActivity#setPrimaryToolbarButtonFlat(boolean)} sets the primary toolbar 386150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * button flat/not flat. 387150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 388150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 389150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testSetPrimaryToolbarButtonFlatTrue() { 390150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal mBaseActivity.setPrimaryToolbarButtonFlat(true); 391150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal assertThat(mCarSetupWizardLayout.getPrimaryToolbarButtonFlat()).isTrue(); 392150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 393150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 394150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 395150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that {@link BaseActivity#setPrimaryToolbarButtonFlat(boolean)} sets the primary toolbar 396150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * button flat/not flat. 397150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 398150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 399150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testSetPrimaryToolbarButtonFlatFalse() { 400150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal mBaseActivity.setPrimaryToolbarButtonFlat(false); 401150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal assertThat(mCarSetupWizardLayout.getPrimaryToolbarButtonFlat()).isFalse(); 402150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 403150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 404150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 405150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that {@link BaseActivity#setPrimaryToolbarButtonOnClickListener} sets the primary 406150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * toolbar button's click listener. 407150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 408150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 409150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testSetPrimaryToolbarButtonOnClickListener() { 410150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal View.OnClickListener spyListener = TestHelper.createSpyListener(); 411150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 412150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal mBaseActivity.setPrimaryToolbarButtonOnClickListener(spyListener); 413150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal mBaseActivity.getCarSetupWizardLayout().getPrimaryToolbarButton().performClick(); 414150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal Mockito.verify(spyListener).onClick(Mockito.any()); 415150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 416150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 417150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 418150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that {@link BaseActivity#setSecondaryToolbarButtonVisible} sets the secondary toolbar 419150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * button visible/not visible. 420150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 421150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 422150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testSetSecondaryToolbarButtonVisibleTrue() { 423150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal mBaseActivity.setSecondaryToolbarButtonVisible(true); 424150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal TestHelper.assertViewVisible(mCarSetupWizardLayout.getSecondaryToolbarButton()); 425150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 426150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 427150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 428150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that {@link BaseActivity#setSecondaryToolbarButtonVisible} sets the secondary toolbar 429150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * button visible/not visible. 430150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 431150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 432150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testSetSecondaryToolbarButtonVisibleFalse() { 433150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal mBaseActivity.setSecondaryToolbarButtonVisible(false); 434150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal TestHelper.assertViewNotVisible(mCarSetupWizardLayout.getSecondaryToolbarButton()); 435150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 436150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 437150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 438150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that {@link BaseActivity#setSecondaryToolbarButtonEnabled} sets the secondary toolbar 439150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * button visible/not visible. 440150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 441150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 442150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testSetSecondaryToolbarButtonEnabledTrue() { 443150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal mBaseActivity.setSecondaryToolbarButtonEnabled(true); 444150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal TestHelper.assertViewEnabled(mCarSetupWizardLayout.getSecondaryToolbarButton()); 445150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 446150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 447150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 448150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that {@link BaseActivity#setSecondaryToolbarButtonEnabled} sets the secondary toolbar 449150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * button visible/not visible. 450150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 451150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 452150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testSetSecondaryToolbarButtonEnabledFalse() { 453150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal mBaseActivity.setSecondaryToolbarButtonEnabled(false); 454150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal TestHelper.assertViewNotEnabled(mCarSetupWizardLayout.getSecondaryToolbarButton()); 455150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 456150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 457150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 458150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that {@link BaseActivity#setSecondaryToolbarButtonText(String)} sets the secondary 459150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * toolbar title text. 460150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 461150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 462150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testSetSecondaryToolbarButtonText() { 463150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal mBaseActivity.setSecondaryToolbarButtonText("button text"); 464150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal TestHelper.assertTextEqual(mCarSetupWizardLayout.getSecondaryToolbarButton(), 465150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal "button text"); 466150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 467150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 468150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 469150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that {@link BaseActivity#setSecondaryToolbarButtonOnClickListener} sets the secondary 470150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * toolbar button's click listener. 471150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 472150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 473150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testSetSecondaryToolbarButtonOnClickListener() { 474150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal View.OnClickListener spyListener = TestHelper.createSpyListener(); 475150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 476150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal mBaseActivity.setSecondaryToolbarButtonOnClickListener(spyListener); 477150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal mBaseActivity.getCarSetupWizardLayout().getSecondaryToolbarButton().performClick(); 478150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal Mockito.verify(spyListener).onClick(Mockito.any()); 479150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 480150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 481150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 482150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that {@link BaseActivity#setProgressBarVisible} sets the progressbar visible/not 483150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * visible. 484150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 485150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 486150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testSetProgressBarVisibleTrue() { 487150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal mBaseActivity.setProgressBarVisible(true); 488150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal TestHelper.assertViewVisible(mCarSetupWizardLayout.getProgressBar()); 489150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 490150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal 491150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal /** 492150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * Test that {@link BaseActivity#setProgressBarVisible} sets the progressbar visible/not 493150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal * visible. 494150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal */ 495150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal @Test 496150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal public void testSetProgressBarVisibleFalse() { 497150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal mBaseActivity.setProgressBarVisible(false); 498150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal TestHelper.assertViewNotVisible(mCarSetupWizardLayout.getProgressBar()); 499150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal } 500150f83de6dccce7d3f4eb2904c1198729232ef58Roshan Agrawal} 501