1c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay/* 2c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay * Copyright (C) 2015 The Android Open Source Project 3c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay * 4c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay * Licensed under the Apache License, Version 2.0 (the "License"); 5c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay * you may not use this file except in compliance with the License. 6c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay * You may obtain a copy of the License at 7c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay * 8c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay * http://www.apache.org/licenses/LICENSE-2.0 9c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay * 10c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay * Unless required by applicable law or agreed to in writing, software 11c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay * distributed under the License is distributed on an "AS IS" BASIS, 12c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay * See the License for the specific language governing permissions and 14c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay * limitations under the License. 15c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay */ 16c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay 17c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKaypackage com.android.documentsui.dirlist; 18c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay 19a40e6e34c4a7b9c83d086f167ea4812240783a70Ben Linimport android.app.PendingIntent; 20c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKayimport android.content.Context; 21c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKayimport android.database.Cursor; 22eed2f4ec78227b5e173ff667a5517637a91b9a30Steve McKayimport android.support.test.filters.MediumTest; 23c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKayimport android.test.AndroidTestCase; 24c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay 25a40e6e34c4a7b9c83d086f167ea4812240783a70Ben Linimport com.android.documentsui.ActionHandler; 26e967033315ed64bca8c89d601d187fd12754f1fbGarfield Tanimport com.android.documentsui.Model; 2798f8c5f502e049a6b85439d773949cdbaa0f78aeSteve McKayimport com.android.documentsui.base.Features; 28d9caa6ab53aa784acaf241c0ded3c4ae2d342bf8Steve McKayimport com.android.documentsui.base.State; 29a40e6e34c4a7b9c83d086f167ea4812240783a70Ben Linimport com.android.documentsui.testing.TestActionHandler; 30def4868b1e9ef8a5718c6bc2e165026cbe52b5daSteve McKayimport com.android.documentsui.testing.TestEnv; 31c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay 32eed2f4ec78227b5e173ff667a5517637a91b9a30Steve McKay@MediumTest 33c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKaypublic class ModelBackedDocumentsAdapterTest extends AndroidTestCase { 34c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay 35c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay private static final String AUTHORITY = "test_authority"; 36def4868b1e9ef8a5718c6bc2e165026cbe52b5daSteve McKay 37def4868b1e9ef8a5718c6bc2e165026cbe52b5daSteve McKay private TestEnv mEnv; 38a40e6e34c4a7b9c83d086f167ea4812240783a70Ben Lin private ActionHandler mActionHandler; 39e910403ec00c2064ceb9b0b2fe54e5077d7376ceSteve McKay private ModelBackedDocumentsAdapter mAdapter; 40c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay 41c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay public void setUp() { 42c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay 43c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay final Context testContext = TestContext.createStorageTestContext(getContext(), AUTHORITY); 44def4868b1e9ef8a5718c6bc2e165026cbe52b5daSteve McKay mEnv = TestEnv.create(AUTHORITY); 45a40e6e34c4a7b9c83d086f167ea4812240783a70Ben Lin mActionHandler = new TestActionHandler(); 46c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay 47c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay DocumentsAdapter.Environment env = new TestEnvironment(testContext); 48c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay 49e910403ec00c2064ceb9b0b2fe54e5077d7376ceSteve McKay mAdapter = new ModelBackedDocumentsAdapter( 50c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay env, new IconHelper(testContext, State.MODE_GRID)); 51990f76ea83a249cd8fc3c797e40626b94cd7945cSteve McKay mAdapter.getModelUpdateListener().accept(Model.Update.UPDATE); 52c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay } 53c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay 54c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay // Tests that the item count is correct. 55c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay public void testItemCount() { 56def4868b1e9ef8a5718c6bc2e165026cbe52b5daSteve McKay assertEquals(mEnv.model.getItemCount(), mAdapter.getItemCount()); 57c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay } 58c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay 59c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay private final class TestEnvironment implements DocumentsAdapter.Environment { 60c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay private final Context testContext; 61c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay 6298f8c5f502e049a6b85439d773949cdbaa0f78aeSteve McKay @Override 6398f8c5f502e049a6b85439d773949cdbaa0f78aeSteve McKay public Features getFeatures() { 6498f8c5f502e049a6b85439d773949cdbaa0f78aeSteve McKay return mEnv.features; 6598f8c5f502e049a6b85439d773949cdbaa0f78aeSteve McKay } 6698f8c5f502e049a6b85439d773949cdbaa0f78aeSteve McKay 67a40e6e34c4a7b9c83d086f167ea4812240783a70Ben Lin @Override 68a40e6e34c4a7b9c83d086f167ea4812240783a70Ben Lin public ActionHandler getActionHandler() { return mActionHandler; } 69a40e6e34c4a7b9c83d086f167ea4812240783a70Ben Lin 70c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay private TestEnvironment(Context testContext) { 71c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay this.testContext = testContext; 72c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay } 73c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay 74c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay @Override 75c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay public boolean isSelected(String id) { 76c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay return false; 77c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay } 78c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay 79c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay @Override 80c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay public boolean isDocumentEnabled(String mimeType, int flags) { 81c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay return true; 82c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay } 83c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay 84c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay @Override 85c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay public void initDocumentHolder(DocumentHolder holder) {} 86c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay 87c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay @Override 88c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay public Model getModel() { 89def4868b1e9ef8a5718c6bc2e165026cbe52b5daSteve McKay return mEnv.model; 90c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay } 91c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay 92c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay @Override 93c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay public State getDisplayState() { 94c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay return null; 95c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay } 96c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay 97c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay @Override 987b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin public boolean isInSearchMode() { 997b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin return false; 1007b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin } 1017b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin 1027b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin @Override 103c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay public Context getContext() { 104c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay return testContext; 105c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay } 106c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay 107c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay @Override 108c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay public int getColumnCount() { 109c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay return 4; 110c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay } 111c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay 112c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay @Override 113c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay public void onBindDocumentHolder(DocumentHolder holder, Cursor cursor) {} 114c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay } 115c5ecf8900ee11d06c3f000b2e7be14fc47fe1791Steve McKay} 116