Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/jdk/java/net/URI/URItoURLTest.java
41149 views
1
/*
2
* Copyright (c) 2002, 2007, 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
/**
25
* @test
26
* @bug 4768755 4677045 8147462
27
* @summary URL.equal(URL) is inconsistent for opaque URI.toURL()
28
* and new URL(URI.toString)
29
* URI.toURL() does not always work as specified
30
* Ensure URIs representing invalid/malformed URLs throw similar
31
* exception with new URL(URI.toString()) and URI.toURL()
32
*/
33
34
import java.net.*;
35
import java.util.Objects;
36
37
public class URItoURLTest {
38
39
public static void main(String args[]) throws Exception {
40
41
URL classUrl = new URL("jrt:/java.base/java/lang/Object.class");
42
43
String[] uris = {
44
"mailto:[email protected]",
45
"file:xyz#ab",
46
"http:abc/xyz/pqr",
47
"http:abc/xyz/pqr?id=x%0a&ca=true",
48
"file:/C:/v700/dev/unitTesting/tests/apiUtil/uri",
49
"http:///p",
50
"file:/C:/v700/dev/unitTesting/tests/apiUtil/uri",
51
"file:/C:/v700/dev%20src/unitTesting/tests/apiUtil/uri",
52
"file:/C:/v700/dev%20src/./unitTesting/./tests/apiUtil/uri",
53
"http://localhost:80/abc/./xyz/../pqr?id=x%0a&ca=true",
54
"file:./test/./x",
55
"file:./././%20#i=3",
56
"file:?hmm",
57
"file:.#hmm",
58
classUrl.toExternalForm(),
59
};
60
61
// Strings that represent valid URIs but invalid URLs that should throw
62
// MalformedURLException both when calling toURL and new URL(String)
63
String[] malformedUrls = {
64
"test:/test",
65
"fiel:test",
66
};
67
68
// Non-absolute URIs should throw IAE when calling toURL but will throw
69
// MalformedURLException when calling new URL
70
String[] illegalUris = {
71
"./test",
72
"/test",
73
};
74
75
boolean isTestFailed = false;
76
boolean isURLFailed = false;
77
78
for (String uriString : uris) {
79
URI uri = URI.create(uriString);
80
81
URL url1 = new URL(uri.toString());
82
URL url2 = uri.toURL();
83
System.out.println("Testing URI " + uri);
84
85
if (!url1.equals(url2)) {
86
System.out.println("equals() FAILED");
87
isURLFailed = true;
88
}
89
if (url1.hashCode() != url2.hashCode()) {
90
System.out.println("hashCode() DIDN'T MATCH");
91
isURLFailed = true;
92
}
93
if (!url1.sameFile(url2)) {
94
System.out.println("sameFile() FAILED");
95
isURLFailed = true;
96
}
97
98
if (!equalsComponents("getPath()", url1.getPath(),
99
url2.getPath())) {
100
isURLFailed = true;
101
}
102
if (!equalsComponents("getFile()", url1.getFile(),
103
url2.getFile())) {
104
isURLFailed = true;
105
}
106
if (!equalsComponents("getHost()", url1.getHost(),
107
url2.getHost())) {
108
isURLFailed = true;
109
}
110
if (!equalsComponents("getAuthority()",
111
url1.getAuthority(), url2.getAuthority())) {
112
isURLFailed = true;
113
}
114
if (!equalsComponents("getRef()", url1.getRef(),
115
url2.getRef())) {
116
isURLFailed = true;
117
}
118
if (!equalsComponents("getUserInfo()", url1.getUserInfo(),
119
url2.getUserInfo())) {
120
isURLFailed = true;
121
}
122
if (!equalsComponents("toString()", url1.toString(),
123
url2.toString())) {
124
isURLFailed = true;
125
}
126
127
if (isURLFailed) {
128
isTestFailed = true;
129
} else {
130
System.out.println("PASSED ..");
131
}
132
System.out.println();
133
isURLFailed = false;
134
}
135
for (String malformedUrl : malformedUrls) {
136
Exception toURLEx = null;
137
Exception newURLEx = null;
138
try {
139
new URI(malformedUrl).toURL();
140
} catch (Exception e) {
141
// expected
142
toURLEx = e;
143
}
144
try {
145
new URL(new URI(malformedUrl).toString());
146
} catch (Exception e) {
147
// expected
148
newURLEx = e;
149
}
150
if (!(toURLEx instanceof MalformedURLException) ||
151
!(newURLEx instanceof MalformedURLException) ||
152
!toURLEx.getMessage().equals(newURLEx.getMessage())) {
153
isTestFailed = true;
154
System.out.println("Expected the same MalformedURLException: " +
155
newURLEx + " vs " + toURLEx);
156
}
157
}
158
for (String illegalUri : illegalUris) {
159
try {
160
new URI(illegalUri).toURL();
161
} catch (IllegalArgumentException e) {
162
// pass
163
}
164
165
try {
166
new URL(illegalUri);
167
} catch (MalformedURLException e) {
168
// pass
169
}
170
}
171
if (isTestFailed) {
172
throw new Exception("URI.toURL() test failed");
173
}
174
}
175
176
static boolean equalsComponents(String method, String comp1, String comp2) {
177
if ((comp1 != null) && (!comp1.equals(comp2))) {
178
System.out.println(method + " DIDN'T MATCH" +
179
" ===>");
180
System.out.println(" URL(URI.toString()) returns:" + comp1);
181
System.out.println(" URI.toURL() returns:" + comp2);
182
return false;
183
}
184
return true;
185
}
186
}
187
188