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