< prev index next >

test/java/awt/datatransfer/ConstructFlavoredObjectTest/ConstructFlavoredObjectTest.java

Print this page

        

@@ -1,7 +1,7 @@
 /*
- * 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
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.

@@ -22,59 +22,81 @@
  */
 import java.awt.Toolkit;
 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");
         }
     }
 }
+
< prev index next >