Skip to content

Commit 4cf5599

Browse files
authored
Merge pull request #776 from davishmcclurg/idn-hostname-separators
More hostname label separator tests
2 parents cabbd65 + a930db4 commit 4cf5599

File tree

10 files changed

+330
-0
lines changed

10 files changed

+330
-0
lines changed

tests/draft2019-09/optional/format/hostname.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,21 @@
130130
"description": "single dot",
131131
"data": ".",
132132
"valid": false
133+
},
134+
{
135+
"description": "leading dot",
136+
"data": ".example",
137+
"valid": false
138+
},
139+
{
140+
"description": "trailing dot",
141+
"data": "example.",
142+
"valid": false
143+
},
144+
{
145+
"description": "IDN label separator",
146+
"data": "example\uff0ecom",
147+
"valid": false
133148
}
134149
]
135150
}

tests/draft2019-09/optional/format/idn-hostname.json

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -383,6 +383,66 @@
383383
"description": "halfwidth ideographic full stop as label separator",
384384
"data": "a\uff61b",
385385
"valid": true
386+
},
387+
{
388+
"description": "leading dot",
389+
"data": ".example",
390+
"valid": false
391+
},
392+
{
393+
"description": "leading ideographic full stop",
394+
"data": "\u3002example",
395+
"valid": false
396+
},
397+
{
398+
"description": "leading fullwidth full stop",
399+
"data": "\uff0eexample",
400+
"valid": false
401+
},
402+
{
403+
"description": "leading halfwidth ideographic full stop",
404+
"data": "\uff61example",
405+
"valid": false
406+
},
407+
{
408+
"description": "trailing dot",
409+
"data": "example.",
410+
"valid": false
411+
},
412+
{
413+
"description": "trailing ideographic full stop",
414+
"data": "example\u3002",
415+
"valid": false
416+
},
417+
{
418+
"description": "trailing fullwidth full stop",
419+
"data": "example\uff0e",
420+
"valid": false
421+
},
422+
{
423+
"description": "trailing halfwidth ideographic full stop",
424+
"data": "example\uff61",
425+
"valid": false
426+
},
427+
{
428+
"description": "label too long if separator ignored (full stop)",
429+
"data": "παράδειγμαπαράδειγμαπαράδειγμαπαράδειγμαπαράδειγμαπα.com",
430+
"valid": true
431+
},
432+
{
433+
"description": "label too long if separator ignored (ideographic full stop)",
434+
"data": "παράδειγμαπαράδειγμαπαράδειγμαπαράδειγμαπαράδειγμαπα\u3002com",
435+
"valid": true
436+
},
437+
{
438+
"description": "label too long if separator ignored (fullwidth full stop)",
439+
"data": "παράδειγμαπαράδειγμαπαράδειγμαπαράδειγμαπαράδειγμαπα\uff0ecom",
440+
"valid": true
441+
},
442+
{
443+
"description": "label too long if separator ignored (halfwidth ideographic full stop)",
444+
"data": "παράδειγμαπαράδειγμαπαράδειγμαπαράδειγμαπαράδειγμαπα\uff61com",
445+
"valid": true
386446
}
387447
]
388448
}

tests/draft2020-12/optional/format/hostname.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,21 @@
130130
"description": "single dot",
131131
"data": ".",
132132
"valid": false
133+
},
134+
{
135+
"description": "leading dot",
136+
"data": ".example",
137+
"valid": false
138+
},
139+
{
140+
"description": "trailing dot",
141+
"data": "example.",
142+
"valid": false
143+
},
144+
{
145+
"description": "IDN label separator",
146+
"data": "example\uff0ecom",
147+
"valid": false
133148
}
134149
]
135150
}

