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