Skip to content

Commit 6f0bc1d

Browse files
authored
Add Augmented Latin IDN table to IDN enums (#2914)
This was added in #2884 , but now as of this PR it can actually be configured and used on a TLD.
1 parent db9fc32 commit 6f0bc1d

File tree

8 files changed

+35
-9
lines changed

8 files changed

+35
-9
lines changed

core/src/main/java/google/registry/tldconfig/idn/IdnTableEnum.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,15 @@ public enum IdnTableEnum {
4343
*/
4444
UNCONFUSABLE_LATIN("unconfusable_latin.txt"),
4545

46+
/**
47+
* ICANN LGR 2025 Latin, but with confusable characters removed.
48+
*
49+
* <p>This is based on <a
50+
* href="https://www.icann.org/sites/default/files/packages/lgr/lgr-second-level-latin-full-variant-script-24jan24-en.html">ICANN's
51+
* LGR table</a>, but is simpler.
52+
*/
53+
AUGMENTED_LATIN("augmented_latin.txt"),
54+
4655
/**
4756
* Japanese, as used on our existing TLD launches prior to 2023.
4857
*

core/src/main/java/google/registry/tldconfig/idn/augmented_latin.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# URL: https://www.iana.org/domains/idn-tables/tables/google_latn_1.0.txt
1+
# URL: https://www.iana.org/domains/idn-tables/tables/google_latn_3.0.txt
22
# Policy: https://www.registry.google/about/policies/domainabuse/
33
U+002D # HYPHEN-MINUS
44
U+0030 # DIGIT ZERO

core/src/test/java/google/registry/bsa/IdnCheckerTest.java

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import static com.google.common.truth.Truth.assertThat;
1818
import static google.registry.testing.DatabaseHelper.createTld;
1919
import static google.registry.testing.DatabaseHelper.persistResource;
20+
import static google.registry.tldconfig.idn.IdnTableEnum.AUGMENTED_LATIN;
2021
import static google.registry.tldconfig.idn.IdnTableEnum.EXTENDED_LATIN;
2122
import static google.registry.tldconfig.idn.IdnTableEnum.JA;
2223
import static google.registry.tldconfig.idn.IdnTableEnum.UNCONFUSABLE_LATIN;
@@ -43,13 +44,15 @@ public class IdnCheckerTest {
4344
Tld jaonly;
4445
Tld jandelatin;
4546
Tld strictlatin;
47+
Tld auglatin;
4648
IdnChecker idnChecker;
4749

4850
@BeforeEach
4951
void setup() {
5052
jaonly = createTld("jaonly");
5153
jandelatin = createTld("jandelatin");
5254
strictlatin = createTld("strictlatin");
55+
auglatin = createTld("auglatin");
5356

5457
jaonly =
5558
persistResource(
@@ -72,19 +75,27 @@ void setup() {
7275
.setBsaEnrollStartTime(Optional.of(fakeClock.nowUtc()))
7376
.setIdnTables(ImmutableSet.of(UNCONFUSABLE_LATIN))
7477
.build());
78+
auglatin =
79+
persistResource(
80+
auglatin
81+
.asBuilder()
82+
.setBsaEnrollStartTime(Optional.of(fakeClock.nowUtc()))
83+
.setIdnTables(ImmutableSet.of(AUGMENTED_LATIN))
84+
.build());
7585
fakeClock.advanceOneMilli();
7686
idnChecker = new IdnChecker(fakeClock);
7787
}
7888

7989
@Test
8090
void getAllValidIdns_allTlds() {
8191
assertThat(idnChecker.getAllValidIdns("all"))
82-
.containsExactly(EXTENDED_LATIN, JA, UNCONFUSABLE_LATIN);
92+
.containsExactly(EXTENDED_LATIN, JA, UNCONFUSABLE_LATIN, AUGMENTED_LATIN);
8393
}
8494

8595
@Test
8696
void getAllValidIdns_notJa() {
87-
assertThat(idnChecker.getAllValidIdns("à")).containsExactly(EXTENDED_LATIN, UNCONFUSABLE_LATIN);
97+
assertThat(idnChecker.getAllValidIdns("à"))
98+
.containsExactly(EXTENDED_LATIN, UNCONFUSABLE_LATIN, AUGMENTED_LATIN);
8899
}
89100

90101
@Test
@@ -116,6 +127,7 @@ void getSupportingTlds_multiTld_success() {
116127

117128
@Test
118129
void getForbiddingTlds_success() {
119-
assertThat(idnChecker.getForbiddingTlds(ImmutableSet.of("JA"))).containsExactly(strictlatin);
130+
assertThat(idnChecker.getForbiddingTlds(ImmutableSet.of("JA")))
131+
.containsExactly(strictlatin, auglatin);
120132
}
121133
}

core/src/test/resources/google/registry/beam/rde/reducer_rde.xml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@
2626
<rdeIDN:urlPolicy>https://www.registry.google/about/policies/domainabuse/</rdeIDN:urlPolicy>
2727
</rdeIDN:idnTableRef>
2828

29+
<rdeIDN:idnTableRef id="augmented_latin">
30+
<rdeIDN:url>https://www.iana.org/domains/idn-tables/tables/google_latn_3.0.txt</rdeIDN:url>
31+
<rdeIDN:urlPolicy>https://www.registry.google/about/policies/domainabuse/</rdeIDN:urlPolicy>
32+
</rdeIDN:idnTableRef>
33+
2934
<rdeIDN:idnTableRef id="ja">
3035
<rdeIDN:url>https://www.iana.org/domains/idn-tables/tables/google_ja_1.0.txt</rdeIDN:url>
3136
<rdeIDN:urlPolicy>https://www.registry.google/about/policies/domainabuse/</rdeIDN:urlPolicy>
@@ -37,7 +42,7 @@
3742
<rdeHeader:count uri="urn:ietf:params:xml:ns:rdeDomain-1.0">1</rdeHeader:count>
3843
<rdeHeader:count uri="urn:ietf:params:xml:ns:rdeHost-1.0">1</rdeHeader:count>
3944
<rdeHeader:count uri="urn:ietf:params:xml:ns:rdeRegistrar-1.0">1</rdeHeader:count>
40-
<rdeHeader:count uri="urn:ietf:params:xml:ns:rdeIDN-1.0">3</rdeHeader:count>
45+
<rdeHeader:count uri="urn:ietf:params:xml:ns:rdeIDN-1.0">4</rdeHeader:count>
4146
</rdeHeader:header>
4247

4348
</rde:contents>

core/src/test/resources/google/registry/beam/rde/reducer_rde_report.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@
1414
<rdeHeader:count uri="urn:ietf:params:xml:ns:rdeDomain-1.0">1</rdeHeader:count>
1515
<rdeHeader:count uri="urn:ietf:params:xml:ns:rdeHost-1.0">1</rdeHeader:count>
1616
<rdeHeader:count uri="urn:ietf:params:xml:ns:rdeRegistrar-1.0">1</rdeHeader:count>
17-
<rdeHeader:count uri="urn:ietf:params:xml:ns:rdeIDN-1.0">3</rdeHeader:count>
17+
<rdeHeader:count uri="urn:ietf:params:xml:ns:rdeIDN-1.0">4</rdeHeader:count>
1818
</rdeHeader:header>
1919
</rdeReport:report>

core/src/test/resources/google/registry/rde/testMapReduce_withDomain_producesExpectedXml.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@
261261
<rdeHeader:count uri="urn:ietf:params:xml:ns:rdeDomain-1.0">1</rdeHeader:count>
262262
<rdeHeader:count uri="urn:ietf:params:xml:ns:rdeHost-1.0">2</rdeHeader:count>
263263
<rdeHeader:count uri="urn:ietf:params:xml:ns:rdeRegistrar-1.0">2</rdeHeader:count>
264-
<rdeHeader:count uri="urn:ietf:params:xml:ns:rdeIDN-1.0">3</rdeHeader:count>
264+
<rdeHeader:count uri="urn:ietf:params:xml:ns:rdeIDN-1.0">4</rdeHeader:count>
265265
</rdeHeader:header>
266266

267267
</rde:contents>

core/src/test/resources/google/registry/rde/testMapReduce_withDomain_producesReportXml.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,6 @@
3737
<rdeHeader:count uri="urn:ietf:params:xml:ns:rdeDomain-1.0">1</rdeHeader:count>
3838
<rdeHeader:count uri="urn:ietf:params:xml:ns:rdeHost-1.0">2</rdeHeader:count>
3939
<rdeHeader:count uri="urn:ietf:params:xml:ns:rdeRegistrar-1.0">2</rdeHeader:count>
40-
<rdeHeader:count uri="urn:ietf:params:xml:ns:rdeIDN-1.0">3</rdeHeader:count>
40+
<rdeHeader:count uri="urn:ietf:params:xml:ns:rdeIDN-1.0">4</rdeHeader:count>
4141
</rdeHeader:header>
4242
</rdeReport:report>

core/src/test/resources/google/registry/tools/server/xn--q9jyb4c_2010-10-17_full_S1_R0.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@
135135
<rdeHeader:count uri="urn:ietf:params:xml:ns:rdeContact-1.0">0</rdeHeader:count>
136136
<rdeHeader:count uri="urn:ietf:params:xml:ns:rdeHost-1.0">1</rdeHeader:count>
137137
<rdeHeader:count uri="urn:ietf:params:xml:ns:rdeRegistrar-1.0">2</rdeHeader:count>
138-
<rdeHeader:count uri="urn:ietf:params:xml:ns:rdeIDN-1.0">3</rdeHeader:count>
138+
<rdeHeader:count uri="urn:ietf:params:xml:ns:rdeIDN-1.0">4</rdeHeader:count>
139139
</rdeHeader:header>
140140

141141
</rde:contents>

0 commit comments

Comments
 (0)