--- old/test/java/awt/datatransfer/ConstructFlavoredObjectTest/ConstructFlavoredObjectTest.java 2016-09-14 13:35:37.349526999 +0530 +++ new/test/java/awt/datatransfer/ConstructFlavoredObjectTest/ConstructFlavoredObjectTest.java 2016-09-14 13:35:37.101403000 +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 @@ -24,57 +24,79 @@ import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.SystemFlavorMap; -import java.io.IOException; -import java.io.Reader; +import javax.swing.JColorChooser; import javax.swing.JLabel; import javax.swing.TransferHandler; +import java.awt.Color; + /* * @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 ConstructFlavoredObjectTest */ public class ConstructFlavoredObjectTest { - private static final String TEST_MIME_TYPE = "text/plain;class=" - + MyStringReader.class.getName(); - public static void main(String[] args) throws Exception { + ConstructFlavoredObjectTest testObject = new ConstructFlavoredObjectTest(); + + testObject.testTextFlavor(); + + testObject.testColorFlavor(); + } + + public void testTextFlavor() throws Exception { + final String TEST_MIME_TYPE = DataFlavor.javaJVMLocalObjectMimeType + + ";class=" + String.class.getName(); + final DataFlavor dataFlavor = new DataFlavor(TEST_MIME_TYPE); - SystemFlavorMap systemFlavorMap = (SystemFlavorMap) SystemFlavorMap. - getDefaultFlavorMap(); + SystemFlavorMap systemFlavorMap = + (SystemFlavorMap) SystemFlavorMap.getDefaultFlavorMap(); systemFlavorMap.addUnencodedNativeForFlavor(dataFlavor, "TEXT"); systemFlavorMap.addFlavorForUnencodedNative("TEXT", dataFlavor); - TransferHandler transferHandler = new TransferHandler("Test Handler"); + TransferHandler transferHandler = new TransferHandler("text"); + String text = "This is sample export text"; Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); - transferHandler.exportToClipboard(new JLabel("Test"), clipboard, + transferHandler.exportToClipboard(new JLabel(text), clipboard, TransferHandler.COPY); Object clipboardData = clipboard.getData(dataFlavor); - if (!(clipboardData instanceof MyStringReader)) { - throw new RuntimeException("Wrong clipboard data!"); + String textFromClipboard = (String) clipboardData; + + if (!textFromClipboard.equals(text)) { + throw new RuntimeException("Wrong clipboard data : Text"); } } - public static class MyStringReader extends Reader { + public void testColorFlavor() throws Exception { + final String TEST_MIME_TYPE = DataFlavor.javaJVMLocalObjectMimeType + + ";class=" + Color.class.getName(); - public MyStringReader(Reader reader) { - } + final DataFlavor dataFlavor = new DataFlavor(TEST_MIME_TYPE); + SystemFlavorMap systemFlavorMap = + (SystemFlavorMap) SystemFlavorMap.getDefaultFlavorMap(); + systemFlavorMap.addUnencodedNativeForFlavor(dataFlavor, "COLOR"); + systemFlavorMap.addFlavorForUnencodedNative("COLOR", dataFlavor); - @Override - public int read(char[] cbuf, int off, int len) throws IOException { - throw new UnsupportedOperationException("Not supported yet."); - } + TransferHandler transferHandler = new TransferHandler("color"); + + Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); + transferHandler.exportToClipboard(new JColorChooser(Color.BLUE), + clipboard, TransferHandler.COPY); + + Object clipboardData = clipboard.getData(dataFlavor); - @Override - public void close() throws IOException { - throw new UnsupportedOperationException("Not supported yet."); + Color colorFromClipboard = (Color) clipboardData; + if (!colorFromClipboard.equals(Color.BLUE)) { + throw new RuntimeException("Wrong clipboard data : Color"); } } } +