1816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko/* 2816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * Copyright (C) 2015 The Android Open Source Project 3816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * 4816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * Licensed under the Apache License, Version 2.0 (the "License"); 5816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * you may not use this file except in compliance with the License. 6816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * You may obtain a copy of the License at 7816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * 8816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * http://www.apache.org/licenses/LICENSE-2.0 9816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * 10816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * Unless required by applicable law or agreed to in writing, software 11816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * distributed under the License is distributed on an "AS IS" BASIS, 12816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * See the License for the specific language governing permissions and 14816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * limitations under the License. 15816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko */ 16816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalkopackage com.android.tv.tests.ui; 17816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 18816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalkoimport static com.android.tv.testing.uihelper.UiDeviceAsserts.assertWaitForCondition; 19816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 2065fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalkoimport android.support.test.filters.LargeTest; 21816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalkoimport android.support.test.uiautomator.BySelector; 22816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalkoimport android.support.test.uiautomator.Until; 23816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 24816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalkoimport com.android.tv.R; 25816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalkoimport com.android.tv.testing.uihelper.ByResource; 266ebde20b03db4c0d57f67acaac11832b610b966bNick Chalkoimport com.android.tv.testing.uihelper.UiDeviceUtils; 27816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 28816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko/** 29816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * Tests for channel sources. 30816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko */ 31816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko@LargeTest 32816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalkopublic class ChannelSourcesTest extends LiveChannelsTestCase { 33ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko private BySelector mBySettingsSidePanel; 34816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 35816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko @Override 36816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko protected void setUp() throws Exception { 37816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko super.setUp(); 38ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko mBySettingsSidePanel = mSidePanelHelper.bySidePanelTitled( 39ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko R.string.side_panel_title_settings); 40816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko } 41816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 42816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko //TODO: create a cancelable test channel setup. 43816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 44816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko public void testSetup_cancel() { 45816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko mLiveChannelsHelper.assertAppStarted(); 46ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko mMenuHelper.assertPressOptionsSettings(); 47ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko assertWaitForCondition(mDevice, Until.hasObject(mBySettingsSidePanel)); 48816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 49ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko mSidePanelHelper.assertNavigateToItem(R.string.settings_channel_source_item_setup); 50816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko mDevice.pressDPadCenter(); 51816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 52816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko assertWaitForCondition(mDevice, 53ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko Until.hasObject(ByResource.text(mTargetResources, R.string.setup_sources_text))); 54ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko mDevice.pressBack(); 55ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko } 56ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko 57ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko // SetupSourcesFragment should have no errors if side fragment item is clicked multiple times. 58ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko public void testSetupTwice_cancel() { 59ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko mLiveChannelsHelper.assertAppStarted(); 60ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko mMenuHelper.assertPressOptionsSettings(); 61ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko assertWaitForCondition(mDevice, Until.hasObject(mBySettingsSidePanel)); 62ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko 63ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko mSidePanelHelper.assertNavigateToItem(R.string.settings_channel_source_item_setup); 646ebde20b03db4c0d57f67acaac11832b610b966bNick Chalko UiDeviceUtils.pressDPadCenter(getInstrumentation(), 2); 65ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko 66ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko assertWaitForCondition(mDevice, 67ba5845f23b8fbc985890f892961abc8b39886611Nick Chalko Until.hasObject(ByResource.text(mTargetResources, R.string.setup_sources_text))); 68816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko mDevice.pressBack(); 69816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko } 70816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko} 71