1+ # Copyright The IETF Trust 2022, All Rights Reserved
2+
13from ietf .doc .templatetags .ietf_filters import urlize_ietf_docs
24from ietf .utils .test_utils import TestCase
35
6+ import debug # pyflakes: ignore
47# TODO: most other filters need test cases, too
58
69
@@ -18,10 +21,48 @@ def test_urlize_ietf_docs(self):
1821 ("Rfc 02119" , '<a href="/doc/rfc2119/">Rfc 02119</a>' ),
1922 ("draft-abc-123" , '<a href="/doc/draft-abc-123/">draft-abc-123</a>' ),
2023 (
21- "draft-ietf-rfc9999-bis-01" ,
22- '<a href="/doc/draft-ietf-rfc9999-bis-01/">draft-ietf-rfc9999-bis-01</a>' ,
24+ "draft-ietf-rfc9999-bis-01.txt" ,
25+ '<a href="/doc/draft-ietf-rfc9999-bis/01/">draft-ietf-rfc9999-bis-01.txt</a>' ,
26+ ),
27+ (
28+ "foo RFC 9999 draft-ietf-rfc9999-bis-01 bar" ,
29+ 'foo <a href="/doc/rfc9999/">RFC 9999</a> <a href="/doc/draft-ietf-rfc9999-bis/01/">draft-ietf-rfc9999-bis-01</a> bar' ,
30+ ),
31+ (
32+ "New version available: <b>draft-bryan-sipping-p2p-03.txt</b>" ,
33+ 'New version available: <b><a href="/doc/draft-bryan-sipping-p2p/03/">draft-bryan-sipping-p2p-03.txt</a></b>' ,
34+ ),
35+ (
36+ "New version available: <b>charter-ietf-6man-04.txt</b>" ,
37+ 'New version available: <b><a href="/doc/charter-ietf-6man/04/">charter-ietf-6man-04.txt</a></b>'
2338 ),
39+ (
40+ "New version available: <b>charter-ietf-6man-03-07.txt</b>" ,
41+ 'New version available: <b><a href="/doc/charter-ietf-6man/03-07/">charter-ietf-6man-03-07.txt</a></b>'
42+ ),
43+ (
44+ "repository https://github.com/tlswg/draft-ietf-tls-ticketrequest" ,
45+ 'repository https://github.com/tlswg/draft-ietf-tls-ticketrequest'
46+ ),
47+ (
48+ "draft-madanapalli-nd-over-802.16-problems" ,
49+ '<a href="/doc/draft-madanapalli-nd-over-802.16-problems/">draft-madanapalli-nd-over-802.16-problems</a>'
50+ ),
51+ (
52+ "draft-madanapalli-nd-over-802.16-problems-02.txt" ,
53+ '<a href="/doc/draft-madanapalli-nd-over-802.16-problems/02/">draft-madanapalli-nd-over-802.16-problems-02.txt</a>'
54+ )
2455 ]
56+
57+ # Some edge cases scraped from existing old draft names
58+ for name in [
59+ # "draft-odell-8+8", # This fails since + matches the right side of \b
60+ # "draft-durand-gse+", # same failure
61+ "draft-kim-xcast+-few-2-few" ,
62+ #"draft-ietf-pem-ansix9.17", # Fails because of not being greedy with . before txt
63+ ]:
64+ cases .append ((name ,f'<a href="/doc/{ name } /">{ name } </a>' ))
2565
2666 for input , output in cases :
67+ #debug.show("(urlize_ietf_docs(input),output)")
2768 self .assertEqual (urlize_ietf_docs (input ), output )
0 commit comments