annotate _test/Test/Web/View.pm @ 301:aeeb57a12046

*IMPL::Web::View: templates inheritance support
author cin
date Mon, 25 Mar 2013 02:04:18 +0400
parents 85572f512abc
children 608e74bc309f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
183
2184fa28b49e IMPL::Web::View::TTLoader tests
cin
parents:
diff changeset
1 package Test::Web::View;
188
029c9610528c Memory leak tests in IMPL::Web::View
cin
parents: 186
diff changeset
2 use IMPL::Profiler::Memory;
183
2184fa28b49e IMPL::Web::View::TTLoader tests
cin
parents:
diff changeset
3 use strict;
2184fa28b49e IMPL::Web::View::TTLoader tests
cin
parents:
diff changeset
4 use warnings;
185
ae8072f2f2a3 IMPL::Web::View::TTDocument tests, fixes
cin
parents: 184
diff changeset
5 use utf8;
183
2184fa28b49e IMPL::Web::View::TTLoader tests
cin
parents:
diff changeset
6
2184fa28b49e IMPL::Web::View::TTLoader tests
cin
parents:
diff changeset
7 use parent qw(IMPL::Test::Unit);
2184fa28b49e IMPL::Web::View::TTLoader tests
cin
parents:
diff changeset
8 __PACKAGE__->PassThroughArgs;
2184fa28b49e IMPL::Web::View::TTLoader tests
cin
parents:
diff changeset
9
185
ae8072f2f2a3 IMPL::Web::View::TTDocument tests, fixes
cin
parents: 184
diff changeset
10 use File::Slurp;
188
029c9610528c Memory leak tests in IMPL::Web::View
cin
parents: 186
diff changeset
11 use Scalar::Util qw(weaken);
288
3a9cfea098dd *TTView refactoring: removed RequireControl method, etc.
sergey
parents: 287
diff changeset
12 use Data::Dumper;
280
c6d0f889ef87 +IMPL::declare now supports meta attributes
cin
parents: 263
diff changeset
13 use IMPL::lang;
286
d357b5d85d25 *TTView refactoring
sergey
parents: 280
diff changeset
14 use IMPL::Test qw(assert assertarray test GetCallerSourceLine);
183
2184fa28b49e IMPL::Web::View::TTLoader tests
cin
parents:
diff changeset
15 use IMPL::Web::View::TTLoader();
2184fa28b49e IMPL::Web::View::TTLoader tests
cin
parents:
diff changeset
16
2184fa28b49e IMPL::Web::View::TTLoader tests
cin
parents:
diff changeset
17 use constant {
280
c6d0f889ef87 +IMPL::declare now supports meta attributes
cin
parents: 263
diff changeset
18 TTLoader => 'IMPL::Web::View::TTLoader',
194
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
19 MProfiler => 'IMPL::Profiler::Memory'
183
2184fa28b49e IMPL::Web::View::TTLoader tests
cin
parents:
diff changeset
20 };
2184fa28b49e IMPL::Web::View::TTLoader tests
cin
parents:
diff changeset
21
188
029c9610528c Memory leak tests in IMPL::Web::View
cin
parents: 186
diff changeset
22 sub AssertMemoryLeak {
194
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
23 my $code = shift;
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
24 my $dump = shift;
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
25
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
26 my $data = MProfiler->Monitor($code);
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
27
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
28 if ($data->isLeak and $dump) {
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
29 write_file("dump.out", { binmode => ':utf8' }, $data->Dump() );
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
30 }
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
31
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
32 assert( not($data->isLeak), "Memory leak detected", GetCallerSourceLine() , @{$data->{objects}} );
188
029c9610528c Memory leak tests in IMPL::Web::View
cin
parents: 186
diff changeset
33 }
029c9610528c Memory leak tests in IMPL::Web::View
cin
parents: 186
diff changeset
34
185
ae8072f2f2a3 IMPL::Web::View::TTDocument tests, fixes
cin
parents: 184
diff changeset
35 sub templatesDir {
194
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
36 $_[0]->GetResourceDir('Resources','TTView');
185
ae8072f2f2a3 IMPL::Web::View::TTDocument tests, fixes
cin
parents: 184
diff changeset
37 }
ae8072f2f2a3 IMPL::Web::View::TTDocument tests, fixes
cin
parents: 184
diff changeset
38
188
029c9610528c Memory leak tests in IMPL::Web::View
cin
parents: 186
diff changeset
39 sub CreateLoader {
194
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
40 my ($this) = @_;
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
41
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
42 my $loader = TTLoader->new(
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
43 {
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
44 INCLUDE_PATH => [
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
45 $this->templatesDir
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
46 ],
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
47 INTERPOLATE => 1,
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
48 POST_CHOMP => 1,
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
49 ENCODING => 'utf-8'
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
50 },
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
51 ext => '.tt',
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
52 initializer => 'global.tt',
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
53 globals => {
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
54 site => {
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
55 name => 'Test Site'
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
56 },
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
57 date => {
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
58 now => sub { localtime(time); }
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
59 },
195
7a920771fd8e IMPL::Web::View changed document layout handling, docs, examples
cin
parents: 194
diff changeset
60 dynamic => sub { 'this is a dynamic value' },
7a920771fd8e IMPL::Web::View changed document layout handling, docs, examples
cin
parents: 194
diff changeset
61 view => {
7a920771fd8e IMPL::Web::View changed document layout handling, docs, examples
cin
parents: 194
diff changeset
62 }
7a920771fd8e IMPL::Web::View changed document layout handling, docs, examples
cin
parents: 194
diff changeset
63 },
7a920771fd8e IMPL::Web::View changed document layout handling, docs, examples
cin
parents: 194
diff changeset
64 layoutBase => 'Layout'
194
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
65 );
188
029c9610528c Memory leak tests in IMPL::Web::View
cin
parents: 186
diff changeset
66 }
029c9610528c Memory leak tests in IMPL::Web::View
cin
parents: 186
diff changeset
67
029c9610528c Memory leak tests in IMPL::Web::View
cin
parents: 186
diff changeset
68 test TTLoaderTests => sub {
194
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
69 my ($this) = @_;
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
70
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
71 my $loader = $this->CreateLoader();
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
72
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
73 # test the loader to be able to find a desired resource
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
74 assert( defined($loader->template('simple') ) );
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
75
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
76 # loader should be initialized on demand
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
77 assert( not $loader->isInitialized );
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
78
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
79 # loader should be able to load a document
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
80 my $doc = $loader->document('simple');
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
81 assert(defined $doc);
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
82
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
83 assert( $loader->isInitialized );
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
84 assert( $loader->context->stash->get('user') eq 'test_user');
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
85
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
86 # document should inherit loader's context
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
87 assert( $doc->context->stash->get('user') eq 'test_user');
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
88
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
89 # document should not have 'this' template variable
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
90
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
91 assert( $doc->context != $loader->context); # document should have an own context
183
2184fa28b49e IMPL::Web::View::TTLoader tests
cin
parents:
diff changeset
92 };
2184fa28b49e IMPL::Web::View::TTLoader tests
cin
parents:
diff changeset
93
185
ae8072f2f2a3 IMPL::Web::View::TTDocument tests, fixes
cin
parents: 184
diff changeset
94 test TTDocumentTests => sub {
194
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
95 my ($this) = @_;
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
96 my $loader = $this->CreateLoader();
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
97
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
98 my $doc = $loader->document('simple');
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
99
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
100 assert(defined $doc);
287
2d253e6e4a88 *TTView refactoring
cin
parents: 286
diff changeset
101
194
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
102 $doc->title('test document');
301
aeeb57a12046 *IMPL::Web::View: templates inheritance support
cin
parents: 289
diff changeset
103 $doc->name('document');
194
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
104
238
b8c724f6de36 DOM model refactoring
sergey
parents: 195
diff changeset
105 assert($doc->name eq 'document');
194
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
106 assert($doc->title eq 'test document');
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
107
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
108 assert(not $doc->can('notexists')); # autoloaded property should be ignored
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
109 assert(not defined $doc->notexists); # nonexisting property
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
110 assert($doc->template->version == 10); # static metadata
288
3a9cfea098dd *TTView refactoring: removed RequireControl method, etc.
sergey
parents: 287
diff changeset
111 assert($doc->context->stash->get('user') eq 'test_user' ); # runtime context should be derived from documentContext
194
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
112
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
113 my $text = $doc->Render();
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
114 my $expected = read_file($this->GetResourceFile('Resources','TTView.Output','simple.txt'), binmode => ':utf8');
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
115
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
116 assert($text eq $expected, "Bad Render() output","Got: $text", "Expected: $expected");
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
117
185
ae8072f2f2a3 IMPL::Web::View::TTDocument tests, fixes
cin
parents: 184
diff changeset
118 };
ae8072f2f2a3 IMPL::Web::View::TTDocument tests, fixes
cin
parents: 184
diff changeset
119
191
78a18a2b6266 IMPL::Web::View improvements (unstable)
cin
parents: 190
diff changeset
120 test TestDocumentLayout => sub {
194
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
121 my ($this) = @_;
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
122
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
123 my $loader = $this->CreateLoader();
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
124
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
125 my $doc = $loader->document(
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
126 'complex',
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
127 {
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
128 data => [qw(one two three)],
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
129 site => {
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
130 name => 'Test Site'
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
131 }
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
132 }
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
133 );
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
134
195
7a920771fd8e IMPL::Web::View changed document layout handling, docs, examples
cin
parents: 194
diff changeset
135 assert($doc->layout eq 'default');
194
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
136
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
137 my $text = $doc->Render();
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
138 my $expected = read_file($this->GetResourceFile('Resources', 'TTView.Output', 'complex.default.txt'), binmode => ':utf8' );
287
2d253e6e4a88 *TTView refactoring
cin
parents: 286
diff changeset
139 my ($text_raw,$expected_raw) = ($text, $expected);
2d253e6e4a88 *TTView refactoring
cin
parents: 286
diff changeset
140 $text_raw =~ s/\s+//g;
2d253e6e4a88 *TTView refactoring
cin
parents: 286
diff changeset
141 $expected_raw =~ s/\s+//g;
2d253e6e4a88 *TTView refactoring
cin
parents: 286
diff changeset
142 assert($text_raw eq $expected_raw, '$doc->Render(): Bad output', "Got: $text", "Expected: $expected");
186
6c0fee769b0c IMPL::Web::View::TTControl tests, fixes
cin
parents: 185
diff changeset
143 };
6c0fee769b0c IMPL::Web::View::TTControl tests, fixes
cin
parents: 185
diff changeset
144
301
aeeb57a12046 *IMPL::Web::View: templates inheritance support
cin
parents: 289
diff changeset
145 test TestControlInheritance => sub {
aeeb57a12046 *IMPL::Web::View: templates inheritance support
cin
parents: 289
diff changeset
146 my ($this) = @_;
aeeb57a12046 *IMPL::Web::View: templates inheritance support
cin
parents: 289
diff changeset
147
aeeb57a12046 *IMPL::Web::View: templates inheritance support
cin
parents: 289
diff changeset
148 my $loader = $this->CreateLoader();
aeeb57a12046 *IMPL::Web::View: templates inheritance support
cin
parents: 289
diff changeset
149 my $doc = $loader->document('derived');
aeeb57a12046 *IMPL::Web::View: templates inheritance support
cin
parents: 289
diff changeset
150
aeeb57a12046 *IMPL::Web::View: templates inheritance support
cin
parents: 289
diff changeset
151 my $text = $doc->Render();
aeeb57a12046 *IMPL::Web::View: templates inheritance support
cin
parents: 289
diff changeset
152 my $expected = read_file($this->GetResourceFile('Resources', 'TTView.Output', 'derived.txt'), binmode => ':utf8' );
aeeb57a12046 *IMPL::Web::View: templates inheritance support
cin
parents: 289
diff changeset
153
aeeb57a12046 *IMPL::Web::View: templates inheritance support
cin
parents: 289
diff changeset
154 my ($text_raw,$expected_raw) = ($text, $expected);
aeeb57a12046 *IMPL::Web::View: templates inheritance support
cin
parents: 289
diff changeset
155 $text_raw =~ s/\s+//g;
aeeb57a12046 *IMPL::Web::View: templates inheritance support
cin
parents: 289
diff changeset
156 $expected_raw =~ s/\s+//g;
aeeb57a12046 *IMPL::Web::View: templates inheritance support
cin
parents: 289
diff changeset
157
aeeb57a12046 *IMPL::Web::View: templates inheritance support
cin
parents: 289
diff changeset
158 assert($text_raw eq $expected_raw, '$doc->Render(): Bad output', "Got: $text", "Expected: $expected");
aeeb57a12046 *IMPL::Web::View: templates inheritance support
cin
parents: 289
diff changeset
159 };
aeeb57a12046 *IMPL::Web::View: templates inheritance support
cin
parents: 289
diff changeset
160
286
d357b5d85d25 *TTView refactoring
sergey
parents: 280
diff changeset
161 test TestDocumentsIsolation => sub {
d357b5d85d25 *TTView refactoring
sergey
parents: 280
diff changeset
162 my $this = shift;
d357b5d85d25 *TTView refactoring
sergey
parents: 280
diff changeset
163
d357b5d85d25 *TTView refactoring
sergey
parents: 280
diff changeset
164 my $loader = $this->CreateLoader();
d357b5d85d25 *TTView refactoring
sergey
parents: 280
diff changeset
165
d357b5d85d25 *TTView refactoring
sergey
parents: 280
diff changeset
166 my $doc = $loader->document('simple');
d357b5d85d25 *TTView refactoring
sergey
parents: 280
diff changeset
167
d357b5d85d25 *TTView refactoring
sergey
parents: 280
diff changeset
168 assert(ref $loader->context->stash->get([ 'dojo', 0, 'require', 0]) eq 'ARRAY');
d357b5d85d25 *TTView refactoring
sergey
parents: 280
diff changeset
169 assertarray($loader->context->stash->get([ 'dojo', 0, 'require', 0]),[]);
288
3a9cfea098dd *TTView refactoring: removed RequireControl method, etc.
sergey
parents: 287
diff changeset
170 assert($loader->context->stash != $doc->context->stash);
286
d357b5d85d25 *TTView refactoring
sergey
parents: 280
diff changeset
171
d357b5d85d25 *TTView refactoring
sergey
parents: 280
diff changeset
172 assert(defined $doc);
d357b5d85d25 *TTView refactoring
sergey
parents: 280
diff changeset
173
d357b5d85d25 *TTView refactoring
sergey
parents: 280
diff changeset
174 # only root stash variables can be localized, to avoid modifying dojo we
d357b5d85d25 *TTView refactoring
sergey
parents: 280
diff changeset
175 # need to replace it completely
d357b5d85d25 *TTView refactoring
sergey
parents: 280
diff changeset
176 $doc->context->process(\q{
d357b5d85d25 *TTView refactoring
sergey
parents: 280
diff changeset
177 [% SET dojo = { require => [] } %]
d357b5d85d25 *TTView refactoring
sergey
parents: 280
diff changeset
178 [% dojo.require.push('dijit/form/TextBox') %]
d357b5d85d25 *TTView refactoring
sergey
parents: 280
diff changeset
179 [% SET user = 'dummy guy' %]
d357b5d85d25 *TTView refactoring
sergey
parents: 280
diff changeset
180 });
d357b5d85d25 *TTView refactoring
sergey
parents: 280
diff changeset
181
d357b5d85d25 *TTView refactoring
sergey
parents: 280
diff changeset
182 assert($doc->context->stash->get('user') eq 'dummy guy');
d357b5d85d25 *TTView refactoring
sergey
parents: 280
diff changeset
183 assert($loader->context->stash->get('user') eq 'test_user');
d357b5d85d25 *TTView refactoring
sergey
parents: 280
diff changeset
184 assertarray($doc->context->stash->get([ 'dojo', 0, 'require', 0]),['dijit/form/TextBox']);
d357b5d85d25 *TTView refactoring
sergey
parents: 280
diff changeset
185 assertarray($loader->context->stash->get([ 'dojo', 0, 'require', 0]),[]);
d357b5d85d25 *TTView refactoring
sergey
parents: 280
diff changeset
186
d357b5d85d25 *TTView refactoring
sergey
parents: 280
diff changeset
187 my $text = $doc->Render();
d357b5d85d25 *TTView refactoring
sergey
parents: 280
diff changeset
188
287
2d253e6e4a88 *TTView refactoring
cin
parents: 286
diff changeset
189 my $doc2 = $loader->document('complex');
286
d357b5d85d25 *TTView refactoring
sergey
parents: 280
diff changeset
190
d357b5d85d25 *TTView refactoring
sergey
parents: 280
diff changeset
191 assertarray($doc2->context->stash->get([ 'dojo', 0, 'require', 0]),[]);
287
2d253e6e4a88 *TTView refactoring
cin
parents: 286
diff changeset
192
2d253e6e4a88 *TTView refactoring
cin
parents: 286
diff changeset
193 # This document has a layout ehich will replace 'dojo' global variable.
2d253e6e4a88 *TTView refactoring
cin
parents: 286
diff changeset
194 # The layout contains INIT block which runs first in the context of the
2d253e6e4a88 *TTView refactoring
cin
parents: 286
diff changeset
195 # document, then RenderContent is called and then the layout is applied
2d253e6e4a88 *TTView refactoring
cin
parents: 286
diff changeset
196 $doc2->Render();
2d253e6e4a88 *TTView refactoring
cin
parents: 286
diff changeset
197
2d253e6e4a88 *TTView refactoring
cin
parents: 286
diff changeset
198 assertarray($loader->context->stash->get([ 'dojo', 0, 'require', 0]),[]);
2d253e6e4a88 *TTView refactoring
cin
parents: 286
diff changeset
199
2d253e6e4a88 *TTView refactoring
cin
parents: 286
diff changeset
200 # TODO: to be able to rendered multiple times, Render shouldn't affect the context of the document
2d253e6e4a88 *TTView refactoring
cin
parents: 286
diff changeset
201 #assertarray($doc2->context->stash->get([ 'dojo', 0, 'require', 0]),[]);
286
d357b5d85d25 *TTView refactoring
sergey
parents: 280
diff changeset
202 };
d357b5d85d25 *TTView refactoring
sergey
parents: 280
diff changeset
203
188
029c9610528c Memory leak tests in IMPL::Web::View
cin
parents: 186
diff changeset
204 test TestMemoryLeaks => sub {
194
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
205 my ($this) = @_;
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
206
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
207 my $loader = $this->CreateLoader();
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
208 $loader->document('simple'); # force loader initialization
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
209
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
210 AssertMemoryLeak(sub {
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
211 my $doc = $loader->document('simple');
289
85572f512abc *TTView refactoring
cin
parents: 288
diff changeset
212 },'dump');
194
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
213
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
214 AssertMemoryLeak(sub {
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
215 my $doc = $loader->document('simple');
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
216 $doc->Render( { self => $doc } );
289
85572f512abc *TTView refactoring
cin
parents: 288
diff changeset
217 },'dump');
194
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
218
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
219 $loader->template('Layout/default');
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
220 $loader->template('My/Org/Panel');
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
221 $loader->template('My/Org/TextPreview');
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
222
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
223 $loader->template('complex');
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
224 AssertMemoryLeak(sub {
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
225 my $doc = $loader->document('complex');
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
226 $doc->Render();
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
227 },'dump');
4d0e1962161c Replaced tabs with spaces
cin
parents: 191
diff changeset
228
188
029c9610528c Memory leak tests in IMPL::Web::View
cin
parents: 186
diff changeset
229 };
029c9610528c Memory leak tests in IMPL::Web::View
cin
parents: 186
diff changeset
230
183
2184fa28b49e IMPL::Web::View::TTLoader tests
cin
parents:
diff changeset
231 1;