File: 01-psuffix.t

package info (click to toggle)
libmozilla-publicsuffix-perl 1.0.7-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 500 kB
  • sloc: perl: 251; makefile: 2
file content (103 lines) | stat: -rw-r--r-- 3,445 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#!/usr/bin/env perl

use strict;
use warnings FATAL => 'all';
use utf8;
use open qw(:std :encoding(UTF-8));

use Test::More tests => 67;
use Mozilla::PublicSuffix qw(public_suffix);


# Obviously invalid input:
is public_suffix(undef), undef;
is public_suffix(''), undef;
is public_suffix([]), undef;

# Mixed case:
is public_suffix('COM'), 'com';
is public_suffix('example.COM'), 'com';
is public_suffix('WwW.example.COM'), 'com';
is public_suffix('123bar.com'), 'com';
is public_suffix('foo.123bar.com'), 'com';

# Leading dot:
is public_suffix('.com'), undef;
is public_suffix('.example'), undef;
is public_suffix('.example.com'), undef;
is public_suffix('.example.example'), undef;

# Unlisted TLD:
is public_suffix('example'), undef;
is public_suffix('example.example'), undef;
is public_suffix('b.example.example'), undef;
is public_suffix('a.b.example.example'), undef;

# Listed, but non-Internet, TLD:
is public_suffix('local'), undef;
is public_suffix('example.local'), undef;
is public_suffix('b.example.local'), undef;
is public_suffix('a.b.example.local'), undef;

# TLD with only one rule:
is public_suffix('biz'), 'biz';
is public_suffix('domain.biz'), 'biz';
is public_suffix('b.domain.biz'), 'biz';
is public_suffix('a.b.domain.biz'), 'biz';

# TLD with some two-level rules:
is public_suffix('com'), 'com';
is public_suffix('example.com'), 'com';
is public_suffix('b.example.com'), 'com';
is public_suffix('a.b.example.com'), 'com';
is public_suffix('uk.com'), 'uk.com';
is public_suffix('example.uk.com'), 'uk.com';
is public_suffix('b.example.uk.com'), 'uk.com';
is public_suffix('a.b.example.uk.com'), 'uk.com';
is public_suffix('test.ac'), 'ac';

# TLD with only one (wildcard) rule:
is public_suffix('il'), 'il';
is public_suffix('c.il'), 'il';
#is public_suffix('b.c.il'), 'c.il';
#is public_suffix('a.b.c.il'), 'c.il';

# More complex suffixes:
is public_suffix('jp'), 'jp';
is public_suffix('test.jp'), 'jp';
is public_suffix('www.test.jp'), 'jp';
is public_suffix('ac.jp'), 'ac.jp';
is public_suffix('test.ac.jp'), 'ac.jp';
is public_suffix('www.test.ac.jp'), 'ac.jp';
is public_suffix('kyoto.jp'), 'kyoto.jp';
is public_suffix('c.kyoto.jp'), 'kyoto.jp';
is public_suffix('b.c.kyoto.jp'), 'kyoto.jp';
is public_suffix('a.b.c.kyoto.jp'), 'kyoto.jp';
is public_suffix('ayabe.kyoto.jp'), 'ayabe.kyoto.jp';
is public_suffix('test.kobe.jp'), 'test.kobe.jp';     # Wildcard rule.
is public_suffix('www.test.kobe.jp'), 'test.kobe.jp'; # Wildcard rule.
is public_suffix('city.kobe.jp'), 'kobe.jp';          # Exception rule.
is public_suffix('www.city.kobe.jp'), 'kobe.jp';      # Identity rule.

# TLD with a wildcard rule and exceptions:
is public_suffix('ck'), undef;
is public_suffix('test.ck'), 'test.ck';
is public_suffix('b.test.ck'), 'test.ck';
is public_suffix('a.b.test.ck'), 'test.ck';
is public_suffix('www.ck'), 'ck';
is public_suffix('www.www.ck'), 'ck';

# US K12:
is public_suffix('us'), 'us';
is public_suffix('test.us'), 'us';
is public_suffix('www.test.us'), 'us';
is public_suffix('ak.us'), 'ak.us';
is public_suffix('test.ak.us'), 'ak.us';
is public_suffix('www.test.ak.us'), 'ak.us';
is public_suffix('k12.ak.us'), 'k12.ak.us';
is public_suffix('test.k12.ak.us'), 'k12.ak.us';
is public_suffix('www.test.k12.ak.us'), 'k12.ak.us';

# Domains and gTLDs with characters outside the ASCII range:
is public_suffix('test.敎育.hk'), '敎育.hk';
is public_suffix('ਭਾਰਤ.ਭਾਰਤ'), 'ਭਾਰਤ';