1ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay/* 2ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay * Copyright (C) 2015 The Android Open Source Project 3ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay * 4ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay * Licensed under the Apache License, Version 2.0 (the "License"); 5ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay * you may not use this file except in compliance with the License. 6ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay * You may obtain a copy of the License at 7ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay * 8ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay * http://www.apache.org/licenses/LICENSE-2.0 9ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay * 10ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay * Unless required by applicable law or agreed to in writing, software 11ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay * distributed under the License is distributed on an "AS IS" BASIS, 12ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay * See the License for the specific language governing permissions and 14ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay * limitations under the License. 15ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay */ 16ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay 17ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKaypackage com.android.documentsui.dirlist; 18ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay 19ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKayimport android.net.Uri; 20ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKayimport android.os.Bundle; 21ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKayimport android.provider.DocumentsContract; 22ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKayimport android.test.mock.MockContentProvider; 23ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay 24ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKayimport com.android.documentsui.model.DocumentInfo; 25ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay 26ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKayimport java.util.ArrayList; 27ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKayimport java.util.List; 28ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay 29ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay/** 30ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay * A very simple test double for ContentProvider. Useful in this package only. 31ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay */ 32ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKayclass TestContentProvider extends MockContentProvider { 33ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay List<Uri> mDeleted = new ArrayList<>(); 34ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay 35ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay @Override 36ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay public Bundle call(String method, String arg, Bundle extras) { 37ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay // Intercept and log delete method calls. 38ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay if (DocumentsContract.METHOD_DELETE_DOCUMENT.equals(method)) { 39ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay final Uri documentUri = extras.getParcelable(DocumentsContract.EXTRA_URI); 40ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay mDeleted.add(documentUri); 41ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay return new Bundle(); 42ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay } else { 43ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay return super.call(method, arg, extras); 44ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay } 45ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay } 46ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay 47ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay public void assertWasDeleted(DocumentInfo doc) { 48ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay ModelTest.assertTrue(mDeleted.contains(doc.derivedUri)); 49ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay } 50ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay}