author | goetz |
Tue, 14 Jun 2016 10:44:59 +0200 | |
changeset 39056 | d99e63b6d962 |
parent 25134 | ee53c90dfeb1 |
permissions | -rw-r--r-- |
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 |
} |