130b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin/*
230b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin * Copyright (C) 2016 The Android Open Source Project
330b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin *
430b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin * Licensed under the Apache License, Version 2.0 (the "License");
530b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin * you may not use this file except in compliance with the License.
630b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin * You may obtain a copy of the License at
730b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin *
830b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin *      http://www.apache.org/licenses/LICENSE-2.0
930b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin *
1030b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin * Unless required by applicable law or agreed to in writing, software
1130b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin * distributed under the License is distributed on an "AS IS" BASIS,
1230b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1330b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin * See the License for the specific language governing permissions and
1430b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin * limitations under the License.
1530b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin */
1630b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin
1730b0dc1896abc67a970b61ebfd420275a31c1e18Ben Linpackage com.android.documentsui.testing;
1830b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin
19ceef2de0a8aa62d86db5939ff7ad3c1a1739d288Garfield Tanimport static junit.framework.Assert.assertNull;
20ceef2de0a8aa62d86db5939ff7ad3c1a1739d288Garfield Tanimport static junit.framework.Assert.assertSame;
21ceef2de0a8aa62d86db5939ff7ad3c1a1739d288Garfield Tan
2230b0dc1896abc67a970b61ebfd420275a31c1e18Ben Linimport android.content.ClipData;
2330b0dc1896abc67a970b61ebfd420275a31c1e18Ben Linimport android.net.Uri;
2430b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin
2530b0dc1896abc67a970b61ebfd420275a31c1e18Ben Linimport com.android.documentsui.base.DocumentInfo;
2630b0dc1896abc67a970b61ebfd420275a31c1e18Ben Linimport com.android.documentsui.base.DocumentStack;
2730b0dc1896abc67a970b61ebfd420275a31c1e18Ben Linimport com.android.documentsui.base.RootInfo;
2830b0dc1896abc67a970b61ebfd420275a31c1e18Ben Linimport com.android.documentsui.clipping.DocumentClipper;
2930b0dc1896abc67a970b61ebfd420275a31c1e18Ben Linimport com.android.documentsui.selection.Selection;
3030b0dc1896abc67a970b61ebfd420275a31c1e18Ben Linimport com.android.documentsui.services.FileOperations.Callback;
3130b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin
3230b0dc1896abc67a970b61ebfd420275a31c1e18Ben Linimport java.util.function.Function;
3330b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin
3430b0dc1896abc67a970b61ebfd420275a31c1e18Ben Linpublic class TestDocumentClipper implements DocumentClipper {
3530b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin
36ceef2de0a8aa62d86db5939ff7ad3c1a1739d288Garfield Tan    private ClipData mLastClipData;
37ceef2de0a8aa62d86db5939ff7ad3c1a1739d288Garfield Tan
3830b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin    @Override
3930b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin    public boolean hasItemsToPaste() {
4030b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin        return false;
4130b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin    }
4230b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin
4330b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin    @Override
4430b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin    public ClipData getClipDataForDocuments(Function<String, Uri> uriBuilder, Selection selection,
4530b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin            int opType) {
4630b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin        return null;
4730b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin    }
4830b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin
4930b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin    @Override
5030b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin    public void clipDocumentsForCopy(Function<String, Uri> uriBuilder, Selection selection) {
5130b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin
5230b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin    }
5330b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin
5430b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin    @Override
5530b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin    public void clipDocumentsForCut(Function<String, Uri> uriBuilder, Selection selection,
5630b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin            DocumentInfo parent) {
5730b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin    }
5830b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin
5930b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin    @Override
6030b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin    public void copyFromClipboard(DocumentInfo destination, DocumentStack docStack,
6130b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin            Callback callback) {
6230b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin    }
6330b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin
6430b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin    @Override
6530b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin    public void copyFromClipboard(DocumentStack docStack, Callback callback) {
6630b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin    }
6730b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin
6830b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin    @Override
6930b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin    public void copyFromClipData(RootInfo root, DocumentInfo destination, ClipData clipData,
7030b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin            Callback callback) {
71ceef2de0a8aa62d86db5939ff7ad3c1a1739d288Garfield Tan        mLastClipData = clipData;
7230b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin    }
7330b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin
7430b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin    @Override
7530b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin    public void copyFromClipData(DocumentInfo destination, DocumentStack docStack,
7630b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin            ClipData clipData, Callback callback) {
7730b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin    }
7830b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin
7930b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin    @Override
8085a479e941a733de22d4309bf7802e4cc6814786Garfield Tan    public void copyFromClipData(DocumentStack docStack, ClipData clipData, Callback callback) {
8185a479e941a733de22d4309bf7802e4cc6814786Garfield Tan    }
8285a479e941a733de22d4309bf7802e4cc6814786Garfield Tan
8385a479e941a733de22d4309bf7802e4cc6814786Garfield Tan    @Override
8430b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin    public int getOpType(ClipData data) {
8530b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin        return 0;
8630b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin    }
8730b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin
88ceef2de0a8aa62d86db5939ff7ad3c1a1739d288Garfield Tan    public void assertNoClipData() {
89ceef2de0a8aa62d86db5939ff7ad3c1a1739d288Garfield Tan        assertNull(mLastClipData);
90ceef2de0a8aa62d86db5939ff7ad3c1a1739d288Garfield Tan    }
9130b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin
92ceef2de0a8aa62d86db5939ff7ad3c1a1739d288Garfield Tan    public void assertSameClipData(ClipData expect) {
93ceef2de0a8aa62d86db5939ff7ad3c1a1739d288Garfield Tan        assertSame(expect, mLastClipData);
94ceef2de0a8aa62d86db5939ff7ad3c1a1739d288Garfield Tan    }
9530b0dc1896abc67a970b61ebfd420275a31c1e18Ben Lin}
96