1: | <?php
|
2: | |
3: | |
4: | |
5: | |
6: | |
7: | |
8: | |
9: |
|
10: |
|
11: | |
12: | |
13: | |
14: | |
15: | |
16: |
|
17: | class Smarty_Internal_TestInstall
|
18: | {
|
19: | |
20: | |
21: | |
22: | |
23: | |
24: | |
25: | |
26: | |
27: |
|
28: | public static function testInstall(Smarty $smarty, &$errors = null)
|
29: | {
|
30: | $status = true;
|
31: | if ($errors === null) {
|
32: | echo "<PRE>\n";
|
33: | echo "Smarty Installation test...\n";
|
34: | echo "Testing template directory...\n";
|
35: | }
|
36: | $_stream_resolve_include_path = function_exists('stream_resolve_include_path');
|
37: |
|
38: | foreach ($smarty->getTemplateDir() as $template_dir) {
|
39: | $_template_dir = $template_dir;
|
40: | $template_dir = realpath($template_dir);
|
41: |
|
42: | if (!$template_dir) {
|
43: | if ($smarty->use_include_path && !preg_match('/^([\/\\\\]|[a-zA-Z]:[\/\\\\])/', $_template_dir)) {
|
44: |
|
45: | if ($_stream_resolve_include_path) {
|
46: | $template_dir = stream_resolve_include_path($_template_dir);
|
47: | } else {
|
48: | $template_dir = $smarty->ext->_getIncludePath->getIncludePath($_template_dir, null, $smarty);
|
49: | }
|
50: | if ($template_dir !== false) {
|
51: | if ($errors === null) {
|
52: | echo "$template_dir is OK.\n";
|
53: | }
|
54: | continue;
|
55: | } else {
|
56: | $status = false;
|
57: | $message =
|
58: | "FAILED: $_template_dir does not exist (and couldn't be found in include_path either)";
|
59: | if ($errors === null) {
|
60: | echo $message . ".\n";
|
61: | } else {
|
62: | $errors[ 'template_dir' ] = $message;
|
63: | }
|
64: | continue;
|
65: | }
|
66: | } else {
|
67: | $status = false;
|
68: | $message = "FAILED: $_template_dir does not exist";
|
69: | if ($errors === null) {
|
70: | echo $message . ".\n";
|
71: | } else {
|
72: | $errors[ 'template_dir' ] = $message;
|
73: | }
|
74: | continue;
|
75: | }
|
76: | }
|
77: | if (!is_dir($template_dir)) {
|
78: | $status = false;
|
79: | $message = "FAILED: $template_dir is not a directory";
|
80: | if ($errors === null) {
|
81: | echo $message . ".\n";
|
82: | } else {
|
83: | $errors[ 'template_dir' ] = $message;
|
84: | }
|
85: | } elseif (!is_readable($template_dir)) {
|
86: | $status = false;
|
87: | $message = "FAILED: $template_dir is not readable";
|
88: | if ($errors === null) {
|
89: | echo $message . ".\n";
|
90: | } else {
|
91: | $errors[ 'template_dir' ] = $message;
|
92: | }
|
93: | } else {
|
94: | if ($errors === null) {
|
95: | echo "$template_dir is OK.\n";
|
96: | }
|
97: | }
|
98: | }
|
99: | if ($errors === null) {
|
100: | echo "Testing compile directory...\n";
|
101: | }
|
102: |
|
103: | $__compile_dir = $smarty->getCompileDir();
|
104: | $_compile_dir = realpath($__compile_dir);
|
105: | if (!$_compile_dir) {
|
106: | $status = false;
|
107: | $message = "FAILED: {$__compile_dir} does not exist";
|
108: | if ($errors === null) {
|
109: | echo $message . ".\n";
|
110: | } else {
|
111: | $errors[ 'compile_dir' ] = $message;
|
112: | }
|
113: | } elseif (!is_dir($_compile_dir)) {
|
114: | $status = false;
|
115: | $message = "FAILED: {$_compile_dir} is not a directory";
|
116: | if ($errors === null) {
|
117: | echo $message . ".\n";
|
118: | } else {
|
119: | $errors[ 'compile_dir' ] = $message;
|
120: | }
|
121: | } elseif (!is_readable($_compile_dir)) {
|
122: | $status = false;
|
123: | $message = "FAILED: {$_compile_dir} is not readable";
|
124: | if ($errors === null) {
|
125: | echo $message . ".\n";
|
126: | } else {
|
127: | $errors[ 'compile_dir' ] = $message;
|
128: | }
|
129: | } elseif (!is_writable($_compile_dir)) {
|
130: | $status = false;
|
131: | $message = "FAILED: {$_compile_dir} is not writable";
|
132: | if ($errors === null) {
|
133: | echo $message . ".\n";
|
134: | } else {
|
135: | $errors[ 'compile_dir' ] = $message;
|
136: | }
|
137: | } else {
|
138: | if ($errors === null) {
|
139: | echo "{$_compile_dir} is OK.\n";
|
140: | }
|
141: | }
|
142: | if ($errors === null) {
|
143: | echo "Testing plugins directory...\n";
|
144: | }
|
145: |
|
146: |
|
147: | $_core_plugins_dir = realpath(dirname(__FILE__) . '/../plugins');
|
148: | $_core_plugins_available = false;
|
149: | foreach ($smarty->getPluginsDir() as $plugin_dir) {
|
150: | $_plugin_dir = $plugin_dir;
|
151: | $plugin_dir = realpath($plugin_dir);
|
152: |
|
153: | if (!$plugin_dir) {
|
154: | if ($smarty->use_include_path && !preg_match('/^([\/\\\\]|[a-zA-Z]:[\/\\\\])/', $_plugin_dir)) {
|
155: |
|
156: | if ($_stream_resolve_include_path) {
|
157: | $plugin_dir = stream_resolve_include_path($_plugin_dir);
|
158: | } else {
|
159: | $plugin_dir = $smarty->ext->_getIncludePath->getIncludePath($_plugin_dir, null, $smarty);
|
160: | }
|
161: | if ($plugin_dir !== false) {
|
162: | if ($errors === null) {
|
163: | echo "$plugin_dir is OK.\n";
|
164: | }
|
165: | continue;
|
166: | } else {
|
167: | $status = false;
|
168: | $message = "FAILED: $_plugin_dir does not exist (and couldn't be found in include_path either)";
|
169: | if ($errors === null) {
|
170: | echo $message . ".\n";
|
171: | } else {
|
172: | $errors[ 'plugins_dir' ] = $message;
|
173: | }
|
174: | continue;
|
175: | }
|
176: | } else {
|
177: | $status = false;
|
178: | $message = "FAILED: $_plugin_dir does not exist";
|
179: | if ($errors === null) {
|
180: | echo $message . ".\n";
|
181: | } else {
|
182: | $errors[ 'plugins_dir' ] = $message;
|
183: | }
|
184: | continue;
|
185: | }
|
186: | }
|
187: | if (!is_dir($plugin_dir)) {
|
188: | $status = false;
|
189: | $message = "FAILED: $plugin_dir is not a directory";
|
190: | if ($errors === null) {
|
191: | echo $message . ".\n";
|
192: | } else {
|
193: | $errors[ 'plugins_dir' ] = $message;
|
194: | }
|
195: | } elseif (!is_readable($plugin_dir)) {
|
196: | $status = false;
|
197: | $message = "FAILED: $plugin_dir is not readable";
|
198: | if ($errors === null) {
|
199: | echo $message . ".\n";
|
200: | } else {
|
201: | $errors[ 'plugins_dir' ] = $message;
|
202: | }
|
203: | } elseif ($_core_plugins_dir && $_core_plugins_dir == realpath($plugin_dir)) {
|
204: | $_core_plugins_available = true;
|
205: | if ($errors === null) {
|
206: | echo "$plugin_dir is OK.\n";
|
207: | }
|
208: | } else {
|
209: | if ($errors === null) {
|
210: | echo "$plugin_dir is OK.\n";
|
211: | }
|
212: | }
|
213: | }
|
214: | if (!$_core_plugins_available) {
|
215: | $status = false;
|
216: | $message = "WARNING: Smarty's own libs/plugins is not available";
|
217: | if ($errors === null) {
|
218: | echo $message . ".\n";
|
219: | } elseif (!isset($errors[ 'plugins_dir' ])) {
|
220: | $errors[ 'plugins_dir' ] = $message;
|
221: | }
|
222: | }
|
223: | if ($errors === null) {
|
224: | echo "Testing cache directory...\n";
|
225: | }
|
226: |
|
227: | $__cache_dir = $smarty->getCacheDir();
|
228: | $_cache_dir = realpath($__cache_dir);
|
229: | if (!$_cache_dir) {
|
230: | $status = false;
|
231: | $message = "FAILED: {$__cache_dir} does not exist";
|
232: | if ($errors === null) {
|
233: | echo $message . ".\n";
|
234: | } else {
|
235: | $errors[ 'cache_dir' ] = $message;
|
236: | }
|
237: | } elseif (!is_dir($_cache_dir)) {
|
238: | $status = false;
|
239: | $message = "FAILED: {$_cache_dir} is not a directory";
|
240: | if ($errors === null) {
|
241: | echo $message . ".\n";
|
242: | } else {
|
243: | $errors[ 'cache_dir' ] = $message;
|
244: | }
|
245: | } elseif (!is_readable($_cache_dir)) {
|
246: | $status = false;
|
247: | $message = "FAILED: {$_cache_dir} is not readable";
|
248: | if ($errors === null) {
|
249: | echo $message . ".\n";
|
250: | } else {
|
251: | $errors[ 'cache_dir' ] = $message;
|
252: | }
|
253: | } elseif (!is_writable($_cache_dir)) {
|
254: | $status = false;
|
255: | $message = "FAILED: {$_cache_dir} is not writable";
|
256: | if ($errors === null) {
|
257: | echo $message . ".\n";
|
258: | } else {
|
259: | $errors[ 'cache_dir' ] = $message;
|
260: | }
|
261: | } else {
|
262: | if ($errors === null) {
|
263: | echo "{$_cache_dir} is OK.\n";
|
264: | }
|
265: | }
|
266: | if ($errors === null) {
|
267: | echo "Testing configs directory...\n";
|
268: | }
|
269: |
|
270: | foreach ($smarty->getConfigDir() as $config_dir) {
|
271: | $_config_dir = $config_dir;
|
272: |
|
273: | if (!$config_dir) {
|
274: | if ($smarty->use_include_path && !preg_match('/^([\/\\\\]|[a-zA-Z]:[\/\\\\])/', $_config_dir)) {
|
275: |
|
276: | if ($_stream_resolve_include_path) {
|
277: | $config_dir = stream_resolve_include_path($_config_dir);
|
278: | } else {
|
279: | $config_dir = $smarty->ext->_getIncludePath->getIncludePath($_config_dir, null, $smarty);
|
280: | }
|
281: | if ($config_dir !== false) {
|
282: | if ($errors === null) {
|
283: | echo "$config_dir is OK.\n";
|
284: | }
|
285: | continue;
|
286: | } else {
|
287: | $status = false;
|
288: | $message = "FAILED: $_config_dir does not exist (and couldn't be found in include_path either)";
|
289: | if ($errors === null) {
|
290: | echo $message . ".\n";
|
291: | } else {
|
292: | $errors[ 'config_dir' ] = $message;
|
293: | }
|
294: | continue;
|
295: | }
|
296: | } else {
|
297: | $status = false;
|
298: | $message = "FAILED: $_config_dir does not exist";
|
299: | if ($errors === null) {
|
300: | echo $message . ".\n";
|
301: | } else {
|
302: | $errors[ 'config_dir' ] = $message;
|
303: | }
|
304: | continue;
|
305: | }
|
306: | }
|
307: | if (!is_dir($config_dir)) {
|
308: | $status = false;
|
309: | $message = "FAILED: $config_dir is not a directory";
|
310: | if ($errors === null) {
|
311: | echo $message . ".\n";
|
312: | } else {
|
313: | $errors[ 'config_dir' ] = $message;
|
314: | }
|
315: | } elseif (!is_readable($config_dir)) {
|
316: | $status = false;
|
317: | $message = "FAILED: $config_dir is not readable";
|
318: | if ($errors === null) {
|
319: | echo $message . ".\n";
|
320: | } else {
|
321: | $errors[ 'config_dir' ] = $message;
|
322: | }
|
323: | } else {
|
324: | if ($errors === null) {
|
325: | echo "$config_dir is OK.\n";
|
326: | }
|
327: | }
|
328: | }
|
329: | if ($errors === null) {
|
330: | echo "Testing sysplugin files...\n";
|
331: | }
|
332: |
|
333: | $source = SMARTY_SYSPLUGINS_DIR;
|
334: | if (is_dir($source)) {
|
335: | $expectedSysplugins = array(
|
336: | 'smartycompilerexception.php' => true,
|
337: | 'smartyexception.php' => true,
|
338: | 'smarty_cacheresource.php' => true,
|
339: | 'smarty_cacheresource_custom.php' => true,
|
340: | 'smarty_cacheresource_keyvaluestore.php' => true,
|
341: | 'smarty_data.php' => true,
|
342: | 'smarty_internal_block.php' => true,
|
343: | 'smarty_internal_cacheresource_file.php' => true,
|
344: | 'smarty_internal_compilebase.php' => true,
|
345: | 'smarty_internal_compile_append.php' => true,
|
346: | 'smarty_internal_compile_assign.php' => true,
|
347: | 'smarty_internal_compile_block.php' => true,
|
348: | 'smarty_internal_compile_block_child.php' => true,
|
349: | 'smarty_internal_compile_block_parent.php' => true,
|
350: | 'smarty_internal_compile_child.php' => true,
|
351: | 'smarty_internal_compile_parent.php' => true,
|
352: | 'smarty_internal_compile_break.php' => true,
|
353: | 'smarty_internal_compile_call.php' => true,
|
354: | 'smarty_internal_compile_capture.php' => true,
|
355: | 'smarty_internal_compile_config_load.php' => true,
|
356: | 'smarty_internal_compile_continue.php' => true,
|
357: | 'smarty_internal_compile_debug.php' => true,
|
358: | 'smarty_internal_compile_eval.php' => true,
|
359: | 'smarty_internal_compile_extends.php' => true,
|
360: | 'smarty_internal_compile_for.php' => true,
|
361: | 'smarty_internal_compile_foreach.php' => true,
|
362: | 'smarty_internal_compile_function.php' => true,
|
363: | 'smarty_internal_compile_if.php' => true,
|
364: | 'smarty_internal_compile_include.php' => true,
|
365: | 'smarty_internal_compile_include_php.php' => true,
|
366: | 'smarty_internal_compile_insert.php' => true,
|
367: | 'smarty_internal_compile_ldelim.php' => true,
|
368: | 'smarty_internal_compile_make_nocache.php' => true,
|
369: | 'smarty_internal_compile_nocache.php' => true,
|
370: | 'smarty_internal_compile_private_block_plugin.php' => true,
|
371: | 'smarty_internal_compile_private_foreachsection.php' => true,
|
372: | 'smarty_internal_compile_private_function_plugin.php' => true,
|
373: | 'smarty_internal_compile_private_modifier.php' => true,
|
374: | 'smarty_internal_compile_private_object_block_function.php' => true,
|
375: | 'smarty_internal_compile_private_object_function.php' => true,
|
376: | 'smarty_internal_compile_private_php.php' => true,
|
377: | 'smarty_internal_compile_private_print_expression.php' => true,
|
378: | 'smarty_internal_compile_private_registered_block.php' => true,
|
379: | 'smarty_internal_compile_private_registered_function.php' => true,
|
380: | 'smarty_internal_compile_private_special_variable.php' => true,
|
381: | 'smarty_internal_compile_rdelim.php' => true,
|
382: | 'smarty_internal_compile_section.php' => true,
|
383: | 'smarty_internal_compile_setfilter.php' => true,
|
384: | 'smarty_internal_compile_shared_inheritance.php' => true,
|
385: | 'smarty_internal_compile_while.php' => true,
|
386: | 'smarty_internal_configfilelexer.php' => true,
|
387: | 'smarty_internal_configfileparser.php' => true,
|
388: | 'smarty_internal_config_file_compiler.php' => true,
|
389: | 'smarty_internal_data.php' => true,
|
390: | 'smarty_internal_debug.php' => true,
|
391: | 'smarty_internal_errorhandler.php' => true,
|
392: | 'smarty_internal_extension_handler.php' => true,
|
393: | 'smarty_internal_method_addautoloadfilters.php' => true,
|
394: | 'smarty_internal_method_adddefaultmodifiers.php' => true,
|
395: | 'smarty_internal_method_append.php' => true,
|
396: | 'smarty_internal_method_appendbyref.php' => true,
|
397: | 'smarty_internal_method_assignbyref.php' => true,
|
398: | 'smarty_internal_method_assignglobal.php' => true,
|
399: | 'smarty_internal_method_clearallassign.php' => true,
|
400: | 'smarty_internal_method_clearallcache.php' => true,
|
401: | 'smarty_internal_method_clearassign.php' => true,
|
402: | 'smarty_internal_method_clearcache.php' => true,
|
403: | 'smarty_internal_method_clearcompiledtemplate.php' => true,
|
404: | 'smarty_internal_method_clearconfig.php' => true,
|
405: | 'smarty_internal_method_compileallconfig.php' => true,
|
406: | 'smarty_internal_method_compilealltemplates.php' => true,
|
407: | 'smarty_internal_method_configload.php' => true,
|
408: | 'smarty_internal_method_createdata.php' => true,
|
409: | 'smarty_internal_method_getautoloadfilters.php' => true,
|
410: | 'smarty_internal_method_getconfigvariable.php' => true,
|
411: | 'smarty_internal_method_getconfigvars.php' => true,
|
412: | 'smarty_internal_method_getdebugtemplate.php' => true,
|
413: | 'smarty_internal_method_getdefaultmodifiers.php' => true,
|
414: | 'smarty_internal_method_getglobal.php' => true,
|
415: | 'smarty_internal_method_getregisteredobject.php' => true,
|
416: | 'smarty_internal_method_getstreamvariable.php' => true,
|
417: | 'smarty_internal_method_gettags.php' => true,
|
418: | 'smarty_internal_method_gettemplatevars.php' => true,
|
419: | 'smarty_internal_method_literals.php' => true,
|
420: | 'smarty_internal_method_loadfilter.php' => true,
|
421: | 'smarty_internal_method_loadplugin.php' => true,
|
422: | 'smarty_internal_method_mustcompile.php' => true,
|
423: | 'smarty_internal_method_registercacheresource.php' => true,
|
424: | 'smarty_internal_method_registerclass.php' => true,
|
425: | 'smarty_internal_method_registerdefaultconfighandler.php' => true,
|
426: | 'smarty_internal_method_registerdefaultpluginhandler.php' => true,
|
427: | 'smarty_internal_method_registerdefaulttemplatehandler.php' => true,
|
428: | 'smarty_internal_method_registerfilter.php' => true,
|
429: | 'smarty_internal_method_registerobject.php' => true,
|
430: | 'smarty_internal_method_registerplugin.php' => true,
|
431: | 'smarty_internal_method_registerresource.php' => true,
|
432: | 'smarty_internal_method_setautoloadfilters.php' => true,
|
433: | 'smarty_internal_method_setdebugtemplate.php' => true,
|
434: | 'smarty_internal_method_setdefaultmodifiers.php' => true,
|
435: | 'smarty_internal_method_unloadfilter.php' => true,
|
436: | 'smarty_internal_method_unregistercacheresource.php' => true,
|
437: | 'smarty_internal_method_unregisterfilter.php' => true,
|
438: | 'smarty_internal_method_unregisterobject.php' => true,
|
439: | 'smarty_internal_method_unregisterplugin.php' => true,
|
440: | 'smarty_internal_method_unregisterresource.php' => true,
|
441: | 'smarty_internal_nocache_insert.php' => true,
|
442: | 'smarty_internal_parsetree.php' => true,
|
443: | 'smarty_internal_parsetree_code.php' => true,
|
444: | 'smarty_internal_parsetree_dq.php' => true,
|
445: | 'smarty_internal_parsetree_dqcontent.php' => true,
|
446: | 'smarty_internal_parsetree_tag.php' => true,
|
447: | 'smarty_internal_parsetree_template.php' => true,
|
448: | 'smarty_internal_parsetree_text.php' => true,
|
449: | 'smarty_internal_resource_eval.php' => true,
|
450: | 'smarty_internal_resource_extends.php' => true,
|
451: | 'smarty_internal_resource_file.php' => true,
|
452: | 'smarty_internal_resource_php.php' => true,
|
453: | 'smarty_internal_resource_registered.php' => true,
|
454: | 'smarty_internal_resource_stream.php' => true,
|
455: | 'smarty_internal_resource_string.php' => true,
|
456: | 'smarty_internal_runtime_cachemodify.php' => true,
|
457: | 'smarty_internal_runtime_cacheresourcefile.php' => true,
|
458: | 'smarty_internal_runtime_capture.php' => true,
|
459: | 'smarty_internal_runtime_codeframe.php' => true,
|
460: | 'smarty_internal_runtime_filterhandler.php' => true,
|
461: | 'smarty_internal_runtime_foreach.php' => true,
|
462: | 'smarty_internal_runtime_getincludepath.php' => true,
|
463: | 'smarty_internal_runtime_inheritance.php' => true,
|
464: | 'smarty_internal_runtime_make_nocache.php' => true,
|
465: | 'smarty_internal_runtime_tplfunction.php' => true,
|
466: | 'smarty_internal_runtime_updatecache.php' => true,
|
467: | 'smarty_internal_runtime_updatescope.php' => true,
|
468: | 'smarty_internal_runtime_writefile.php' => true,
|
469: | 'smarty_internal_smartytemplatecompiler.php' => true,
|
470: | 'smarty_internal_template.php' => true,
|
471: | 'smarty_internal_templatebase.php' => true,
|
472: | 'smarty_internal_templatecompilerbase.php' => true,
|
473: | 'smarty_internal_templatelexer.php' => true,
|
474: | 'smarty_internal_templateparser.php' => true,
|
475: | 'smarty_internal_testinstall.php' => true,
|
476: | 'smarty_internal_undefined.php' => true,
|
477: | 'smarty_resource.php' => true,
|
478: | 'smarty_resource_custom.php' => true,
|
479: | 'smarty_resource_recompiled.php' => true,
|
480: | 'smarty_resource_uncompiled.php' => true,
|
481: | 'smarty_security.php' => true,
|
482: | 'smarty_template_cached.php' => true,
|
483: | 'smarty_template_compiled.php' => true,
|
484: | 'smarty_template_config.php' => true,
|
485: | 'smarty_template_resource_base.php' => true,
|
486: | 'smarty_template_source.php' => true,
|
487: | 'smarty_undefined_variable.php' => true,
|
488: | 'smarty_variable.php' => true,
|
489: | );
|
490: | $iterator = new DirectoryIterator($source);
|
491: | foreach ($iterator as $file) {
|
492: | if (!$file->isDot()) {
|
493: | $filename = $file->getFilename();
|
494: | if (isset($expectedSysplugins[ $filename ])) {
|
495: | unset($expectedSysplugins[ $filename ]);
|
496: | }
|
497: | }
|
498: | }
|
499: | if ($expectedSysplugins) {
|
500: | $status = false;
|
501: | $message = "FAILED: files missing from libs/sysplugins: " . join(', ', array_keys($expectedSysplugins));
|
502: | if ($errors === null) {
|
503: | echo $message . ".\n";
|
504: | } else {
|
505: | $errors[ 'sysplugins' ] = $message;
|
506: | }
|
507: | } elseif ($errors === null) {
|
508: | echo "... OK\n";
|
509: | }
|
510: | } else {
|
511: | $status = false;
|
512: | $message = "FAILED: " . SMARTY_SYSPLUGINS_DIR . ' is not a directory';
|
513: | if ($errors === null) {
|
514: | echo $message . ".\n";
|
515: | } else {
|
516: | $errors[ 'sysplugins_dir_constant' ] = $message;
|
517: | }
|
518: | }
|
519: | if ($errors === null) {
|
520: | echo "Testing plugin files...\n";
|
521: | }
|
522: |
|
523: | $source = SMARTY_PLUGINS_DIR;
|
524: | if (is_dir($source)) {
|
525: | $expectedPlugins = array(
|
526: | 'block.textformat.php' => true,
|
527: | 'function.counter.php' => true,
|
528: | 'function.cycle.php' => true,
|
529: | 'function.fetch.php' => true,
|
530: | 'function.html_checkboxes.php' => true,
|
531: | 'function.html_image.php' => true,
|
532: | 'function.html_options.php' => true,
|
533: | 'function.html_radios.php' => true,
|
534: | 'function.html_select_date.php' => true,
|
535: | 'function.html_select_time.php' => true,
|
536: | 'function.html_table.php' => true,
|
537: | 'function.mailto.php' => true,
|
538: | 'function.math.php' => true,
|
539: | 'modifier.capitalize.php' => true,
|
540: | 'modifier.date_format.php' => true,
|
541: | 'modifier.debug_print_var.php' => true,
|
542: | 'modifier.escape.php' => true,
|
543: | 'modifier.mb_wordwrap.php' => true,
|
544: | 'modifier.regex_replace.php' => true,
|
545: | 'modifier.replace.php' => true,
|
546: | 'modifier.spacify.php' => true,
|
547: | 'modifier.truncate.php' => true,
|
548: | 'modifiercompiler.cat.php' => true,
|
549: | 'modifiercompiler.count_characters.php' => true,
|
550: | 'modifiercompiler.count_paragraphs.php' => true,
|
551: | 'modifiercompiler.count_sentences.php' => true,
|
552: | 'modifiercompiler.count_words.php' => true,
|
553: | 'modifiercompiler.default.php' => true,
|
554: | 'modifiercompiler.escape.php' => true,
|
555: | 'modifiercompiler.from_charset.php' => true,
|
556: | 'modifiercompiler.indent.php' => true,
|
557: | 'modifiercompiler.lower.php' => true,
|
558: | 'modifiercompiler.noprint.php' => true,
|
559: | 'modifiercompiler.string_format.php' => true,
|
560: | 'modifiercompiler.strip.php' => true,
|
561: | 'modifiercompiler.strip_tags.php' => true,
|
562: | 'modifiercompiler.to_charset.php' => true,
|
563: | 'modifiercompiler.unescape.php' => true,
|
564: | 'modifiercompiler.upper.php' => true,
|
565: | 'modifiercompiler.wordwrap.php' => true,
|
566: | 'outputfilter.trimwhitespace.php' => true,
|
567: | 'shared.escape_special_chars.php' => true,
|
568: | 'shared.literal_compiler_param.php' => true,
|
569: | 'shared.make_timestamp.php' => true,
|
570: | 'shared.mb_str_replace.php' => true,
|
571: | 'shared.mb_unicode.php' => true,
|
572: | 'variablefilter.htmlspecialchars.php' => true,
|
573: | );
|
574: | $iterator = new DirectoryIterator($source);
|
575: | foreach ($iterator as $file) {
|
576: | if (!$file->isDot()) {
|
577: | $filename = $file->getFilename();
|
578: | if (isset($expectedPlugins[ $filename ])) {
|
579: | unset($expectedPlugins[ $filename ]);
|
580: | }
|
581: | }
|
582: | }
|
583: | if ($expectedPlugins) {
|
584: | $status = false;
|
585: | $message = "FAILED: files missing from libs/plugins: " . join(', ', array_keys($expectedPlugins));
|
586: | if ($errors === null) {
|
587: | echo $message . ".\n";
|
588: | } else {
|
589: | $errors[ 'plugins' ] = $message;
|
590: | }
|
591: | } elseif ($errors === null) {
|
592: | echo "... OK\n";
|
593: | }
|
594: | } else {
|
595: | $status = false;
|
596: | $message = "FAILED: " . SMARTY_PLUGINS_DIR . ' is not a directory';
|
597: | if ($errors === null) {
|
598: | echo $message . ".\n";
|
599: | } else {
|
600: | $errors[ 'plugins_dir_constant' ] = $message;
|
601: | }
|
602: | }
|
603: | if ($errors === null) {
|
604: | echo "Tests complete.\n";
|
605: | echo "</PRE>\n";
|
606: | }
|
607: | return $status;
|
608: | }
|
609: | }
|
610: | |