# Any copyright is dedicated to the Public Domain. # http://creativecommons.org/publicdomain/zero/1.0/ # NULL input. checkPublicSuffix(NULL, NULL); # Mixed case. checkPublicSuffix('COM', NULL); checkPublicSuffix('example.COM', 'example.com'); checkPublicSuffix('WwW.example.COM', 'example.com'); # Leading dot. checkPublicSuffix('.com', NULL); checkPublicSuffix('.example', NULL); checkPublicSuffix('.example.com', NULL); checkPublicSuffix('.example.example', NULL); # Unlisted TLD. checkPublicSuffix('example', NULL); checkPublicSuffix('example.example', NULL); checkPublicSuffix('b.example.example', NULL); checkPublicSuffix('a.b.example.example', NULL); # Listed, but non-Internet, TLD. #checkPublicSuffix('local', NULL); #checkPublicSuffix('example.local', NULL); #checkPublicSuffix('b.example.local', NULL); #checkPublicSuffix('a.b.example.local', NULL); # TLD with only 1 rule. checkPublicSuffix('biz', NULL); checkPublicSuffix('domain.biz', 'domain.biz'); checkPublicSuffix('b.domain.biz', 'domain.biz'); checkPublicSuffix('a.b.domain.biz', 'domain.biz'); # TLD with some 2-level rules. checkPublicSuffix('com', NULL); checkPublicSuffix('example.com', 'example.com'); checkPublicSuffix('b.example.com', 'example.com'); checkPublicSuffix('a.b.example.com', 'example.com'); checkPublicSuffix('uk.com', NULL); checkPublicSuffix('example.uk.com', 'example.uk.com'); checkPublicSuffix('b.example.uk.com', 'example.uk.com'); checkPublicSuffix('a.b.example.uk.com', 'example.uk.com'); checkPublicSuffix('test.ac', 'test.ac'); # TLD with only 1 (wildcard) rule. checkPublicSuffix('cy', NULL); checkPublicSuffix('c.cy', NULL); checkPublicSuffix('b.c.cy', 'b.c.cy'); checkPublicSuffix('a.b.c.cy', 'b.c.cy'); # More complex TLD. checkPublicSuffix('jp', NULL); checkPublicSuffix('test.jp', 'test.jp'); checkPublicSuffix('www.test.jp', 'test.jp'); checkPublicSuffix('ac.jp', NULL); checkPublicSuffix('test.ac.jp', 'test.ac.jp'); checkPublicSuffix('www.test.ac.jp', 'test.ac.jp'); checkPublicSuffix('kyoto.jp', NULL); checkPublicSuffix('c.kyoto.jp', NULL); checkPublicSuffix('b.c.kyoto.jp', 'b.c.kyoto.jp'); checkPublicSuffix('a.b.c.kyoto.jp', 'b.c.kyoto.jp'); checkPublicSuffix('pref.kyoto.jp', 'pref.kyoto.jp'); # Exception rule. checkPublicSuffix('www.pref.kyoto.jp', 'pref.kyoto.jp'); # Exception rule. checkPublicSuffix('city.kyoto.jp', 'city.kyoto.jp'); # Exception rule. checkPublicSuffix('www.city.kyoto.jp', 'city.kyoto.jp'); # Exception rule. # TLD with a wildcard rule and exceptions. checkPublicSuffix('om', NULL); checkPublicSuffix('test.om', NULL); checkPublicSuffix('b.test.om', 'b.test.om'); checkPublicSuffix('a.b.test.om', 'b.test.om'); checkPublicSuffix('songfest.om', 'songfest.om'); checkPublicSuffix('www.songfest.om', 'songfest.om'); # US K12. checkPublicSuffix('us', NULL); checkPublicSuffix('test.us', 'test.us'); checkPublicSuffix('www.test.us', 'test.us'); checkPublicSuffix('ak.us', NULL); checkPublicSuffix('test.ak.us', 'test.ak.us'); checkPublicSuffix('www.test.ak.us', 'test.ak.us'); checkPublicSuffix('k12.ak.us', NULL); checkPublicSuffix('test.k12.ak.us', 'test.k12.ak.us'); checkPublicSuffix('www.test.k12.ak.us', 'test.k12.ak.us');