tests/draft2020-12/optional/format/idn-hostname.json

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -383,6 +383,66 @@
383383
"description": "halfwidth ideographic full stop as label separator",
384384
"data": "a\uff61b",
385385
"valid": true
386+
},
387+
{
388+
"description": "leading dot",
389+
"data": ".example",
390+
"valid": false
391+
},
392+
{
393+
"description": "leading ideographic full stop",
394+
"data": "\u3002example",
395+
"valid": false
396+
},
397+
{
398+
"description": "leading fullwidth full stop",
399+
"data": "\uff0eexample",
400+
"valid": false
401+
},
402+
{
403+
"description": "leading halfwidth ideographic full stop",
404+
"data": "\uff61example",
405+
"valid": false
406+
},
407+
{
408+
"description": "trailing dot",
409+
"data": "example.",
410+
"valid": false
411+
},
412+
{
413+
"description": "trailing ideographic full stop",
414+
"data": "example\u3002",
415+
"valid": false
416+
},
417+
{
418+
"description": "trailing fullwidth full stop",
419+
"data": "example\uff0e",
420+
"valid": false
421+
},
422+
{
423+
"description": "trailing halfwidth ideographic full stop",
424+
"data": "example\uff61",
425+
"valid": false
426+
},
427+
{
428+
"description": "label too long if separator ignored (full stop)",
429+
"data": "παράδειγμαπαράδειγμαπαράδειγμαπαράδειγμαπαράδειγμαπα.com",
430+
"valid": true
431+
},
432+
{
433+
"description": "label too long if separator ignored (ideographic full stop)",
434+
"data": "παράδειγμαπαράδειγμαπαράδειγμαπαράδειγμαπαράδειγμαπα\u3002com",
435+
"valid": true
436+
},
437+
{
438+
"description": "label too long if separator ignored (fullwidth full stop)",
439+
"data": "παράδειγμαπαράδειγμαπαράδειγμαπαράδειγμαπαράδειγμαπα\uff0ecom",
440+
"valid": true
441+
},
442+
{
443+
"description": "label too long if separator ignored (halfwidth ideographic full stop)",
444+
"data": "παράδειγμαπαράδειγμαπαράδειγμαπαράδειγμαπαράδειγμαπα\uff61com",
445+
"valid": true
386446
}
387447
]
388448
}

tests/draft4/optional/format/hostname.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,21 @@
122122
"description": "single dot",
123123
"data": ".",
124124
"valid": false
125+
},
126+
{
127+
"description": "leading dot",
128+
"data": ".example",
129+
"valid": false
130+
},
131+
{
132+
"description": "trailing dot",
133+
"data": "example.",
134+
"valid": false
135+
},
136+
{
137+
"description": "IDN label separator",
138+
"data": "example\uff0ecom",
139+
"valid": false
125140
}
126141
]
127142
}

tests/draft6/optional/format/hostname.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,21 @@
122122
"description": "single dot",
123123
"data": ".",
124124
"valid": false
125+
},
126+
{
127+
"description": "leading dot",
128+
"data": ".example",
129+
"valid": false
130+
},
131+
{
132+
"description": "trailing dot",
133+
"data": "example.",
134+
"valid": false
135+
},
136+
{
137+
"description": "IDN label separator",
138+
"data": "example\uff0ecom",
139+
"valid": false
125140
}
126141
]
127142
}

tests/draft7/optional/format/hostname.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,21 @@
122122
"description": "single dot",
123123
"data": ".",
124124
"valid": false
125+
},
126+
{
127+
"description": "leading dot",
128+
"data": ".example",
129+
"valid": false
130+
},
131+
{
132+
"description": "trailing dot",
133+
"data": "example.",
134+
"valid": false
135+
},
136+
{
137+
"description": "IDN label separator",
138+
"data": "example\uff0ecom",
139+
"valid": false
125140
}
126141
]
127142
}

