/* * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this * particular file as subject to the "Classpath" exception as provided * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.SystemFlavorMap; /* * @test * @summary To check for error handling with new Clipboard/SystemFlavorMap * methods, and insure that the appropriate exceptions are being thrown. * Specifically check for null variables in the methods: * - addFlavorForUnencodedNative(String nat, DataFlavor flav) * - addUnencodedNativeForFlavor(DataFlavor flav, String nat) * - setNativesForFlavor(DataFlavor flav, String[] natives) * - setFlavorsForNative(String nat, DataFlavor[] flavors) * @author Rick Reynaga (rick.reynaga@eng.sun.com) area=Clipboard * @run main InvalidMapArgumentsTest */ public class InvalidMapArgumentsTest { SystemFlavorMap flavorMap; String test_nat; String[] test_natives; DataFlavor test_flav; DataFlavor[] test_flavors; public static void main (String[] args){ new InvalidMapArgumentsTest().doTest(); } public void doTest (){ //Get things going. Request focus, set size, et cetera initMappings(); // Test for combinations of null values for // addFlavorForUnencodedNative(String nat, DataFlavor flav) addFlavorForUnencodedNativeTest(null, null, "both String nat and DataFlavor flav set to null. "); addFlavorForUnencodedNativeTest(null, test_flav, "String nat set to null. "); addFlavorForUnencodedNativeTest(test_nat, null, "DataFlavor flav set to null. "); // Test for combinations of null values for // addUnencodedNativeForFlavor(DataFlavor flav, String nat) addUnencodedNativeForFlavorTest(null, null, "both DataFlavor flav and String nat set to null. "); addUnencodedNativeForFlavorTest(null, test_nat, "DataFlavor flav set to null. "); addUnencodedNativeForFlavorTest(test_flav, null, "String nat set to null. "); // Test for combinations of null values for // setNativesForFlavor(DataFlavor flav, String[] natives) setNativesForFlavorTest(null, null, "both DataFlavor flav and String[] natives set to null. "); setNativesForFlavorTest(null, test_natives, "DataFlavor flav set to null. "); setNativesForFlavorTest(test_flav, null, "String[] natives set to null. "); // Test for combinations of null values for // setFlavorsForNative(String nat, DataFlavor[] flavors) setFlavorsForNativeTest(null, null, "both String nat and DataFlavor[] flavors set to null. "); setFlavorsForNativeTest(null, test_flavors, "String nat set to null. "); setFlavorsForNativeTest(test_nat, null, "DataFlavor[] flavors set to null. "); } public void initMappings() { //initialize mapping variables used in this test flavorMap = (SystemFlavorMap)SystemFlavorMap.getDefaultFlavorMap(); //create a DataFlavor with valid parameters (mimeType, humanPresentableName) test_flav = new DataFlavor("text/plain; charset=ascii","ASCII Flavor"); //create a String native test_nat = "TEXT_TEST"; //create a DataFlavor array test_flavors = new DataFlavor[] {test_flav}; //create a String native array test_natives = new String[] {test_nat}; } public void setNativesForFlavorTest(DataFlavor flav, String[] natives, String errmsg) { try{ flavorMap.setNativesForFlavor(flav, natives); throw new RuntimeException("NullPointerException is not thrown for method "+ "setNativesForFlavor with "+errmsg); } catch (NullPointerException e) { } } public void setFlavorsForNativeTest(String nat, DataFlavor[] flavors, String errmsg) { try{ flavorMap.setFlavorsForNative(nat, flavors); throw new RuntimeException("NullPointerException is not thrown for method "+ "setFlavorsForNative with "+errmsg); } catch (NullPointerException e) { } } public void addFlavorForUnencodedNativeTest(String nat, DataFlavor flav, String errmsg) { try{ flavorMap.addFlavorForUnencodedNative(nat, flav); throw new RuntimeException("NullPointerException is not thrown for method "+ "addFlavorForUnencodedNative with "+errmsg); } catch (NullPointerException e) { } } public void addUnencodedNativeForFlavorTest(DataFlavor flav, String nat, String errmsg) { try{ flavorMap.addUnencodedNativeForFlavor(flav, nat); throw new RuntimeException("NullPointerException is not thrown for method "+ "addUnencodedNativeForFlavor with "+errmsg); } catch (NullPointerException e) { } } }