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