--- old/test/java/awt/datatransfer/ConstructFlavoredObjectTest/ConstructFlavoredObjectTest.java 2016-11-18 17:03:58.444005184 +0530 +++ new/test/java/awt/datatransfer/ConstructFlavoredObjectTest/ConstructFlavoredObjectTest.java 2016-11-18 17:03:58.264005184 +0530 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 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 @@ -31,34 +31,57 @@ /* * @test * @key headful - * @bug 8130329 + * @bug 8130329 8134612 * @summary Audit Core Reflection in module java.desktop AWT/Miscellaneous area * for places that will require changes to work with modules * @author Alexander Scherbatiy + * @run main/othervm ConstructFlavoredObjectTest COPY + * @run main/othervm ConstructFlavoredObjectTest PASTE */ public class ConstructFlavoredObjectTest { - private static final String TEST_MIME_TYPE = "text/plain;class=" - + MyStringReader.class.getName(); - public static void main(String[] args) throws Exception { - final DataFlavor dataFlavor = new DataFlavor(TEST_MIME_TYPE); - SystemFlavorMap systemFlavorMap = (SystemFlavorMap) SystemFlavorMap. - getDefaultFlavorMap(); - systemFlavorMap.addUnencodedNativeForFlavor(dataFlavor, "TEXT"); - systemFlavorMap.addFlavorForUnencodedNative("TEXT", dataFlavor); - - TransferHandler transferHandler = new TransferHandler("Test Handler"); - - Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); - transferHandler.exportToClipboard(new JLabel("Test"), clipboard, - TransferHandler.COPY); + if (args[0].equals("COPY")) { - Object clipboardData = clipboard.getData(dataFlavor); + // Copy a simple text string on to the System clipboard - if (!(clipboardData instanceof MyStringReader)) { - throw new RuntimeException("Wrong clipboard data!"); + final String TEXT_MIME_TYPE = DataFlavor.javaJVMLocalObjectMimeType + + ";class=" + String.class.getName(); + + final DataFlavor dataFlavor = new DataFlavor(TEXT_MIME_TYPE); + SystemFlavorMap systemFlavorMap = + (SystemFlavorMap) SystemFlavorMap.getDefaultFlavorMap(); + systemFlavorMap.addUnencodedNativeForFlavor(dataFlavor, "TEXT"); + systemFlavorMap.addFlavorForUnencodedNative("TEXT", dataFlavor); + + TransferHandler transferHandler = new TransferHandler("text"); + + String text = "This is sample export text"; + Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); + transferHandler.exportToClipboard(new JLabel(text), clipboard, + TransferHandler.COPY); + } + else if (args[0].equals("PASTE")) { + + // Try to read text data from the System clipboard + + final String TEST_MIME_TYPE = "text/plain;class=" + + MyStringReader.class.getName(); + + final DataFlavor dataFlavor = new DataFlavor(TEST_MIME_TYPE); + SystemFlavorMap systemFlavorMap = (SystemFlavorMap) SystemFlavorMap. + getDefaultFlavorMap(); + systemFlavorMap.addUnencodedNativeForFlavor(dataFlavor, "TEXT"); + systemFlavorMap.addFlavorForUnencodedNative("TEXT", dataFlavor); + + Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); + + Object clipboardData = clipboard.getData(dataFlavor); + + if (!(clipboardData instanceof MyStringReader)) { + throw new RuntimeException("Wrong clipboard data!"); + } } } @@ -78,3 +101,4 @@ } } } +