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}{fax}; 15pass 'fax:+12345'; 16pass 'fax:+358-555-1234567'; 17pass 'fax:456-7890;phone-context=213'; 18pass 'fax:456-7890;phone-context=X-COMPANY-NET'; 19pass 'fax:+1-212-555-1234;tsp=terrifictelecom.com'; 20pass 'fax:+1-212-555-1234;tsp=terrifictelecom.com;phone-context=X-COMPANY-NET'; 21pass 'fax:+358-555-1234567;postd=pp22'; 22pass 'fax:0w003585551234567;phone-context=+3585551234'; 23pass 'fax:+1234567890;phone-context=+1234;vnd.company.option=foo'; 24pass 'fax:+1234567890;phone-context=+1234;vnd.company.option=%22foo%22'; 25pass 'fax:+1234;option=%22!%22'; 26pass 'fax:+1234;option=%22%5C%22%22'; 27pass 'fax:+1234;option=%22%5C!%22'; 28pass 'fax:+1234;option=%22bar%22'; 29pass 'fax:+456-7890;phone-context=213;phone-context=213'; 30pass 'fax:456-7890;phone-context=213;phone-context=213'; 31pass 'fax:+12345;tsub=0123456789-.()'; 32pass 'fax:+358-555-123456;tsub=0123456789-.()7'; 33pass 'fax:456-7890;tsub=0123456789-.();phone-context=213'; 34pass 'fax:456-7890;tsub=0123456789-.();phone-context=X-COMPANY-NET'; 35pass 'fax:+1-212-555-1234;tsub=0123456789-.();tsp=terrifictelecom.com;phone-context=X-COMPANY-NET'; 36fail 'fax:456-7890'; 37fail 'fax:+1-800-RUN-PERL'; 38fail 'fax:+1234;option=%22%22%22'; 39fail 'fax:+1234;option=%22%5C%22'; 40pass 'fax:+123-456-789;isub=123(456)'; 41pass 'fax:+123456;postd=***'; 42fail 'fax:456-7890;phone-context=213;tsub=0123456789-.()'; 43fail 'fax:456-7890;tsub=213;tsub=456'; 44fail 'fax:456-7890;tsub=213;'; 45 46 47try $RE{URI}{fax}{nofuture}; 48pass 'fax:+12345'; 49pass 'fax:+358-555-1234567'; 50pass 'fax:456-7890;phone-context=213'; 51pass 'fax:456-7890;phone-context=X-COMPANY-NET'; 52pass 'fax:+1-212-555-1234;tsp=terrifictelecom.com'; 53pass 'fax:+1-212-555-1234;tsp=terrifictelecom.com;phone-context=X-COMPANY-NET'; 54pass 'fax:+358-555-1234567;postd=pp22'; 55pass 'fax:0w003585551234567;phone-context=+3585551234'; 56fail 'fax:+1234567890;phone-context=+1234;vnd.company.option=foo'; 57fail 'fax:+1234567890;phone-context=+1234;vnd.company.option=%22foo%22'; 58fail 'fax:+1234;option=%22!%22'; 59fail 'fax:+1234;option=%22%5C%22%22'; 60fail 'fax:+1234;option=%22%5C!%22'; 61fail 'fax:+1234;option=%22bar%22'; 62pass 'fax:+456-7890;phone-context=213;phone-context=213'; 63pass 'fax:456-7890;phone-context=213;phone-context=213'; 64fail 'fax:456-7890'; 65fail 'fax:+1-800-RUN-PERL'; 66fail 'fax:+1234;option=%22%22%22'; 67fail 'fax:+1234;option=%22%5C%22'; 68fail 'fax:+358-555-1234567;phone-context=+1234;postd=pp22'; 69pass 'fax:+123-456-789;isub=123(456)'; 70fail 'fax:+123-456-789;isub=123(456);isub=123(456)'; 71fail 'fax:+123-456-789;isub=A23(456)'; 72pass 'fax:+123456;postd=***'; 73fail 'fax:1234567890;phone-context=+1234;vnd.company.option=foo'; 74fail 'fax:1234567890;phone-context=+1234;vnd.company.option=%22foo%22'; 75fail 'fax:1234;option=%22!%22'; 76fail 'fax:1234;option=%22%5C%22%22'; 77fail 'fax:1234;option=%22%5C!%22'; 78fail 'fax:1234;option=%22bar%22'; 79fail 'fax:+12345;tsub=foo'; 80fail 'fax:456-7890;tsub=213;tsub=456'; 81fail 'fax:456-7890;tsub=213;'; 82pass 'fax:456-7890;tsub=0123456789-.();phone-context=213'; 83pass 'fax:456-7890;tsub=0123456789-.();phone-context=X-COMPANY-NET'; 84pass 'fax:+1-212-555-1234;tsub=0123456789-.();tsp=terrifictelecom.com;phone-context=X-COMPANY-NET'; 85