test/java/awt/datatransfer/SystemFlavorMap/AddFlavorTest.java
Print this page
*** 21,35 ****
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
- import sun.awt.datatransfer.DataTransferer;
-
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.SystemFlavorMap;
import java.util.*;
/*
* @test
* @summary To test SystemFlavorMap method:
* addFlavorForUnencodedNative(String nat, DataFlavor flav)
--- 21,34 ----
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.SystemFlavorMap;
import java.util.*;
+ import java.nio.charset.Charset;
/*
* @test
* @summary To test SystemFlavorMap method:
* addFlavorForUnencodedNative(String nat, DataFlavor flav)
*** 68,88 ****
for (String key : flavorMap.getFlavorsForNatives(null).keySet()) {
Set<DataFlavor> flavorsSet = new HashSet<>(flavorMap.getFlavorsForNative(key));
// construct a unique String native
key = key.concat("TEST");
! for (DataFlavor element : flavorsSet)
flavorMap.addFlavorForUnencodedNative(key, element);
-
- // This part is valid only for X-based graphical systems
- if (!System.getProperty("os.name").startsWith("Win") && !System.getProperty("os.name").startsWith("Mac") ) {
- if (key.contains("/")) {
- Set<DataFlavor> fls = DataTransferer.getInstance().getPlatformMappingsForNative(key);
- flavorsSet.addAll(fls);
- if (!fls.isEmpty() && key.startsWith("text/"))
- flavorsSet.addAll(convertMimeTypeToDataFlavors(key));
- }
}
hashVerify.put(key, new Vector(flavorsSet));
}
// Assertions: After establishing "new" mappings, verify that the defined
--- 67,78 ----
for (String key : flavorMap.getFlavorsForNatives(null).keySet()) {
Set<DataFlavor> flavorsSet = new HashSet<>(flavorMap.getFlavorsForNative(key));
// construct a unique String native
key = key.concat("TEST");
! for (DataFlavor element : flavorsSet) {
flavorMap.addFlavorForUnencodedNative(key, element);
}
hashVerify.put(key, new Vector(flavorsSet));
}
// Assertions: After establishing "new" mappings, verify that the defined
*** 101,116 ****
compareFlavors(flavorMap.getFlavorsForNative(key), hashVerify.get(key), key);
}
}
void compareFlavors(List<DataFlavor> flavors1, List<DataFlavor> flavors2, String key){
- DataTransferer.DataFlavorComparator comparator = new DataTransferer.DataFlavorComparator();
for (DataFlavor flavor1 : flavors1) {
boolean result = false;
for (DataFlavor flavor2 : flavors2) {
! if (comparator.compare(flavor1, flavor2) == 0)
! result = true;
}
if (!result)
throw new RuntimeException("\n*** Error in verifyNewMappings()" +
"\nmethod1: addFlavorForUnencodedNative(String nat, DataFlavor flav)" +
"\nmethod2: List getFlavorsForNative(String nat)" +
--- 91,104 ----
compareFlavors(flavorMap.getFlavorsForNative(key), hashVerify.get(key), key);
}
}
void compareFlavors(List<DataFlavor> flavors1, List<DataFlavor> flavors2, String key){
for (DataFlavor flavor1 : flavors1) {
boolean result = false;
for (DataFlavor flavor2 : flavors2) {
! if (flavor1.equals(flavor2)) result = true;
}
if (!result)
throw new RuntimeException("\n*** Error in verifyNewMappings()" +
"\nmethod1: addFlavorForUnencodedNative(String nat, DataFlavor flav)" +
"\nmethod2: List getFlavorsForNative(String nat)" +
*** 123,133 ****
}
Set<DataFlavor> convertMimeTypeToDataFlavors(String baseType) throws Exception {
Set<DataFlavor> result = new LinkedHashSet<>();
! for (String charset : DataTransferer.standardEncodings()) {
for (String txtClass : new String[]{"java.io.InputStream", "java.nio.ByteBuffer", "\"[B\""}) {
String mimeType = baseType + ";charset=" + charset + ";class=" + txtClass;
if ("text/html".equals(baseType)) {
for (String documentType : new String[]{"all", "selection", "fragment"})
--- 111,121 ----
}
Set<DataFlavor> convertMimeTypeToDataFlavors(String baseType) throws Exception {
Set<DataFlavor> result = new LinkedHashSet<>();
! for (String charset : getStandardEncodings()) {
for (String txtClass : new String[]{"java.io.InputStream", "java.nio.ByteBuffer", "\"[B\""}) {
String mimeType = baseType + ";charset=" + charset + ";class=" + txtClass;
if ("text/html".equals(baseType)) {
for (String documentType : new String[]{"all", "selection", "fragment"})
*** 140,146 ****
--- 128,146 ----
}
}
}
return result;
}
+
+ Set<String> getStandardEncodings() {
+ Set<String> tempSet = new HashSet<>();
+ tempSet.add("US-ASCII");
+ tempSet.add("ISO-8859-1");
+ tempSet.add("UTF-8");
+ tempSet.add("UTF-16BE");
+ tempSet.add("UTF-16LE");
+ tempSet.add("UTF-16");
+ tempSet.add(Charset.defaultCharset().name());
+ return tempSet;
+ }
}