Skip to content

Commit

Permalink
Item13849: Refactor zone rendering code
Browse files Browse the repository at this point in the history
Move from Foswiki.pm to Foswiki::Render::Zones

Lazy load.  If it has not been loaded, then don't call the rendering
code.
  • Loading branch information
gac410 committed Nov 16, 2015
1 parent f6967af commit 5169cba
Show file tree
Hide file tree
Showing 9 changed files with 445 additions and 337 deletions.
5 changes: 3 additions & 2 deletions UnitTestContrib/test/unit/ViewScriptTests.pm
Expand Up @@ -241,7 +241,8 @@ sub test_render_raw {

( $text, $hdr ) =
$this->setup_view( $this->{test_web}, 'TestTopic2', 'viewfour', 'text' );
$this->assert_equals( "$topic2", $text, "Unexpected output from raw=text" );
$this->assert_equals( "$topic2", "$text\n",
"Unexpected output from raw=text" );
$this->assert_matches( qr#^Content-Type: text/plain#ms,
$hdr, "raw=text should return text/plain - got $hdr" );

Expand All @@ -258,7 +259,7 @@ sub test_render_raw {
( $text, $hdr ) =
$this->setup_view( $this->{test_web}, 'TestTopic2', 'viewfour', 'all' );

$this->assert_matches( qr#$topic2meta$topic2#, $text );
$this->assert_matches( qr#$topic2meta$topic2#, "$text\n" );
$this->assert_matches( qr#^Content-Type: text/plain#ms,
$hdr, "raw=all should return text/plain - got $hdr" );

Expand Down
73 changes: 46 additions & 27 deletions UnitTestContrib/test/unit/ZoneTests.pm
Expand Up @@ -36,7 +36,8 @@ sub test_1 {
my $expect = "";

Foswiki::Func::expandCommonVariables( $tml, $topicName, $webName );
my $result = $this->{session}->_renderZone( "test", { format => '$item' } );
my $result =
$this->{session}->zones->_renderZone( "test", { format => '$item' } );
$this->assert_equals( $expect, $result );

return;
Expand All @@ -53,7 +54,8 @@ sub test_2 {

Foswiki::Func::expandCommonVariables( $tml, $topicName, $webName );
my $result =
$this->{session}->_renderZone( "test", { format => '$item $id' } );
$this->{session}->zones()
->_renderZone( "test", { format => '$item $id' } );
$this->assert_equals( $expect, $result );

return;
Expand All @@ -69,10 +71,12 @@ sub test_3 {
my $expect = "text";

Foswiki::Func::expandCommonVariables( $tml, $topicName, $webName );
my $result = $this->{session}->_renderZone( "test", { format => '$item' } );
my $result =
$this->{session}->zones()->_renderZone( "test", { format => '$item' } );
$this->assert_equals( $expect, $result );

$result = $this->{session}->_renderZone( "test", { format => '$item' } );
$result =
$this->{session}->zones()->_renderZone( "test", { format => '$item' } );
$this->assert_equals( '', $result );

return;
Expand All @@ -90,7 +94,7 @@ sub test_4 {
Foswiki::Func::expandCommonVariables( $tml, $topicName, $webName );
my $result =
$this->{session}
->_renderZone( "test", { format => 'item=$item id=$id' } );
->zones()->_renderZone( "test", { format => 'item=$item id=$id' } );
$this->assert_equals( $expect, $result );

return;
Expand All @@ -107,15 +111,16 @@ sub test_5 {

Foswiki::Func::expandCommonVariables( $tml, $topicName, $webName );

my $result = $this->{session}->_renderZone( "test", { format => '$item' } );
my $result =
$this->{session}->zones()->_renderZone( "test", { format => '$item' } );
$this->assert_equals( '', $result );

my $result1 =
$this->{session}->_renderZone( "test1", { format => '$item' } );
$this->{session}->zones()->_renderZone( "test1", { format => '$item' } );
$this->assert_equals( $expect, $result1 );

my $result2 =
$this->{session}->_renderZone( "test2", { format => '$item' } );
$this->{session}->zones()->_renderZone( "test2", { format => '$item' } );
$this->assert_equals( $expect, $result2 );

$this->assert_equals( $result1, $result2 );
Expand All @@ -136,7 +141,8 @@ HERE
my $expect = "text2";

Foswiki::Func::expandCommonVariables( $tml, $topicName, $webName );
my $result = $this->{session}->_renderZone( "test", { format => '$item' } );
my $result =
$this->{session}->zones()->_renderZone( "test", { format => '$item' } );
$this->assert_equals( $expect, $result );

return;
Expand All @@ -155,7 +161,8 @@ HERE
my $expect = "text1\ntext2";

Foswiki::Func::expandCommonVariables( $tml, $topicName, $webName );
my $result = $this->{session}->_renderZone( "test", { format => '$item' } );
my $result =
$this->{session}->zones()->_renderZone( "test", { format => '$item' } );
$this->assert_equals( $expect, $result );

return;
Expand All @@ -176,7 +183,7 @@ HERE
Foswiki::Func::expandCommonVariables( $tml, $topicName, $webName );
my $result =
$this->{session}
->_renderZone( "test", { format => '$item', separator => "" } );
->zones()->_renderZone( "test", { format => '$item', separator => "" } );
$this->assert_equals( $expect, $result );

return;
Expand All @@ -195,7 +202,8 @@ HERE
my $expect = "text2\ntext1";

Foswiki::Func::expandCommonVariables( $tml, $topicName, $webName );
my $result = $this->{session}->_renderZone( "test", { format => '$item' } );
my $result =
$this->{session}->zones()->_renderZone( "test", { format => '$item' } );
$this->assert_equals( $expect, $result );

return;
Expand All @@ -215,7 +223,8 @@ HERE
my $expect = "text2\ntext3\ntext1";

Foswiki::Func::expandCommonVariables( $tml, $topicName, $webName );
my $result = $this->{session}->_renderZone( "test", { format => '$item' } );
my $result =
$this->{session}->zones()->_renderZone( "test", { format => '$item' } );
$this->assert_equals( $expect, $result );

return;
Expand All @@ -235,7 +244,7 @@ HERE
Foswiki::Func::expandCommonVariables( $tml, $topicName, $webName );
my $result =
$this->{session}
->_renderZone( "test", { format => 'item=$item id=$id' } );
->zones()->_renderZone( "test", { format => 'item=$item id=$id' } );
$this->assert_equals( $expect, $result );

return;
Expand All @@ -255,7 +264,7 @@ HERE
Foswiki::Func::expandCommonVariables( $tml, $topicName, $webName );
my $result =
$this->{session}
->_renderZone( "test", { format => 'item=$item id=$id' } );
->zones()->_renderZone( "test", { format => 'item=$item id=$id' } );
$this->assert_equals( $expect, $result );

return;
Expand All @@ -271,7 +280,7 @@ sub test_13 {
my $expect = "text<!--id-->";

Foswiki::Func::expandCommonVariables( $tml, $topicName, $webName );
my $result = $this->{session}->_renderZone("test");
my $result = $this->{session}->zones()->_renderZone("test");
$this->assert_equals( $expect, $result );

return;
Expand All @@ -290,7 +299,8 @@ HERE
my $expect = "text2\ntext1";

Foswiki::Func::expandCommonVariables( $tml, $topicName, $webName );
my $result = $this->{session}->_renderZone( "head", { format => '$item' } );
my $result =
$this->{session}->zones()->_renderZone( "head", { format => '$item' } );
$this->assert_equals( $expect, $result );

return;
Expand All @@ -309,7 +319,8 @@ HERE
my $expect = "text2\ntext1";

Foswiki::Func::expandCommonVariables( $tml, $topicName, $webName );
my $result = $this->{session}->_renderZone( "head", { format => '$item' } );
my $result =
$this->{session}->zones()->_renderZone( "head", { format => '$item' } );
$this->assert_equals( $expect, $result );

return;
Expand Down Expand Up @@ -343,9 +354,11 @@ sub test_HEAD_merged_with_SCRIPT {
HERE

Foswiki::Func::expandCommonVariables( $tml, $topicName, $webName );
my $result = "HEAD:\n" . $this->{session}->_renderZone( "head", );
my $result = "HEAD:\n" . $this->{session}->zones()->_renderZone( "head", );
$result =
$result . "\nSCRIPT:" . $this->{session}->_renderZone( "script", );
$result
. "\nSCRIPT:"
. $this->{session}->zones()->_renderZone( "script", );

foreach (
'HEAD:.*?script::misc7<!--misc7-->.*?SCRIPT:$'
Expand Down Expand Up @@ -387,8 +400,11 @@ sub test_HEAD_split_from_SCRIPT {
HERE

Foswiki::Func::expandCommonVariables( $tml, $topicName, $webName );
my $result = "HEAD:\n" . $this->{session}->_renderZone("head");
$result = $result . "\nSCRIPT:\n" . $this->{session}->_renderZone("script");
my $result = "HEAD:\n" . $this->{session}->zones()->_renderZone("head");
$result =
$result
. "\nSCRIPT:\n"
. $this->{session}->zones()->_renderZone("script");

foreach (
"HEAD:.*?SCRIPT:.*?script::misc7<!--misc7-->"
Expand Down Expand Up @@ -443,7 +459,7 @@ script_1<!--script1-->
HERE
chomp($expect);
$tml = $this->{test_topicObject}->expandMacros($tml);
my $result = $this->{session}->_renderZones($tml);
my $result = $this->{session}->zones()->_renderZones($tml);
$this->assert_str_equals( $expect, $result );

return;
Expand Down Expand Up @@ -478,7 +494,7 @@ script_1<!--script1: requires= missing ids: head1--><!--script-->
HERE
chomp($expect);
$tml = $this->{test_topicObject}->expandMacros($tml);
my $result = $this->{session}->_renderZones($tml);
my $result = $this->{session}->zones()->_renderZones($tml);
$this->assert_str_equals( $expect, $result );

return;
Expand All @@ -500,8 +516,11 @@ sub test_legacy_tag_param_compatibility {
%ADDTOZONE{zone="script" id="misc7" text="script::misc7"}%
HERE
Foswiki::Func::expandCommonVariables( $tml, $topicName, $webName );
my $result = "HEAD:\n" . $this->{session}->_renderZone("head");
$result = $result . "\nSCRIPT:\n" . $this->{session}->_renderZone("script");
my $result = "HEAD:\n" . $this->{session}->zones()->_renderZone("head");
$result =
$result
. "\nSCRIPT:\n"
. $this->{session}->zones()->_renderZone("script");

foreach (
'HEAD:.*?head::misc7<!--misc7-->.*?SCRIPT:'
Expand Down Expand Up @@ -547,7 +566,7 @@ HERE
HERE
chomp($expect);
$tml = $this->{test_topicObject}->expandMacros($tml);
my $result = $this->{session}->_renderZones($tml);
my $result = $this->{session}->zones()->_renderZones($tml);
$this->assert_str_equals( $expect, $result );

return;
Expand Down

0 comments on commit 5169cba

Please sign in to comment.