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