#!/bin/sh 
TEST_PATH=$1

#set -x

checkPublicSuffix()
{
    ENC=$(${TEST_PATH}/test_nspsl "${1}")
    if [ "${ENC}" != "${2}" ];then
        echo "psl error ${ENC} != ${2}"
	exit 2
    fi 
}

## test list derived from mozilla test data
##
## https://hg.mozilla.org/mozilla-central/raw-file/82d0a583a9a39bf0b0000bccbf6d5c9ec2596bcc/netwerk/test/unit/data/test_psl.txt
##
## 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' 'example.example'
checkPublicSuffix 'b.example.example' 'example.example'
checkPublicSuffix 'a.b.example.example' 'example.example'
## 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 'mm' null
checkPublicSuffix 'c.mm' null
checkPublicSuffix 'b.c.mm' 'b.c.mm'
checkPublicSuffix 'a.b.c.mm' 'b.c.mm'
## 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 'test.kyoto.jp' 'test.kyoto.jp'
checkPublicSuffix 'ide.kyoto.jp' null
checkPublicSuffix 'b.ide.kyoto.jp' 'b.ide.kyoto.jp'
checkPublicSuffix 'a.b.ide.kyoto.jp' 'b.ide.kyoto.jp'
checkPublicSuffix 'c.kobe.jp' null
checkPublicSuffix 'b.c.kobe.jp' 'b.c.kobe.jp'
checkPublicSuffix 'a.b.c.kobe.jp' 'b.c.kobe.jp'
checkPublicSuffix 'city.kobe.jp' 'city.kobe.jp'
checkPublicSuffix 'www.city.kobe.jp' 'city.kobe.jp'
## TLD with a wildcard rule and exceptions.
checkPublicSuffix 'ck' null
checkPublicSuffix 'test.ck' null
checkPublicSuffix 'b.test.ck' 'b.test.ck'
checkPublicSuffix 'a.b.test.ck' 'b.test.ck'
checkPublicSuffix 'www.ck' 'www.ck'
checkPublicSuffix 'www.www.ck' 'www.ck'
## 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'
## punycoded IDN labels.
checkPublicSuffix 'xn--85x722f.com.cn' 'xn--85x722f.com.cn'
checkPublicSuffix 'xn--85x722f.xn--55qx5d.cn' 'xn--85x722f.xn--55qx5d.cn'
checkPublicSuffix 'www.xn--85x722f.xn--55qx5d.cn' 'xn--85x722f.xn--55qx5d.cn'
checkPublicSuffix 'shishi.xn--55qx5d.cn' 'shishi.xn--55qx5d.cn'
checkPublicSuffix 'xn--55qx5d.cn' null
checkPublicSuffix 'xn--85x722f.xn--fiqs8s' 'xn--85x722f.xn--fiqs8s'
checkPublicSuffix 'www.xn--85x722f.xn--fiqs8s' 'xn--85x722f.xn--fiqs8s'
checkPublicSuffix 'shishi.xn--fiqs8s' 'shishi.xn--fiqs8s'
checkPublicSuffix 'xn--fiqs8s' null
