1# VOODOO LINE-NOISE 2my($C,$M,$P,$N,$S);END{print"1..$C\n$M";print"\nfailed: $N\n"if$N} 3sub ok{$C++; $M.= ($_[0]||!@_)?"ok $C\n":($N++,"not ok $C (". 4((caller 1)[1]||(caller 0)[1]).":".((caller 1)[2]||(caller 0)[2]).")\n")} 5sub try{$P=qr/^$_[0]$/}sub fail{ok($S=$_[0]!~$P)}sub pass{ok($S=$_[0]=~$P)} 6 7# LOAD 8 9use Regexp::Common; 10ok; 11 12# TEST URIs 13 14try $RE{URI}{tel}; 15pass 'tel:+12345'; 16pass 'tel:+358-555-1234567'; 17pass 'tel:456-7890;phone-context=213'; 18pass 'tel:456-7890;phone-context=X-COMPANY-NET'; 19pass 'tel:+1-212-555-1234;tsp=terrifictelecom.com'; 20pass 'tel:+1-212-555-1234;tsp=terrifictelecom.com;phone-context=X-COMPANY-NET'; 21pass 'tel:+358-555-1234567;postd=pp22'; 22pass 'tel:0w003585551234567;phone-context=+3585551234'; 23pass 'tel:+1234567890;phone-context=+1234;vnd.company.option=foo'; 24pass 'tel:+1234567890;phone-context=+1234;vnd.company.option=%22foo%22'; 25pass 'tel:+1234;option=%22!%22'; 26pass 'tel:+1234;option=%22%5C%22%22'; 27pass 'tel:+1234;option=%22%5C!%22'; 28pass 'tel:+1234;option=%22bar%22'; 29pass 'tel:+456-7890;phone-context=213;phone-context=213'; 30pass 'tel:456-7890;phone-context=213;phone-context=213'; 31fail 'tel:456-7890'; 32fail 'tel:+1-800-RUN-PERL'; 33fail 'tel:+1234;option=%22%22%22'; 34fail 'tel:+1234;option=%22%5C%22'; 35pass 'tel:+123-456-789;isub=123(456)'; 36pass 'tel:+123456;postd=***'; 37 38 39try $RE{URI}{tel}{nofuture}; 40pass 'tel:+12345'; 41pass 'tel:+358-555-1234567'; 42pass 'tel:456-7890;phone-context=213'; 43pass 'tel:456-7890;phone-context=X-COMPANY-NET'; 44pass 'tel:+1-212-555-1234;tsp=terrifictelecom.com'; 45pass 'tel:+1-212-555-1234;tsp=terrifictelecom.com;phone-context=X-COMPANY-NET'; 46pass 'tel:+358-555-1234567;postd=pp22'; 47pass 'tel:0w003585551234567;phone-context=+3585551234'; 48fail 'tel:+1234567890;phone-context=+1234;vnd.company.option=foo'; 49fail 'tel:+1234567890;phone-context=+1234;vnd.company.option=%22foo%22'; 50fail 'tel:+1234;option=%22!%22'; 51fail 'tel:+1234;option=%22%5C%22%22'; 52fail 'tel:+1234;option=%22%5C!%22'; 53fail 'tel:+1234;option=%22bar%22'; 54pass 'tel:+456-7890;phone-context=213;phone-context=213'; 55pass 'tel:456-7890;phone-context=213;phone-context=213'; 56fail 'tel:456-7890'; 57fail 'tel:+1-800-RUN-PERL'; 58fail 'tel:+1234;option=%22%22%22'; 59fail 'tel:+1234;option=%22%5C%22'; 60fail 'tel:+358-555-1234567;phone-context=+1234;postd=pp22'; 61pass 'tel:+123-456-789;isub=123(456)'; 62fail 'tel:+123-456-789;isub=123(456);isub=123(456)'; 63fail 'tel:+123-456-789;isub=A23(456)'; 64pass 'tel:+123456;postd=***'; 65fail 'tel:1234567890;phone-context=+1234;vnd.company.option=foo'; 66fail 'tel:1234567890;phone-context=+1234;vnd.company.option=%22foo%22'; 67fail 'tel:1234;option=%22!%22'; 68fail 'tel:1234;option=%22%5C%22%22'; 69fail 'tel:1234;option=%22%5C!%22'; 70fail 'tel:1234;option=%22bar%22'; 71