#!/usr/bin/env perl use strict; BEGIN { push @INC, "."; } use My_TWiki_Renderer; sub test_renderer_extracting_links { my($expect,$text,$web,$topic,%opt) = @_; my $renderer = new My_TWiki_Renderer; $renderer->render_text_extracting_links($text,$web,$topic); my @wiki_path_list; if( $opt{full_web_path} ) { @wiki_path_list = $renderer->{wiki_link_list}->sorted_list_of_full_web_paths(); } elsif( $opt{elide_current_web_path} ) { @wiki_path_list = $renderer->{wiki_link_list}->sorted_list_of_web_paths_eliding_current_web_path(); } else { @wiki_path_list = $renderer->{wiki_link_list}->sorted_list_of_full_web_paths(); } my $got = join(' ',@wiki_path_list); my $test_name; if( $opt{test_name} ) { $test_name = $opt{test_name}; } else { $test_name = $text; } if( $expect ne $got) { print "TEST FAILED: $test_name\n" . "got $got\n" . "expected: $expect\n" . "\n"; } else { print "TEST PASSED: $test_name\n\n"; } } test_renderer_extracting_links("WikiWord","WikiWord","SomeWeb","SomeTopic",elide_current_web_path=>1,test_name=>"WikiWord-eliding"); test_renderer_extracting_links("WikiWord","WikiWord","","SomeTopic",elide_current_web_path=>1,test_name=>"WikiWord-eliding-blankWeb"); test_renderer_extracting_links("WikiWord","WikiWord","","SomeTopic",test_name=>"WikiWord-full-blankWeb"); test_renderer_extracting_links("SomeWeb.WikiWord","WikiWord","SomeWeb","SomeTopic"); test_renderer_extracting_links("Web.WikiWord","Web.WikiWord","SomeWeb","SomeTopic"); test_renderer_extracting_links("Web.Subweb.WikiWord","Web.Subweb.WikiWord","SomeWeb","SomeTopic"); test_renderer_extracting_links("SomeWeb.WikiWord","[[WikiWord]]","SomeWeb","SomeTopic"); test_renderer_extracting_links("Web.WikiWord","[[Web.WikiWord]]","SomeWeb","SomeTopic"); test_renderer_extracting_links("Web.Subweb.WikiWord","[[Web.Subweb.WikiWord]]","SomeWeb","SomeTopic"); test_renderer_extracting_links("SomeWeb.WikiWord","[[wiki word]]","SomeWeb","SomeTopic"); test_renderer_extracting_links("Web.WikiWord","[[Web.wiki word]]","SomeWeb","SomeTopic"); test_renderer_extracting_links("Web.Subweb.WikiWord","[[Web.Subweb. wiki word]]","SomeWeb","SomeTopic"); test_renderer_extracting_links("SomeWeb.WikiWord","[[WikiWord][some other text]]","SomeWeb","SomeTopic"); test_renderer_extracting_links("Web.WikiWord","[[Web.WikiWord][some other text]]","SomeWeb","SomeTopic"); test_renderer_extracting_links("Web.Subweb.WikiWord","[[Web.Subweb.WikiWord][some other text]]","SomeWeb","SomeTopic"); test_renderer_extracting_links("SomeWeb.WikiWord","[[wiki word][some other text]]","SomeWeb","SomeTopic"); test_renderer_extracting_links("Web.WikiWord","[[Web.wiki word][some other text]]","SomeWeb","SomeTopic"); test_renderer_extracting_links("Web.subweb.WikiWord","[[Web.subweb. wiki word][some other text]]","SomeWeb","SomeTopic"); test_renderer_extracting_links("SomeWeb.LinkA SomeWeb.LinkB SomeWeb.LinkC","a mix of LinkA and [[LinkB]] and [[link c]] link styles","SomeWeb","SomeTopic"); # TBD: known bug: for some reason TWiki is reporting an all UPPERCASEWORD as a link test_renderer_extracting_links("","UPPERCASEWORD","SomeWeb","SomeTopic"); # TBD: I want to see INCLUDEs test_renderer_extracting_links("IncludeeLink","%INCLUDE{IncludeeLink}%","SomeWeb","SomeTopic"); # TBD: I want to see EmbedTopics test_renderer_extracting_links("IncludeeLink","%EmbedTopic{IncludeeLink}%","SomeWeb","SomeTopic"); test_renderer_extracting_links("IncludeeLink","%BeginTopic{IncludeeLink}%","SomeWeb","SomeTopic"); # TBD: I want to see parent test_renderer_extracting_links("ParentLink",'META:TOPICPARENT{name="ParentLink"}%',"SomeWeb","SomeTopic"); # TBD: I want to see cild links (note: these are not yet part of twiki) test_renderer_extracting_links("ChildLink",'META:TOPICCHILD{name="ChildLink"}%',"SomeWeb","SomeTopic");