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}