8228969: 2019-09-28 public suffix list update
Reviewed-by: mullan
This commit is contained in:
parent
26da13e59c
commit
055a49a266
@ -1,2 +1,2 @@
|
||||
Github: https://raw.githubusercontent.com/publicsuffix/list/ce0d1a5fba657e55adea3abde4b7f1e50636ff10/public_suffix_list.dat
|
||||
Date: 2019-01-28
|
||||
Github: https://raw.githubusercontent.com/publicsuffix/list/33c1c788decfed1052089fa27e3005fe4088dec3/public_suffix_list.dat
|
||||
Date: 2019-09-28
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -11,7 +11,7 @@ If you do not wish to use the Public Suffix List, you may remove the
|
||||
|
||||
The Source Code of this file is available under the
|
||||
Mozilla Public License, v. 2.0 and is located at
|
||||
https://raw.githubusercontent.com/publicsuffix/list/ce0d1a5fba657e55adea3abde4b7f1e50636ff10/public_suffix_list.dat.
|
||||
https://raw.githubusercontent.com/publicsuffix/list/33c1c788decfed1052089fa27e3005fe4088dec3/public_suffix_list.dat.
|
||||
If a copy of the MPL was not distributed with this file, you can obtain one
|
||||
at https://mozilla.org/MPL/2.0/.
|
||||
|
||||
|
107
test/jdk/sun/security/util/RegisteredDomain/ParseNames.java
Normal file
107
test/jdk/sun/security/util/RegisteredDomain/ParseNames.java
Normal file
@ -0,0 +1,107 @@
|
||||
/*
|
||||
* Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 8228969
|
||||
* @modules java.base/sun.security.util
|
||||
* @summary unit test for RegisteredDomain
|
||||
*/
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import sun.security.util.RegisteredDomain;
|
||||
|
||||
public class ParseNames {
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
String dir = System.getProperty("test.src", ".");
|
||||
File f = new File(dir, "tests.dat");
|
||||
try (FileInputStream fis = new FileInputStream(f)) {
|
||||
InputStreamReader r = new InputStreamReader(fis, "UTF-8");
|
||||
BufferedReader reader = new BufferedReader(r);
|
||||
|
||||
String s;
|
||||
int linenumber = 0;
|
||||
boolean allTestsPass = true;
|
||||
|
||||
while ((s = reader.readLine()) != null) {
|
||||
linenumber++;
|
||||
if ("".equals(s) || s.charAt(0) == '#') {
|
||||
continue;
|
||||
}
|
||||
String[] tokens = s.split("\\s+");
|
||||
if (tokens.length != 3) {
|
||||
throw new Exception(
|
||||
String.format("Line %d: test data format incorrect",
|
||||
linenumber));
|
||||
}
|
||||
if (tokens[1].equals("null")) {
|
||||
tokens[1] = null;
|
||||
}
|
||||
if (tokens[2].equals("null")) {
|
||||
tokens[2] = null;
|
||||
}
|
||||
allTestsPass &= runTest(linenumber, tokens[0],
|
||||
tokens[1], tokens[2]);
|
||||
}
|
||||
if (allTestsPass) {
|
||||
System.out.println("Test passed.");
|
||||
} else {
|
||||
throw new Exception("Test failed.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean runTest(int lnum, String target,
|
||||
String expPubSuffix, String expRegDomain) {
|
||||
|
||||
System.out.println("target:" + target);
|
||||
Optional<RegisteredDomain> rd = RegisteredDomain.from(target);
|
||||
String regName = rd.map(RegisteredDomain::name).orElse(null);
|
||||
if (!Objects.equals(expRegDomain, regName)) {
|
||||
System.out.printf(
|
||||
"Line %d: %s, Expected registered domain: %s, Got: %s\n",
|
||||
lnum, target, expRegDomain, regName);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (expRegDomain == null) {
|
||||
return true;
|
||||
}
|
||||
|
||||
String pubSuffix = rd.map(RegisteredDomain::publicSuffix).orElse(null);
|
||||
if (!Objects.equals(expPubSuffix, pubSuffix)) {
|
||||
System.out.printf(
|
||||
"Line %d: %s, Expected public suffix: %s, Got: %s\n",
|
||||
lnum, target, expPubSuffix, pubSuffix);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
147
test/jdk/sun/security/util/RegisteredDomain/tests.dat
Normal file
147
test/jdk/sun/security/util/RegisteredDomain/tests.dat
Normal file
@ -0,0 +1,147 @@
|
||||
# This file is UTF-8 encoded.
|
||||
#
|
||||
# Test Expected Expected
|
||||
# String Public Suffix Registered Domain
|
||||
#
|
||||
|
||||
# ac
|
||||
foo.ac ac foo.ac
|
||||
www.foo.ac ac foo.ac
|
||||
com.ac com.ac null
|
||||
www.foo.com.ac com.ac foo.com.ac
|
||||
www.foo.mil.ac mil.ac foo.mil.ac
|
||||
ac ac null
|
||||
|
||||
# Will not match anything in the public suffix list
|
||||
biff.barr null null
|
||||
|
||||
# aero
|
||||
www.site.gliding.aero gliding.aero site.gliding.aero
|
||||
media.aero media.aero null
|
||||
foo.media.aero media.aero foo.media.aero
|
||||
www.bar.aero aero bar.aero
|
||||
|
||||
# aq: domain with only one entry
|
||||
aq aq null
|
||||
foo.aq aq foo.aq
|
||||
www.foo.aq aq foo.aq
|
||||
|
||||
# arpa:
|
||||
1.2.3.4.in-addr.arpa in-addr.arpa 4.in-addr.arpa
|
||||
arpa arpa null
|
||||
|
||||
# au
|
||||
au au null
|
||||
com.au com.au null
|
||||
site.com.au com.au site.com.au
|
||||
foo.act.edu.au act.edu.au foo.act.edu.au
|
||||
w.foo.act.edu.au act.edu.au foo.act.edu.au
|
||||
www.site.act.au act.au site.act.au
|
||||
|
||||
# bd consists of only one wildcard
|
||||
bd null null
|
||||
foo.bd foo.bd null
|
||||
site.foo.bd foo.bd site.foo.bd
|
||||
w.site.foo.bd foo.bd site.foo.bd
|
||||
|
||||
# bg has single-letter and single-digit labels
|
||||
bg bg null
|
||||
site.bg bg site.bg
|
||||
site.1.bg 1.bg site.1.bg
|
||||
site.z.bg z.bg site.z.bg
|
||||
w.site.z.bg z.bg site.z.bg
|
||||
|
||||
# biz
|
||||
biz biz null
|
||||
site.biz biz site.biz
|
||||
w.site.biz biz site.biz
|
||||
|
||||
# cn (unicode)
|
||||
#
|
||||
foo.mil.cn mil.cn foo.mil.cn
|
||||
w.foo.mil.cn mil.cn foo.mil.cn
|
||||
foo.公司.cn 公司.cn foo.公司.cn
|
||||
w.foo.公司.cn 公司.cn foo.公司.cn
|
||||
|
||||
# com
|
||||
www.foo.com com foo.com
|
||||
z.www.foo.com com foo.com
|
||||
com com null
|
||||
ar.com ar.com null
|
||||
site.ar.com ar.com site.ar.com
|
||||
w.site.ar.com ar.com site.ar.com
|
||||
|
||||
# ie
|
||||
www.foo.ie ie foo.ie
|
||||
www.foo.gov.ie gov.ie foo.gov.ie
|
||||
|
||||
# it has a large number of entries
|
||||
www.gr.it gr.it www.gr.it
|
||||
www.blahblahblah.it it blahblahblah.it
|
||||
|
||||
# jp has a large number of entries, including wildcard and exception rules
|
||||
jp jp null
|
||||
foo.jp jp foo.jp
|
||||
ac.jp ac.jp null
|
||||
foo.ac.jp ac.jp foo.ac.jp
|
||||
w.foo.ac.jp ac.jp foo.ac.jp
|
||||
foo.tokyo.jp tokyo.jp foo.tokyo.jp
|
||||
w.foo.tokyo.jp tokyo.jp foo.tokyo.jp
|
||||
p.w.foo.tokyo.jp tokyo.jp foo.tokyo.jp
|
||||
metro.tokyo.jp tokyo.jp metro.tokyo.jp
|
||||
w.metro.tokyo.jp tokyo.jp metro.tokyo.jp
|
||||
foo.kawasaki.jp foo.kawasaki.jp null
|
||||
w.foo.kawasaki.jp foo.kawasaki.jp w.foo.kawasaki.jp
|
||||
p.w.foo.kawasaki.jp foo.kawasaki.jp w.foo.kawasaki.jp
|
||||
city.kawasaki.jp kawasaki.jp city.kawasaki.jp
|
||||
w.city.kawasaki.jp kawasaki.jp city.kawasaki.jp
|
||||
|
||||
# kw
|
||||
www.example.kw kw example.kw
|
||||
www.example.com.kw com.kw example.com.kw
|
||||
|
||||
# no (three level public prefixes)
|
||||
foo.no no foo.no
|
||||
w.foo.no no foo.no
|
||||
foo.gs.mr.no gs.mr.no foo.gs.mr.no
|
||||
w.foo.gs.mr.no gs.mr.no foo.gs.mr.no
|
||||
w.ålgård.no ålgård.no w.ålgård.no
|
||||
|
||||
# tr
|
||||
tr tr null
|
||||
foo.tr tr foo.tr
|
||||
site.foo.tr tr foo.tr
|
||||
www.site.foo.tr tr foo.tr
|
||||
w.www.site.foo.tr tr foo.tr
|
||||
nic.tr tr nic.tr
|
||||
tsk.tr tsk.tr null
|
||||
one.tsk.tr tsk.tr one.tsk.tr
|
||||
two.one.tsk.tr tsk.tr one.tsk.tr
|
||||
|
||||
# uk
|
||||
foo.uk uk foo.uk
|
||||
site.foo.uk uk foo.uk
|
||||
w.site.foo.uk uk foo.uk
|
||||
foo.sch.uk foo.sch.uk null
|
||||
s.foo.sch.uk foo.sch.uk s.foo.sch.uk
|
||||
w.s.foo.sch.uk foo.sch.uk s.foo.sch.uk
|
||||
www.nhs.uk nhs.uk www.nhs.uk
|
||||
www.nls.uk uk nls.uk
|
||||
|
||||
# us
|
||||
site.fl.us fl.us site.fl.us
|
||||
w.site.fl.us fl.us site.fl.us
|
||||
foo.us us foo.us
|
||||
s.k12.ak.us k12.ak.us s.k12.ak.us
|
||||
w.s.k12.ak.us k12.ak.us s.k12.ak.us
|
||||
w.s.k12.oh.us k12.oh.us s.k12.oh.us
|
||||
s.k12.oh.us k12.oh.us s.k12.oh.us
|
||||
s.pvt.k12.ma.us pvt.k12.ma.us s.pvt.k12.ma.us
|
||||
w.s.pvt.k12.ma.us pvt.k12.ma.us s.pvt.k12.ma.us
|
||||
|
||||
# السعودية
|
||||
السعودية السعودية null
|
||||
foo.السعودية السعودية foo.السعودية
|
||||
w.foo.السعودية السعودية foo.السعودية
|
||||
|
||||
## END
|
Loading…
x
Reference in New Issue
Block a user