jdk/test/java/awt/datatransfer/CustomClassLoaderTransferTest/CustomClassLoaderTransferTest.java
author goetz
Tue, 14 Jun 2016 10:44:59 +0200
changeset 39056 d99e63b6d962
parent 25134 ee53c90dfeb1
permissions -rw-r--r--
8159690: [TESTBUG] Mark headful tests with @key headful. Reviewed-by: simonis, alexsch
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
25134
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
     1
/*
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
     2
  @test
39056
d99e63b6d962 8159690: [TESTBUG] Mark headful tests with @key headful.
goetz
parents: 25134
diff changeset
     3
  @key headful
25134
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
     4
  @bug 4932376
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
     5
  @summary verifies that data transfer within one JVM works correctly if
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
     6
           the transfer data was created with a custom class loader.
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
     7
  @author das@sparc.spb.su area=datatransfer
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
     8
  @library ../../regtesthelpers
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
     9
  @build TransferableList AnotherInterface CopyClassFile CustomClassLoaderTransferTest
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    10
  @run main CopyClassFile -r ListInterface subdir/
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    11
  @run main CopyClassFile -r TransferableList subdir/
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    12
  @run main CustomClassLoaderTransferTest
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    13
*/
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    14
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    15
import java.awt.*;
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    16
import java.awt.datatransfer.*;
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    17
import java.io.*;
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    18
import java.net.URL;
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    19
import java.net.URLClassLoader;
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    20
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    21
public class CustomClassLoaderTransferTest {
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    22
    public static class DFTransferable implements Transferable {
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    23
        private final DataFlavor df;
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    24
        private final Object obj;
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    25
        public DFTransferable(DataFlavor df, Object obj) {
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    26
            this.df = df;
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    27
            this.obj = obj;
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    28
        }
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    29
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    30
        @Override
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    31
        public Object getTransferData(DataFlavor flavor)
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    32
          throws UnsupportedFlavorException, IOException {
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    33
            if (df.equals(flavor)) {
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    34
                return obj;
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    35
            } else {
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    36
                throw new UnsupportedFlavorException(flavor);
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    37
            }
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    38
        }
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    39
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    40
        @Override
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    41
        public DataFlavor[] getTransferDataFlavors(){
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    42
            return new DataFlavor[] { df };
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    43
        }
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    44
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    45
        @Override
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    46
        public boolean isDataFlavorSupported(DataFlavor flavor) {
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    47
            return df.equals(flavor);
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    48
        }
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    49
    }
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    50
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    51
    public static void main(String[] args) throws Exception {
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    52
        Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    53
        URL url = new File("./subdir/").toURL();
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    54
        ClassLoader classLoader = new URLClassLoader(new URL[] { url },
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    55
                CustomClassLoaderTransferTest.class.getClassLoader());
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    56
        Class clazz = Class.forName("TransferableList", true, classLoader);
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    57
        DataFlavor df = new DataFlavor(clazz, "Transferable List");
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    58
        Object obj = clazz.newInstance();
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    59
        Transferable t = new DFTransferable(df, obj);
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    60
        c.setContents(t, null);
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    61
        Transferable ct = c.getContents(null);
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    62
        ct.getTransferData(df);
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    63
    }
ee53c90dfeb1 8041464: [TEST_BUG] CustomClassLoaderTransferTest does not support OS X
pchelko
parents:
diff changeset
    64
}