tests/draft7/optional/format/idn-hostname.json

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -372,6 +372,66 @@
372372
"description": "halfwidth ideographic full stop as label separator",
373373
"data": "a\uff61b",
374374
"valid": true
375+
},
376+
{
377+
"description": "leading dot",
378+
"data": ".example",
379+
"valid": false
380+
},
381+
{
382+
"description": "leading ideographic full stop",
383+
"data": "\u3002example",
384+
"valid": false
385+
},
386+
{
387+
"description": "leading fullwidth full stop",
388+
"data": "\uff0eexample",
389+
"valid": false
390+
},
391+
{
392+
"description": "leading halfwidth ideographic full stop",
393+
"data": "\uff61example",
394+
"valid": false
395+
},
396+
{
397+
"description": "trailing dot",
398+
"data": "example.",
399+
"valid": false
400+
},
401+
{
402+
"description": "trailing ideographic full stop",
403+
"data": "example\u3002",
404+
"valid": false
405+
},
406+
{
407+
"description": "trailing fullwidth full stop",
408+
"data": "example\uff0e",
409+
"valid": false
410+
},
411+
{
412+
"description": "trailing halfwidth ideographic full stop",
413+
"data": "example\uff61",
414+
"valid": false
415+
},
416+
{
417+
"description": "label too long if separator ignored (full stop)",
418+
"data": "παράδειγμαπαράδειγμαπαράδειγμαπαράδειγμαπαράδειγμαπα.com",
419+
"valid": true
420+
},
421+
{
422+
"description": "label too long if separator ignored (ideographic full stop)",
423+
"data": "παράδειγμαπαράδειγμαπαράδειγμαπαράδειγμαπαράδειγμαπα\u3002com",
424+
"valid": true
425+
},
426+
{
427+
"description": "label too long if separator ignored (fullwidth full stop)",
428+
"data": "παράδειγμαπαράδειγμαπαράδειγμαπαράδειγμαπαράδειγμαπα\uff0ecom",
429+
"valid": true
430+
},
431+
{
432+
"description": "label too long if separator ignored (halfwidth ideographic full stop)",
433+
"data": "παράδειγμαπαράδειγμαπαράδειγμαπαράδειγμαπαράδειγμαπα\uff61com",
434+
"valid": true
375435
}
376436
]
377437
}

tests/v1/format/hostname.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,21 @@
130130
"description": "single dot",
131131
"data": ".",
132132
"valid": false
133+
},
134+
{
135+
"description": "leading dot",
136+
"data": ".example",
137+
"valid": false
138+
},
139+
{
140+
"description": "trailing dot",
141+
"data": "example.",
142+
"valid": false
143+
},
144+
{
145+
"description": "IDN label separator",
146+
"data": "example\uff0ecom",
147+
"valid": false
133148
}
134149
]
135150
}

tests/v1/format/idn-hostname.json

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -383,6 +383,66 @@
383383
"description": "halfwidth ideographic full stop as label separator",
384384
"data": "a\uff61b",
385385
"valid": true
386+
},
387+
{
388+
"description": "leading dot",
389+
"data": ".example",
390+
"valid": false
391+
},
392+
{
393+
"description": "leading ideographic full stop",
394+
"data": "\u3002example",
395+
"valid": false
396+
},
397+
{
398+
"description": "leading fullwidth full stop",
399+
"data": "\uff0eexample",
400+
"valid": false
401+
},
402+
{
403+
"description": "leading halfwidth ideographic full stop",
404+
"data": "\uff61example",
405+
"valid": false
406+
},
407+
{
408+
"description": "trailing dot",
409+
"data": "example.",
410+
"valid": false
411+
},
412+
{
413+
"description": "trailing ideographic full stop",
414+
"data": "example\u3002",
415+
"valid": false
416+
},
417+
{
418+
"description": "trailing fullwidth full stop",
419+
"data": "example\uff0e",
420+
"valid": false
421+
},
422+
{
423+
"description": "trailing halfwidth ideographic full stop",
424+
"data": "example\uff61",
425+
"valid": false
426+
},
427+
{
428+
"description": "label too long if separator ignored (full stop)",
429+
"data": "παράδειγμαπαράδειγμαπαράδειγμαπαράδειγμαπαράδειγμαπα.com",
430+
"valid": true
431+
},
432+
{
433+
"description": "label too long if separator ignored (ideographic full stop)",
434+
"data": "παράδειγμαπαράδειγμαπαράδειγμαπαράδειγμαπαράδειγμαπα\u3002com",
435+
"valid": true
436+
},
437+
{
438+
"description": "label too long if separator ignored (fullwidth full stop)",
439+
"data": "παράδειγμαπαράδειγμαπαράδειγμαπαράδειγμαπαράδειγμαπα\uff0ecom",
440+
"valid": true
441+
},
442+
{
443+
"description": "label too long if separator ignored (halfwidth ideographic full stop)",
444+
"data": "παράδειγμαπαράδειγμαπαράδειγμαπαράδειγμαπαράδειγμαπα\uff61com",
445+
"valid": true
386446
}
387447
]
388448
}

0 commit comments

Comments
 (0)