1619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska/* 2619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska * Copyright (C) 2016 The Android Open Source Project 3619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska * 4619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska * Licensed under the Apache License, Version 2.0 (the "License"); 5619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska * you may not use this file except in compliance with the License. 6619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska * You may obtain a copy of the License at 7619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska * 8619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska * http://www.apache.org/licenses/LICENSE-2.0 9619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska * 10619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska * Unless required by applicable law or agreed to in writing, software 11619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska * distributed under the License is distributed on an "AS IS" BASIS, 12619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska * See the License for the specific language governing permissions and 14619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska * limitations under the License. 15619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska */ 16619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska 17619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronskapackage com.android.documentsui; 18619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska 19619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronskaimport static com.android.documentsui.StubProvider.ROOT_0_ID; 20619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronskaimport static com.android.documentsui.StubProvider.ROOT_1_ID; 21619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska 22619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronskaimport android.test.suitebuilder.annotation.LargeTest; 2318d3e853cce9003d8ed13f7bb7d95bdface74fa2Steve McKayimport android.test.suitebuilder.annotation.Suppress; 24619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska 25619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska@LargeTest 26c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewskipublic class SearchViewUiTest extends ActivityTest<FilesActivity> { 27619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska 28c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewski public SearchViewUiTest() { 29c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewski super(FilesActivity.class); 30619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska } 31619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska 3218d3e853cce9003d8ed13f7bb7d95bdface74fa2Steve McKay @Suppress 330950df196fc5a85910e18510eb8dea2a9f233312Aga Wronska public void testSearchView_ExpandsOnClick() throws Exception { 34b9a20d10c948cf111b70981e08233ea97323fe6cSteve McKay bots.main.openSearchView(); 35b9a20d10c948cf111b70981e08233ea97323fe6cSteve McKay bots.main.assertSearchTextFiledAndIcon(true, false); 36619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska } 37619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska 380950df196fc5a85910e18510eb8dea2a9f233312Aga Wronska public void testSearchView_CollapsesOnBack() throws Exception { 39b9a20d10c948cf111b70981e08233ea97323fe6cSteve McKay bots.main.openSearchView(); 40619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska 41c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewski device.pressBack(); 42619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska 43b9a20d10c948cf111b70981e08233ea97323fe6cSteve McKay bots.main.assertSearchTextFiledAndIcon(false, true); 44619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska } 45619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska 4618d3e853cce9003d8ed13f7bb7d95bdface74fa2Steve McKay @Suppress 470950df196fc5a85910e18510eb8dea2a9f233312Aga Wronska public void testSearchView_ClearsTextOnBack() throws Exception { 48619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska String query = "file2"; 49b9a20d10c948cf111b70981e08233ea97323fe6cSteve McKay bots.main.openSearchView(); 50b9a20d10c948cf111b70981e08233ea97323fe6cSteve McKay bots.main.setSearchQuery(query); 51619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska 52c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewski device.pressBack(); 53619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska 54b9a20d10c948cf111b70981e08233ea97323fe6cSteve McKay bots.main.assertSearchTextFiledAndIcon(false, true); 55619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska } 56619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska 5718d3e853cce9003d8ed13f7bb7d95bdface74fa2Steve McKay @Suppress 580950df196fc5a85910e18510eb8dea2a9f233312Aga Wronska public void testSearch_ResultsFound() throws Exception { 59c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewski initTestFiles(); 60c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewski assertDefaultContentOfTestDir0(); 61619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska 62619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska String query = "file1"; 63b9a20d10c948cf111b70981e08233ea97323fe6cSteve McKay bots.main.openSearchView(); 64b9a20d10c948cf111b70981e08233ea97323fe6cSteve McKay bots.main.setSearchQuery(query); 65b9a20d10c948cf111b70981e08233ea97323fe6cSteve McKay bots.main.assertSearchTextField(true, query); 66619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska 67c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewski device.pressEnter(); 68619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska 69b9a20d10c948cf111b70981e08233ea97323fe6cSteve McKay bots.directory.assertDocumentsCountOnList(true, 2); 70b9a20d10c948cf111b70981e08233ea97323fe6cSteve McKay bots.directory.assertDocumentsPresent(fileName1, fileName2); 71c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewski 72b9a20d10c948cf111b70981e08233ea97323fe6cSteve McKay bots.main.assertSearchTextField(false, query); 73619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska } 74619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska 7518d3e853cce9003d8ed13f7bb7d95bdface74fa2Steve McKay @Suppress 760950df196fc5a85910e18510eb8dea2a9f233312Aga Wronska public void testSearchResultsFound_ClearsOnBack() throws Exception { 77c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewski initTestFiles(); 78c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewski assertDefaultContentOfTestDir0(); 79c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewski 80c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewski String query = fileName1; 81b9a20d10c948cf111b70981e08233ea97323fe6cSteve McKay bots.main.openSearchView(); 82b9a20d10c948cf111b70981e08233ea97323fe6cSteve McKay bots.main.setSearchQuery(query); 83619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska 84c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewski device.pressEnter(); 85c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewski device.pressBack(); 86619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska 87c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewski assertDefaultContentOfTestDir0(); 88619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska } 89619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska 9018d3e853cce9003d8ed13f7bb7d95bdface74fa2Steve McKay @Suppress 910950df196fc5a85910e18510eb8dea2a9f233312Aga Wronska public void testSearch_NoResults() throws Exception { 92c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewski initTestFiles(); 93c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewski assertDefaultContentOfTestDir0(); 94619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska 95619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska String query = "chocolate"; 96b9a20d10c948cf111b70981e08233ea97323fe6cSteve McKay bots.main.openSearchView(); 97b9a20d10c948cf111b70981e08233ea97323fe6cSteve McKay bots.main.setSearchQuery(query); 98619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska 99c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewski device.pressEnter(); 100619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska 101b9a20d10c948cf111b70981e08233ea97323fe6cSteve McKay bots.directory.assertDocumentsCountOnList(false, 0); 102619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska 103c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewski device.waitForIdle(); 104c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewski String msg = String.valueOf(context.getString(R.string.no_results)); 105b9a20d10c948cf111b70981e08233ea97323fe6cSteve McKay bots.directory.assertMessageTextView(String.format(msg, "TEST_ROOT_0")); 106c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewski 107b9a20d10c948cf111b70981e08233ea97323fe6cSteve McKay bots.main.assertSearchTextField(false, query); 1080950df196fc5a85910e18510eb8dea2a9f233312Aga Wronska } 109619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska 11018d3e853cce9003d8ed13f7bb7d95bdface74fa2Steve McKay @Suppress 1110950df196fc5a85910e18510eb8dea2a9f233312Aga Wronska public void testSearchNoResults_ClearsOnBack() throws Exception { 112c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewski initTestFiles(); 113c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewski assertDefaultContentOfTestDir0(); 114619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska 115619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska String query = "chocolate"; 116b9a20d10c948cf111b70981e08233ea97323fe6cSteve McKay bots.main.openSearchView(); 117b9a20d10c948cf111b70981e08233ea97323fe6cSteve McKay bots.main.setSearchQuery(query); 118c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewski 119c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewski device.pressEnter(); 120c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewski device.pressBack(); 121619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska 122c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewski device.waitForIdle(); 123c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewski assertDefaultContentOfTestDir0(); 124619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska } 125619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska 12618d3e853cce9003d8ed13f7bb7d95bdface74fa2Steve McKay @Suppress 1270950df196fc5a85910e18510eb8dea2a9f233312Aga Wronska public void testSearchResultsFound_ClearsOnDirectoryChange() throws Exception { 128c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewski initTestFiles(); 129c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewski assertDefaultContentOfTestDir0(); 130619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska 131c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewski String query = fileName1; 132b9a20d10c948cf111b70981e08233ea97323fe6cSteve McKay bots.main.openSearchView(); 133b9a20d10c948cf111b70981e08233ea97323fe6cSteve McKay bots.main.setSearchQuery(query); 134619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska 135c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewski device.pressEnter(); 136f6a31d319f3e08d26ca4c0fbfb5803056bafb243Aga Wronska 137b9a20d10c948cf111b70981e08233ea97323fe6cSteve McKay bots.roots.openRoot(ROOT_1_ID); 138c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewski assertDefaultContentOfTestDir1(); 139619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska 140b9a20d10c948cf111b70981e08233ea97323fe6cSteve McKay bots.roots.openRoot(ROOT_0_ID); 141c7b832202a8f1f91e378e255e61c4aa703f53394Tomasz Mikolajewski assertDefaultContentOfTestDir0(); 142619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska } 143cfba4f68091b7dd9d960240771f1220e14a261aaAga Wronska 144cfba4f68091b7dd9d960240771f1220e14a261aaAga Wronska public void testSearchIconVisible_RootWithSearchSupport() throws Exception { 145b9a20d10c948cf111b70981e08233ea97323fe6cSteve McKay bots.roots.openRoot(ROOT_0_ID); 146b9a20d10c948cf111b70981e08233ea97323fe6cSteve McKay bots.main.assertSearchTextFiledAndIcon(false, true); 147cfba4f68091b7dd9d960240771f1220e14a261aaAga Wronska } 148cfba4f68091b7dd9d960240771f1220e14a261aaAga Wronska 149cfba4f68091b7dd9d960240771f1220e14a261aaAga Wronska public void testSearchIconHidden_RootNoSearchSupport() throws Exception { 150b9a20d10c948cf111b70981e08233ea97323fe6cSteve McKay bots.roots.openRoot(ROOT_1_ID); 151b9a20d10c948cf111b70981e08233ea97323fe6cSteve McKay bots.main.assertSearchTextFiledAndIcon(false, false); 152cfba4f68091b7dd9d960240771f1220e14a261aaAga Wronska } 153cfba4f68091b7dd9d960240771f1220e14a261aaAga Wronska 154619f3be0fa0f75840576df24f74bc5ec6b25d2fcAga Wronska} 155