Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/jdk/sun/awt/datatransfer/SuplementaryCharactersTransferTest.java
41152 views
1
/*
2
* Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation.
8
*
9
* This code is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
* version 2 for more details (a copy is included in the LICENSE file that
13
* accompanied this code).
14
*
15
* You should have received a copy of the GNU General Public License version
16
* 2 along with this work; if not, write to the Free Software Foundation,
17
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18
*
19
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20
* or visit www.oracle.com if you need additional information or have any
21
* questions.
22
*/
23
24
/* @test
25
@bug 6877495
26
@summary JTextField and JTextArea does not support supplementary characters
27
@author Alexander Scherbatiy
28
@modules java.datatransfer/sun.datatransfer
29
java.desktop/sun.awt.datatransfer
30
@run main SuplementaryCharactersTransferTest
31
*/
32
33
34
import java.io.*;
35
import java.util.*;
36
import java.awt.*;
37
import java.awt.datatransfer.*;
38
import sun.awt.datatransfer.*;
39
import sun.awt.datatransfer.DataTransferer.ReencodingInputStream;
40
import sun.datatransfer.DataFlavorUtil;
41
42
public class SuplementaryCharactersTransferTest {
43
44
public static final long TEXT_FORMAT = 13;
45
46
public static void main(String[] args) throws Exception {
47
48
DataTransferer dataTransferer = new TestDataTransferer();
49
dataTransferer.registerTextFlavorProperties("UNICODE TEXT", "utf-16le", "\r\n", "2");
50
ByteTransferable transferable = new ByteTransferable();
51
ReencodingInputStream is = dataTransferer.new ReencodingInputStream(transferable.getByteInputStream(), TEXT_FORMAT,
52
DataFlavorUtil.getTextCharset(transferable.getDataFlavor()), transferable);
53
54
byte[] bytes = transferable.getBytes();
55
byte[] result = new byte[bytes.length];
56
57
is.read(result);
58
59
for (int i = 0; i < bytes.length; i++) {
60
if (bytes[i] != result[i]) {
61
throw new RuntimeException("Characters are not equal!");
62
}
63
}
64
65
}
66
67
static class ByteTransferable implements Transferable, ClipboardOwner {
68
69
private final DataFlavor dataFlavor;
70
71
public ByteTransferable() throws Exception {
72
dataFlavor = DataFlavor.getTextPlainUnicodeFlavor();
73
}
74
75
public DataFlavor getDataFlavor() {
76
return dataFlavor;
77
}
78
79
public DataFlavor[] getTransferDataFlavors() {
80
return new DataFlavor[]{dataFlavor};
81
}
82
83
public boolean isDataFlavorSupported(DataFlavor flavor) {
84
return flavor.equals(dataFlavor);
85
}
86
87
public byte[] getBytes() {
88
return new byte[]{97, 0, 64, -40, 32, -36, 98, 0};
89
}
90
91
public InputStream getByteInputStream() {
92
return new ByteArrayInputStream(getBytes());
93
}
94
95
public Object getTransferData(DataFlavor flavor)
96
throws UnsupportedFlavorException, IOException {
97
if (flavor.equals(dataFlavor)) {
98
return getByteInputStream();
99
} else {
100
throw new UnsupportedFlavorException(flavor);
101
}
102
}
103
104
public void lostOwnership(Clipboard clipboard, Transferable contents) {
105
}
106
}
107
108
static class TestDataTransferer extends DataTransferer {
109
110
@Override
111
public String getDefaultUnicodeEncoding() {
112
throw new UnsupportedOperationException("Not supported yet.");
113
}
114
115
@Override
116
public boolean isLocaleDependentTextFormat(long format) {
117
return false;
118
}
119
120
@Override
121
public boolean isFileFormat(long format) {
122
throw new UnsupportedOperationException("Not supported yet.");
123
}
124
125
@Override
126
public boolean isImageFormat(long format) {
127
throw new UnsupportedOperationException("Not supported yet.");
128
}
129
130
@Override
131
protected Long getFormatForNativeAsLong(String str) {
132
return TEXT_FORMAT;
133
}
134
135
@Override
136
protected String getNativeForFormat(long format) {
137
throw new UnsupportedOperationException("Not supported yet.");
138
}
139
140
@Override
141
protected ByteArrayOutputStream convertFileListToBytes(
142
ArrayList<String> fileList) throws IOException {
143
throw new UnsupportedOperationException("Not supported yet.");
144
}
145
146
@Override
147
protected String[] dragQueryFile(byte[] bytes) {
148
throw new UnsupportedOperationException("Not supported yet.");
149
}
150
151
@Override
152
protected byte[] imageToPlatformBytes(Image image, long format)
153
throws IOException {
154
throw new UnsupportedOperationException("Not supported yet.");
155
}
156
157
@Override
158
public ToolkitThreadBlockedHandler getToolkitThreadBlockedHandler() {
159
throw new UnsupportedOperationException("Not supported yet.");
160
}
161
162
@Override
163
protected Image platformImageBytesToImage(byte[] bytes, long format) throws IOException {
164
throw new UnsupportedOperationException("Not supported yet.");
165
}
166
}
167
}
168
169
170