From 3002b3afe5ba069882331f31d8a36f98a1b9ddb2 Mon Sep 17 00:00:00 2001 From: Vasil Rangelov Date: Thu, 31 Jul 2014 23:16:44 +0300 Subject: [PATCH] Removed the "vendor" folder and added it to .gitignore; Added PEAR2_Templates_Savant as an optional dependency in package.xml; Refreshed package.xml with "pyrus make". --- .gitignore | 1 + package.xml | 30 +- package_compatible.xml | 24 +- .../configsnapshot-2011-07-26 19-41-32.xml | 2 - .../configsnapshot-2011-09-09 10-24-33.xml | 2 - vendor/.pear2registry | Bin 121856 -> 0 bytes .../PEAR2_Autoload/0.2.4-info.xml | 82 - .../PEAR2_Exception/0.2.0-info.xml | 110 - .../PEAR2_MultiErrors/0.2.0-info.xml | 75 - .../PEAR2_Templates_Savant/0.3.3-info.xml | 98 - .../examples/baseball/BaseballPlayer.tpl.php | 5 - .../examples/baseball/BaseballTeam.tpl.php | 9 - .../examples/baseball/ListItem.tpl.php | 1 - .../examples/baseball/PartialSeason.tpl.php | 1 - .../baseball/examples/baseball/index.php | 54 - .../examples/examples/basic.php | 38 - .../examples/templates/MyTemplate.tpl.php | 2 - .../examples/templates/StringView.tpl.php | 1 - .../examples/templates/stdClass.tpl.php | 6 - vendor/downloads/PEAR2_Autoload-0.2.3.tgz | Bin 5366 -> 0 bytes .../PEAR2_Templates_Savant-0.3.3.tgz | Bin 19059 -> 0 bytes vendor/php/PEAR2/Autoload.php | 243 -- vendor/php/PEAR2/Exception.php | 196 -- vendor/php/PEAR2/MultiErrors.php | 227 -- vendor/php/PEAR2/MultiErrors/Exception.php | 3 - .../Savant/BadMethodCallException.php | 7 - .../Templates/Savant/BasicFastCompiler.php | 54 - .../Savant/ClassToTemplateMapper.php | 102 - .../Templates/Savant/CompilerException.php | 5 - .../Templates/Savant/CompilerInterface.php | 8 - .../php/PEAR2/Templates/Savant/Exception.php | 8 - .../Savant/FastCompilerInterface.php | 7 - .../PEAR2/Templates/Savant/FilterAbstract.php | 86 - vendor/php/PEAR2/Templates/Savant/Main.php | 934 ------- .../Templates/Savant/MapperInterface.php | 8 - .../PEAR2/Templates/Savant/ObjectProxy.php | 217 -- .../Savant/ObjectProxy/ArrayAccess.php | 25 - .../Savant/ObjectProxy/ArrayIterator.php | 47 - .../Savant/ObjectProxy/ArrayObject.php | 84 - .../Savant/ObjectProxy/Traversable.php | 36 - .../Templates/Savant/TemplateException.php | 5 - .../Savant/UnexpectedValueException.php | 7 - .../PEAR2_Autoload/_files/testDir1/Foo.php | 9 - .../PEAR2_Autoload/initialize_basic001.phpt | 10 - .../PEAR2_Autoload/initialize_basic002.phpt | 11 - .../PEAR2_Autoload/initialize_basic003.phpt | 11 - .../PEAR2_Autoload/initialize_basic004.phpt | 25 - .../PEAR2_Autoload/initialize_basic005.phpt | 10 - .../PEAR2_Autoload/run-tests.php.inc | 2479 ----------------- .../PEAR2_Templates_Savant/escape/Foo.tpl.php | 3 - .../escape/echostring.tpl.php | 3 - .../PEAR2_Templates_Savant/escape/object.phpt | 24 - .../PEAR2_Templates_Savant/escape/raw.tpl.php | 3 - .../PEAR2_Templates_Savant/escape/string.phpt | 19 - .../PEAR2_Templates_Savant/globals/basic.phpt | 15 - .../globals/basic.tpl.php | 6 - .../globals/escape.arrays.phpt | 23 - .../globals/escape.nestedarrays.phpt | 23 - .../globals/escape.phpt | 21 - .../PEAR2_Templates_Savant/render/Foo.tpl.php | 2 - .../PEAR2_Templates_Savant/render/array.phpt | 18 - .../render/echostring.tpl.php | 1 - .../render/fastcompile.phpt | 49 - .../PEAR2_Templates_Savant/render/object.phpt | 30 - .../PEAR2_Templates_Savant/render/string.phpt | 24 - .../test_framework.php.inc | 210 -- 66 files changed, 29 insertions(+), 5850 deletions(-) delete mode 100644 vendor/.configsnapshots/configsnapshot-2011-07-26 19-41-32.xml delete mode 100644 vendor/.configsnapshots/configsnapshot-2011-09-09 10-24-33.xml delete mode 100644 vendor/.pear2registry delete mode 100644 vendor/.xmlregistry/packages/pear2.php.net/PEAR2_Autoload/0.2.4-info.xml delete mode 100644 vendor/.xmlregistry/packages/pear2.php.net/PEAR2_Exception/0.2.0-info.xml delete mode 100644 vendor/.xmlregistry/packages/pear2.php.net/PEAR2_MultiErrors/0.2.0-info.xml delete mode 100644 vendor/.xmlregistry/packages/pear2.php.net/PEAR2_Templates_Savant/0.3.3-info.xml delete mode 100644 vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/baseball/examples/baseball/BaseballPlayer.tpl.php delete mode 100644 vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/baseball/examples/baseball/BaseballTeam.tpl.php delete mode 100644 vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/baseball/examples/baseball/ListItem.tpl.php delete mode 100644 vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/baseball/examples/baseball/PartialSeason.tpl.php delete mode 100644 vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/baseball/examples/baseball/index.php delete mode 100644 vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/examples/basic.php delete mode 100644 vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/templates/examples/templates/MyTemplate.tpl.php delete mode 100644 vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/templates/examples/templates/StringView.tpl.php delete mode 100644 vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/templates/examples/templates/stdClass.tpl.php delete mode 100644 vendor/downloads/PEAR2_Autoload-0.2.3.tgz delete mode 100644 vendor/downloads/PEAR2_Templates_Savant-0.3.3.tgz delete mode 100644 vendor/php/PEAR2/Autoload.php delete mode 100644 vendor/php/PEAR2/Exception.php delete mode 100644 vendor/php/PEAR2/MultiErrors.php delete mode 100644 vendor/php/PEAR2/MultiErrors/Exception.php delete mode 100644 vendor/php/PEAR2/Templates/Savant/BadMethodCallException.php delete mode 100644 vendor/php/PEAR2/Templates/Savant/BasicFastCompiler.php delete mode 100644 vendor/php/PEAR2/Templates/Savant/ClassToTemplateMapper.php delete mode 100644 vendor/php/PEAR2/Templates/Savant/CompilerException.php delete mode 100644 vendor/php/PEAR2/Templates/Savant/CompilerInterface.php delete mode 100644 vendor/php/PEAR2/Templates/Savant/Exception.php delete mode 100644 vendor/php/PEAR2/Templates/Savant/FastCompilerInterface.php delete mode 100644 vendor/php/PEAR2/Templates/Savant/FilterAbstract.php delete mode 100644 vendor/php/PEAR2/Templates/Savant/Main.php delete mode 100644 vendor/php/PEAR2/Templates/Savant/MapperInterface.php delete mode 100644 vendor/php/PEAR2/Templates/Savant/ObjectProxy.php delete mode 100644 vendor/php/PEAR2/Templates/Savant/ObjectProxy/ArrayAccess.php delete mode 100644 vendor/php/PEAR2/Templates/Savant/ObjectProxy/ArrayIterator.php delete mode 100644 vendor/php/PEAR2/Templates/Savant/ObjectProxy/ArrayObject.php delete mode 100644 vendor/php/PEAR2/Templates/Savant/ObjectProxy/Traversable.php delete mode 100644 vendor/php/PEAR2/Templates/Savant/TemplateException.php delete mode 100644 vendor/php/PEAR2/Templates/Savant/UnexpectedValueException.php delete mode 100644 vendor/tests/pear2.php.net/PEAR2_Autoload/_files/testDir1/Foo.php delete mode 100644 vendor/tests/pear2.php.net/PEAR2_Autoload/initialize_basic001.phpt delete mode 100644 vendor/tests/pear2.php.net/PEAR2_Autoload/initialize_basic002.phpt delete mode 100644 vendor/tests/pear2.php.net/PEAR2_Autoload/initialize_basic003.phpt delete mode 100644 vendor/tests/pear2.php.net/PEAR2_Autoload/initialize_basic004.phpt delete mode 100644 vendor/tests/pear2.php.net/PEAR2_Autoload/initialize_basic005.phpt delete mode 100644 vendor/tests/pear2.php.net/PEAR2_Autoload/run-tests.php.inc delete mode 100644 vendor/tests/pear2.php.net/PEAR2_Templates_Savant/escape/Foo.tpl.php delete mode 100644 vendor/tests/pear2.php.net/PEAR2_Templates_Savant/escape/echostring.tpl.php delete mode 100644 vendor/tests/pear2.php.net/PEAR2_Templates_Savant/escape/object.phpt delete mode 100644 vendor/tests/pear2.php.net/PEAR2_Templates_Savant/escape/raw.tpl.php delete mode 100644 vendor/tests/pear2.php.net/PEAR2_Templates_Savant/escape/string.phpt delete mode 100644 vendor/tests/pear2.php.net/PEAR2_Templates_Savant/globals/basic.phpt delete mode 100644 vendor/tests/pear2.php.net/PEAR2_Templates_Savant/globals/basic.tpl.php delete mode 100644 vendor/tests/pear2.php.net/PEAR2_Templates_Savant/globals/escape.arrays.phpt delete mode 100644 vendor/tests/pear2.php.net/PEAR2_Templates_Savant/globals/escape.nestedarrays.phpt delete mode 100644 vendor/tests/pear2.php.net/PEAR2_Templates_Savant/globals/escape.phpt delete mode 100644 vendor/tests/pear2.php.net/PEAR2_Templates_Savant/render/Foo.tpl.php delete mode 100644 vendor/tests/pear2.php.net/PEAR2_Templates_Savant/render/array.phpt delete mode 100644 vendor/tests/pear2.php.net/PEAR2_Templates_Savant/render/echostring.tpl.php delete mode 100644 vendor/tests/pear2.php.net/PEAR2_Templates_Savant/render/fastcompile.phpt delete mode 100644 vendor/tests/pear2.php.net/PEAR2_Templates_Savant/render/object.phpt delete mode 100644 vendor/tests/pear2.php.net/PEAR2_Templates_Savant/render/string.phpt delete mode 100644 vendor/tests/pear2.php.net/PEAR2_Templates_Savant/test_framework.php.inc diff --git a/.gitignore b/.gitignore index 5e7e032..1e7b41c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +/vendor/ /run-tests.log .DS_Store /.settings/ diff --git a/package.xml b/package.xml index 7dde039..aee97a0 100644 --- a/package.xml +++ b/package.xml @@ -48,7 +48,7 @@ For more information, read the [documentation][5]. yes 2014-07-31 - + 0.6.0 0.1.0 @@ -67,7 +67,8 @@ Bug Fixes/Refactoring: - Fix filename for packages with a dot in their name, #17 [fpoirotte] - Fix package creation, #18 [boenrobot] - - Massive CS fixes, #23 [boenrobot] + - Massive CS fixes, #23 [boenrobot] + - Rewrote generate-pear2 and "make" with non-existent package.xml files, #27 [boenrobot] @@ -149,20 +150,17 @@ Bug Fixes/Refactoring: - - + + - - - - - - - + + + + + + - - @@ -215,6 +213,12 @@ Bug Fixes/Refactoring: 2.0.0a1 + + + PEAR2_Templates_Savant + pear2.php.net + + diff --git a/package_compatible.xml b/package_compatible.xml index 5e7f2bc..ec9af41 100644 --- a/package_compatible.xml +++ b/package_compatible.xml @@ -48,7 +48,7 @@ For more information, read the [documentation][5]. yes 2014-07-31 - + 0.6.0 0.1.0 @@ -77,12 +77,11 @@ For more information, read the [documentation][5]. - - - - - - + + + + + @@ -187,12 +186,11 @@ For more information, read the [documentation][5]. - - - - - - + + + + + diff --git a/vendor/.configsnapshots/configsnapshot-2011-07-26 19-41-32.xml b/vendor/.configsnapshots/configsnapshot-2011-07-26 19-41-32.xml deleted file mode 100644 index 3a05049..0000000 --- a/vendor/.configsnapshots/configsnapshot-2011-07-26 19-41-32.xml +++ /dev/null @@ -1,2 +0,0 @@ - -/Users/helgi/projects/projects/github/pyrus/Pyrus_Developer/vendor/php/usr/lib/php/extensions/no-debug-non-zts-20090626//Users/helgi/projects/projects/github/pyrus/Pyrus_Developer/vendor/cfg/Users/helgi/projects/projects/github/pyrus/Pyrus_Developer/vendor/docs/usr/local/bin/Users/helgi/projects/projects/github/pyrus/Pyrus_Developer/vendor/data/Users/helgi/projects/projects/github/pyrus/Pyrus_Developer/vendor/www/Users/helgi/projects/projects/github/pyrus/Pyrus_Developer/vendor/tests/Users/helgi/projects/projects/github/pyrus/Pyrus_Developer/vendor/src/usr/local/bin/php/private/etc/php.ini diff --git a/vendor/.configsnapshots/configsnapshot-2011-09-09 10-24-33.xml b/vendor/.configsnapshots/configsnapshot-2011-09-09 10-24-33.xml deleted file mode 100644 index 98c2a2f..0000000 --- a/vendor/.configsnapshots/configsnapshot-2011-09-09 10-24-33.xml +++ /dev/null @@ -1,2 +0,0 @@ - -/Users/bbieber/Documents/workspace/Pyrus_Developer/vendor/php/usr/local/lib/php/extensions/no-debug-non-zts-20090626//Users/bbieber/Documents/workspace/Pyrus_Developer/vendor/cfg/Users/bbieber/Documents/workspace/Pyrus_Developer/vendor/docs/usr/local/bin/Users/bbieber/Documents/workspace/Pyrus_Developer/vendor/data/Users/bbieber/Documents/workspace/Pyrus_Developer/vendor/www/Users/bbieber/Documents/workspace/Pyrus_Developer/vendor/tests/Users/bbieber/Documents/workspace/Pyrus_Developer/vendor/src/usr/local/bin/php/usr/local/lib/php.ini diff --git a/vendor/.pear2registry b/vendor/.pear2registry deleted file mode 100644 index 5416eeca561d905c3de40f2098d890680b4fdb73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 121856 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 diff --git a/vendor/.xmlregistry/packages/pear2.php.net/PEAR2_Autoload/0.2.4-info.xml b/vendor/.xmlregistry/packages/pear2.php.net/PEAR2_Autoload/0.2.4-info.xml deleted file mode 100644 index c9d4928..0000000 --- a/vendor/.xmlregistry/packages/pear2.php.net/PEAR2_Autoload/0.2.4-info.xml +++ /dev/null @@ -1,82 +0,0 @@ - - - PEAR2_Autoload - pear2.php.net - Standard Autoloader for PEAR2 - - -PEAR2_Autoload is the standard method of class loading for -development and low-volume web sites using PEAR2 packages. - -To use: - - <?php - require '/path/to/PEAR2/Autoload.php'; - // Now use class names from installed PEAR2 packages at will - - // You can also inclue other PEAR2 registries - // require '/other/pear2/repo/PEAR2/Autoload.php'; - // or manually - // PEAR2\Autoload::initialize('/other/pear2/repo'); - ?> - - Gregory Beaver - cellog - cellog@php.net - yes - - - Brett Bieber - saltybeagle - saltybeagle@php.net - yes - - - Clay Loveless - clay - clay@php.net - yes - - 2011-07-26 - - - 0.2.4 - 0.1.0 - - - alpha - alpha - - New BSD License - - Add optional dynamically-generated class map so full file paths can be - used when loading class files. - -- Added a few test cases, along with non-Pyrus .phpt runner to keep us from - trying to load PEAR2\Autoload twice! - -- Removed PEAR2\ prefix requirement for loaded classes. Now psr-0 compliant. - - - - - - - - - - - - - - - - - 5.3.0 - - - 2.0.0a1 - - - - - diff --git a/vendor/.xmlregistry/packages/pear2.php.net/PEAR2_Exception/0.2.0-info.xml b/vendor/.xmlregistry/packages/pear2.php.net/PEAR2_Exception/0.2.0-info.xml deleted file mode 100644 index 296297b..0000000 --- a/vendor/.xmlregistry/packages/pear2.php.net/PEAR2_Exception/0.2.0-info.xml +++ /dev/null @@ -1,110 +0,0 @@ - - - PEAR2_Exception - pear2.php.net - PEAR2\Exception is the standard exception class for PEAR2. - - In addition to supporting the default signature of the built-in -Exception class, PEAR2\Exception also supports passing a -cause of an exception, which can be another exception object -or a PEAR2_MultiErrors object. The error messages of the causes -are used when constructing the error message displayed when -converting PEAR2\Exception to a string. - -PEAR2\Exception should always be extended by your own custom exception -class for the package. - - Gregory Beaver - cellog - cellog@php.net - yes - - - Tomas V.V. Cox - cox - cox@idecnet.com - no - - - Bertrand Mansion - mansion - bmansion@mamasam.com - no - - - Hans Lellelid - hlellelid - hans@velum.net - no - - 2011-09-09 - - - 0.2.0 - 0.1.0 - - - alpha - alpha - - New BSD License - - Covert namespace to PEAR2 -- Removed getCause() as it just uses the built in getPrevious() that was added in PHP 5.3 -- Removed getUniqueId as it's used anywhere -- Removed toHtml, toText and __toString (which only handled calling the former two). - People should implement their owny decorator calls. -- Removed the built in outputs of the observer functions. Those where the class constants - OBSERVER_PRINT, OBSERVER_TRIGGER, OBSERVER_DIE - This can be achieved by writing a custom callback function, using the appropriate printf(), - trigger_error and die() to achieve the same result. -- Removed getErroClass and getErrorMethod as it can be easily gotten from getTrace/getTraceSafe first array element -- Add the proper LICENSE file and move Exception.php to the NEW BSD license as the package.xml already defines -- Removed __toString, toText and toHtml. For those wanting to get pretty outputs they can use this approach: - - $causes = array(); - $this->getCauseMessage($causes); - foreach ($causes as $i => $cause) { - var_dump($cause); - } - - And combine that with getTraceSafe() or getTraceAsString() if needed. - - Put all that in a function and use set_exception_handler('exceptionHandler'); or similar to process - all Exceptions. - - Example code or see the removed code at http://svn.php.net/viewvc/pear2/Exception/trunk/src/Exception.php?r1=295348&r2=295352 : - - function exceptionHandler($e) - { - if ($e instanceof \PEAR2\Exception) { - $causes = array(); - $e->getCauseMessage($causes); - $causeMsg = ''; - foreach ($causes as $i => $cause) { - $causeMsg .= str_repeat(' ', $i) . $cause['class'] . ': ' - . $cause['message'] . "\n"; - } - echo $causeMsg; - } else { - echo $e->getMessage(), "\n"; - } - } - - set_exception_handler('exceptionHandler'); - - - - - - - - - 5.2.0 - - - 2.0.0a1 - - - - - diff --git a/vendor/.xmlregistry/packages/pear2.php.net/PEAR2_MultiErrors/0.2.0-info.xml b/vendor/.xmlregistry/packages/pear2.php.net/PEAR2_MultiErrors/0.2.0-info.xml deleted file mode 100644 index 71ac7cb..0000000 --- a/vendor/.xmlregistry/packages/pear2.php.net/PEAR2_MultiErrors/0.2.0-info.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - PEAR2_MultiErrors - pear2.php.net - PEAR2_MultiErrors provides a simple and effective mechanism for aggregating many errors and organizing them by severity. - - -Errors are represented by PHP's built in exception object, and -severity levels are represented by PHP's pre-defined error levels -E_ERROR, E_WARNING, or E_NOTICE. Adding errors to the PEAR2_MultiErrors -object is simple, and done like adding to an array. Retrieving errors can -be done with iteration, and count() can be used to determine whether errors -were added. - -<?php -include '/path/to/PEAR2/Autoload.php'; -$a = new PEAR2\MultiErrors; -$a->E_ERROR[] = new Exception('message one'); -$a->E_WARNING[] = new PEAR2\Blah\Exception('message two'); -// iterate over all errors -foreach ($a as $error) {...} -// iterate over E_ERROR severity -foreach ($a->E_ERROR as $error) {...} -count($a); // 2 -count($a->E_ERROR); // 1 -count($a->E_WARNING); // 1 -count(E_NOTICE); // 0 -?> - -Used in conjuction with PEAR2\Exception, it can also be used as a "cause" -of an Exception: - -<?php -include '/path/to/PEAR2/Autoload.php'; -$a = new PEAR2\MultiErrors; -$a->E_ERROR[] = new Exception('message one'); -$a->E_ERROR[] = new PEAR2\Blah\Exception('message two'); -throw new PEAR2\My\Exception('task failed', $a); -?> - - Gregory Beaver - cellog - cellog@php.net - yes - - 2011-09-09 - - - 0.2.0 - 0.1.0 - - - alpha - alpha - - New BSD License - Convert namespace to PEAR2 - - - - - - - - - - 5.2.0 - - - 2.0.0a1 - - - - - diff --git a/vendor/.xmlregistry/packages/pear2.php.net/PEAR2_Templates_Savant/0.3.3-info.xml b/vendor/.xmlregistry/packages/pear2.php.net/PEAR2_Templates_Savant/0.3.3-info.xml deleted file mode 100644 index a9eac0d..0000000 --- a/vendor/.xmlregistry/packages/pear2.php.net/PEAR2_Templates_Savant/0.3.3-info.xml +++ /dev/null @@ -1,98 +0,0 @@ - - - PEAR2_Templates_Savant - pear2.php.net - Savant is a powerful but lightweight object-oriented template system for PHP. - - -Unlike other template systems, Savant by default does not compile your -templates into PHP; instead, it uses PHP itself as its template language so you -don't need to learn a new markup system. - - Brett Bieber - saltybeagle - saltybeagle@php.net - yes - - - Gregory Beaver - cellog - cellog@php.net - yes - - 2011-07-26 - - - 0.3.3 - 0.1.0 - - - alpha - alpha - - New BSD License - Bugfix Release: - - * Proxy array and ArrayObject objects through a new proxy class that supports all ArrayObject interfaces. [saltybeagle, gauthierm] - - -Package PEAR2_Templates_Savant API release notes for version 0.1.0. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5.3.0 - - - 2.0.0a1 - - - - - diff --git a/vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/baseball/examples/baseball/BaseballPlayer.tpl.php b/vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/baseball/examples/baseball/BaseballPlayer.tpl.php deleted file mode 100644 index a151e8e..0000000 --- a/vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/baseball/examples/baseball/BaseballPlayer.tpl.php +++ /dev/null @@ -1,5 +0,0 @@ -

Player :: name; ?>

-

Years on team:

-
    - render($context->years_on_team, 'ListItem.tpl.php'); ?> -
\ No newline at end of file diff --git a/vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/baseball/examples/baseball/BaseballTeam.tpl.php b/vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/baseball/examples/baseball/BaseballTeam.tpl.php deleted file mode 100644 index ea9299f..0000000 --- a/vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/baseball/examples/baseball/BaseballTeam.tpl.php +++ /dev/null @@ -1,9 +0,0 @@ - - - <?php echo $context->name; ?> - - -

name; ?>

- render($context->output); ?> - - \ No newline at end of file diff --git a/vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/baseball/examples/baseball/ListItem.tpl.php b/vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/baseball/examples/baseball/ListItem.tpl.php deleted file mode 100644 index 02630f7..0000000 --- a/vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/baseball/examples/baseball/ListItem.tpl.php +++ /dev/null @@ -1 +0,0 @@ -
  • render($context); ?>
  • \ No newline at end of file diff --git a/vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/baseball/examples/baseball/PartialSeason.tpl.php b/vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/baseball/examples/baseball/PartialSeason.tpl.php deleted file mode 100644 index 1eb04a0..0000000 --- a/vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/baseball/examples/baseball/PartialSeason.tpl.php +++ /dev/null @@ -1 +0,0 @@ -start; ?>—end; ?> \ No newline at end of file diff --git a/vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/baseball/examples/baseball/index.php b/vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/baseball/examples/baseball/index.php deleted file mode 100644 index 8838873..0000000 --- a/vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/baseball/examples/baseball/index.php +++ /dev/null @@ -1,54 +0,0 @@ - 'BaseballPlayer' - ); - - public $name; - - public $output; - - function __construct($options = array()) - { - if (isset($options['view'], $this->view_map[$options['view']])) { - $this->view = $options['view']; - } - $this->output = new $this->view_map[$this->view](); - } -} - -class BaseballPlayer -{ - public $name = 'Joseph Baseball '; - public $years_on_team = array(2005, 2008); - function __construct() - { - $this->years_on_team[] = new PartialSeason(date('Y')); - } -} - -class PartialSeason -{ - public $start; - public $end; - - function __construct($start, $end = null) - { - $this->start = $start; - if ($end) { - $this->end = $end; - } - } -} - -$team = new BaseballTeam(); -$team->name = 'Phillies'; - -$savant = new PEAR2\Templates\Savant\Main(); -$savant->setEscape('htmlspecialchars'); -echo $savant->render($team); \ No newline at end of file diff --git a/vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/examples/basic.php b/vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/examples/basic.php deleted file mode 100644 index e4f9e41..0000000 --- a/vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/examples/basic.php +++ /dev/null @@ -1,38 +0,0 @@ -var1 = '

    This is var1 inside a standard class

    '; - -$savant = new \PEAR2\Templates\Savant\Main(); -$savant->addTemplatePath(__DIR__ . '/templates'); - -// Display a simple string -echo $savant->render('

    Welcome to the Savant Demo

    '); - -// Display a string, in a custom template -echo $savant->render('mystring', 'StringView.tpl.php'); - -// Display an array -echo $savant->render(array('
      ', '
    • This is an array
    • ', '
    ')); - -// Display an object using a default class name to template mapping function -echo $savant->render($class); - -// Display the object using a specific template -echo $savant->render($class, 'MyTemplate.tpl.php'); - -echo $savant->render('

    Output Filtering

    '); -$savant->addFilters('htmlspecialchars'); - -// Now show an entire template with htmlspecialchars -echo $savant->render($class); - -// Ok, now remove the output filters -$savant->setFilters(); - -highlight_file(__FILE__); - diff --git a/vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/templates/examples/templates/MyTemplate.tpl.php b/vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/templates/examples/templates/MyTemplate.tpl.php deleted file mode 100644 index 23e7ad5..0000000 --- a/vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/templates/examples/templates/MyTemplate.tpl.php +++ /dev/null @@ -1,2 +0,0 @@ -

    This is MyTemplate.tpl.php

    -

    This represents using a custom output template for an object.

    diff --git a/vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/templates/examples/templates/StringView.tpl.php b/vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/templates/examples/templates/StringView.tpl.php deleted file mode 100644 index 36d1493..0000000 --- a/vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/templates/examples/templates/StringView.tpl.php +++ /dev/null @@ -1 +0,0 @@ -

    We're in the string view template, the data is:

    \ No newline at end of file diff --git a/vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/templates/examples/templates/stdClass.tpl.php b/vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/templates/examples/templates/stdClass.tpl.php deleted file mode 100644 index 1f649fe..0000000 --- a/vendor/docs/pear2.php.net/PEAR2_Templates_Savant/examples/templates/examples/templates/stdClass.tpl.php +++ /dev/null @@ -1,6 +0,0 @@ -

    This is stdClass.tpl.php

    -

    This represents the default mapping of class name to template.

    -

    The class of this context is:

    -

    The $context object contains the stdClass object with access to all the member -variables and functions, such as $context->var1

    -var1; ?> \ No newline at end of file diff --git a/vendor/downloads/PEAR2_Autoload-0.2.3.tgz b/vendor/downloads/PEAR2_Autoload-0.2.3.tgz deleted file mode 100644 index 8ee6464c9a113c294af7bb774cc0b5295b5d2189..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5366 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 UtjoHr%a<$v2lR_p!~kvp0AUkhOaK4? diff --git a/vendor/downloads/PEAR2_Templates_Savant-0.3.3.tgz b/vendor/downloads/PEAR2_Templates_Savant-0.3.3.tgz deleted file mode 100644 index a9c433089fddc3956782e8a532f296b3fdc59bc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19059 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 diff --git a/vendor/php/PEAR2/Autoload.php b/vendor/php/PEAR2/Autoload.php deleted file mode 100644 index 3d6161e..0000000 --- a/vendor/php/PEAR2/Autoload.php +++ /dev/null @@ -1,243 +0,0 @@ -getTrace(); - if (isset($trace[2]) && isset($trace[2]['function']) && - in_array($trace[2]['function'], array('class_exists', 'interface_exists'))) { - return false; - } - if (isset($trace[1]) && isset($trace[1]['function']) && - in_array($trace[1]['function'], array('class_exists', 'interface_exists'))) { - return false; - } - throw $e; - } - - /** - * Check if the requested class was loaded from the specified path - * - * @return bool - */ - protected static function loadSuccessful($class) - { - if (!class_exists($class, false) && !interface_exists($class, false)) { - return false; - } - return true; - } - - /** - * If possible, update the classmap file with newly-discovered - * mapping. - * - * @param string $class Class name discovered - * - * @param string $origin File where class was found - * - */ - protected static function updateMap($class, $origin) - { - if (is_writable(self::$mapfile) || is_writable(dirname(self::$mapfile))) { - self::$map[$class] = $origin; - file_put_contents(self::$mapfile, - '<'."?php\n" - . "// PEAR2\Autoload auto-generated classmap\n" - . "return " . var_export(self::$map, true) . ';', - LOCK_EX - ); - } - } - - /** - * return the array of paths PEAR2 autoload has registered - * - * @return array - */ - static function getPaths() - { - return self::$paths; - } - } -} -Autoload::initialize(dirname(__DIR__)); \ No newline at end of file diff --git a/vendor/php/PEAR2/Exception.php b/vendor/php/PEAR2/Exception.php deleted file mode 100644 index bbb5261..0000000 --- a/vendor/php/PEAR2/Exception.php +++ /dev/null @@ -1,196 +0,0 @@ - - * @author Hans Lellelid - * @author Bertrand Mansion - * @author Greg Beaver - * @copyright 1997-2007 The PHP Group - * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @link http://pear2.php.net/PEAR2_Exception - * @since File available since Release 0.1.0 - */ - - -/** - * Base PEAR2_Exception Class - * - * 1) Features: - * - * - Nestable exceptions (throw new PEAR2_Exception($msg, $prev_exception)) - * - Definable triggers, shot when exceptions occur - * - Added more context info available (like class, method or cause) - * - cause can be a PEAR2_Exception or an array of mixed - * PEAR2_Exceptions or a \PEAR2\MultiErrors - * - callbacks for specific exception classes and their children - * - * 2) Usage example - * - * - * namespace PEAR2; - * class PEAR2_MyPackage_Exception extends Exception {} - * - * class Test - * { - * function foo() - * { - * throw new PEAR2_MyPackage_Exception('Error Message', 4); - * } - * } - * - * function myLogger($exception) - * { - * echo 'Logger: ' . $exception->getMessage() . "\n"; - * } - * - * // each time a exception is thrown the 'myLogger' will be called - * // (its use is completely optional) - * Exception::addObserver('\PEAR2\myLogger'); - * $test = new Test; - * try { - * $test->foo(); - * } catch (\Exception $e) { - * print $e; - * } - * - * - * @category pear - * @package PEAR - * @author Tomas V.V.Cox - * @author Hans Lellelid - * @author Bertrand Mansion - * @author Greg Beaver - * @copyright 1997-2007 The PHP Group - * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: @package_version@ - * @link http://pear2.php.net/PEAR2_Exception - * @since Class available since Release 0.1.0 - * - */ -namespace PEAR2; -abstract class Exception extends \Exception -{ - private static $_observers = array(); - private $_trace; - - /** - * Supported signatures: - * - PEAR2_Exception(string $message); - * - PEAR2_Exception(string $message, int $code); - * - PEAR2_Exception(string $message, Exception $cause); - * - PEAR2_Exception(string $message, Exception $cause, int $code); - * - PEAR2_Exception(string $message, PEAR2\MultiErrors $cause); - * - PEAR2_Exception(string $message, PEAR2\MultiErrors $cause, int $code); - * @param string exception message - * @param int|Exception|PEAR2\MultiErrors|null exception cause - * @param int|null exception code or null - */ - public function __construct($message, $p2 = null, $p3 = null) - { - $code = $cause = null; - if (is_int($p2)) { - $code = $p2; - } elseif (is_object($p2)) { - if (!($p2 instanceof \Exception)) { - throw new \Exception('exception cause must be Exception, or PEAR2\MultiErrors'); - } - - $code = $p3; - $cause = $p2; - } - - if (!is_string($message)) { - throw new \Exception('exception message must be a string, was ' . gettype($message)); - } - - parent::__construct($message, $code, $cause); - - foreach (self::$_observers as $func) { - if (is_callable($func)) { - call_user_func($func, $this); - } - } - } - - /** - * @param mixed $callback - A valid php callback, see php func is_callable() - * - A PEAR2_Exception::OBSERVER_* constant - * - An array(const PEAR2_Exception::OBSERVER_*, - * mixed $options) - * @param string $label The name of the observer. Use this if you want - * to remove it later with removeObserver() - */ - public static function addObserver($callback, $label = 'default') - { - self::$_observers[$label] = $callback; - } - - public static function removeObserver($label = 'default') - { - unset(self::$_observers[$label]); - } - - /** - * Function must be public to call on caused exceptions - * @param array - */ - public function getCauseMessage(array &$causes) - { - $trace = $this->getTraceSafe(); - $cause = array( - 'class' => get_class($this), - 'message' => $this->message, - 'file' => 'unknown', - 'line' => 'unknown' - ); - - if (isset($trace[0]) && isset($trace[0]['file'])) { - $cause['file'] = $trace[0]['file']; - $cause['line'] = $trace[0]['line']; - } - - $causes[] = $cause; - if ($this->getPrevious() instanceof self) { - $this->getPrevious()->getCauseMessage($causes); - } elseif ($this->getPrevious() instanceof \PEAR2\MultiErrors) { - foreach ($this->getPrevious() as $cause) { - if ($cause instanceof self) { - $cause->getCauseMessage($causes); - } elseif ($cause instanceof \Exception) { - $causes[] = array( - 'class' => get_class($cause), - 'message' => $cause->getMessage(), - 'file' => $cause->getFile(), - 'line' => $cause->getLine() - ); - } - } - } elseif ($this->getPrevious() instanceof \Exception) { - $causes[] = array( - 'class' => get_class($this->getPrevious()), - 'message' => $this->getPrevious()->getMessage(), - 'file' => $this->getPrevious()->getFile(), - 'line' => $this->getPrevious()->getLine() - ); - } - } - - public function getTraceSafe() - { - if (!isset($this->_trace)) { - $this->_trace = $this->getTrace(); - if (empty($this->_trace)) { - $backtrace = debug_backtrace(); - $this->_trace = array($backtrace[count($backtrace)-1]); - } - } - - return $this->_trace; - } -} \ No newline at end of file diff --git a/vendor/php/PEAR2/MultiErrors.php b/vendor/php/PEAR2/MultiErrors.php deleted file mode 100644 index 9896d0f..0000000 --- a/vendor/php/PEAR2/MultiErrors.php +++ /dev/null @@ -1,227 +0,0 @@ - - * $multi = new \PEAR2\MultiErrors(); - * $multi->E_WARNING[] = new Exception('test'); - * $multi->E_ERROR[] = new Exception('test 2'); - * foreach ($multi as $error) { - * echo $error; - * } - * foreach ($multi->E_WARNING as $error) { - * echo $error; - * } - * foreach ($multi->E_ERROR as $error) { - * echo $error; - * } - * if (count($multi->E_ERROR)) { - * throw new \PEAR2\Exception('Failure to do something', $multi); - * } - * - * @author Greg Beaver - * @copyright 2010 The PEAR Group - * @package \PEAR2\MultiErrors - * @license http://www.opensource.org/licenses/bsd-license.php New BSD License - */ -namespace PEAR2; -class MultiErrors extends \Exception implements \Iterator, \Countable, \ArrayAccess -{ - private $_allowedLevels = array('E_NOTICE' => 0, 'E_WARNING' => 1, 'E_ERROR' => 2); - - /** - * Errors are stored in the order that they are declared - * @var array - */ - private $_errors = array(); - - /** - * To allow $this->E_WARNING[] = new BlahException; - * - * @var int - */ - private $_requestedLevel = false; - - /** - * Internal PEAR2_MultiError objects for error levels - * @var array - */ - private $_subMulti = array(); - - /** - * Parent \PEAR2\MultiErrors for an error level tracker - * - * @var \PEAR2\MultiErrors - */ - private $_parent; - - public function __construct($mylevel = false, - array $allowed = array('E_NOTICE', 'E_WARNING', 'E_ERROR'), - MultiErrors $parent = null) - { - foreach ($allowed as $level) { - if (!is_string($level) || strpos($level, 'E_') !== 0) { - throw new MultiErrors\Exception('Invalid level ' . (string) $level); - } - } - - $this->_allowedLevels = array_flip($allowed); - $this->_requestedLevel = $mylevel; - if ($mylevel) { - $this->_parent = $parent; - } - - parent::__construct('multiple errors found'); - } - - public function current() - { - return current($this->_errors); - } - - public function key() - { - return key($this->_errors); - } - - public function next() - { - return next($this->_errors); - } - - public function rewind() - { - return reset($this->_errors); - } - - public function valid() - { - return false !== current($this->_errors); - } - - /** - * Merge in errors from an existing \PEAR2\MultiErrors - * - * This also merges in any new error levels not supported in this instance. - * @param \PEAR2\MultiErrors $error - */ - public function merge(MultiErrors $error) - { - foreach ($error->levels as $level) { - if (!isset($this->_allowedLevels[$level])) { - $this->_allowedLevels[$level] = 1; - } - - foreach ($error->$level as $e) { - $this->{$level}[] = $e; - } - } - } - - public function count() - { - return count($this->_errors); - } - - public function offsetExists($offset) - { - return isset($this->_errors[$offset]); - } - - public function offsetGet($offset) - { - if (isset($this->_errors[$offset])) { - return $this->_errors[$offset]; - } - - return null; - } - - public function offsetSet ($offset, $value) - { - if ($offset === null && !$this->_requestedLevel && $value instanceof self) { - $this->merge($value); - return; - } - - if (!($value instanceof \Exception)) { - throw new MultiErrors\Exception('offsetSet: $value is not an Exception object'); - } - - if ($this->_requestedLevel) { - if ($offset === null) { - // called with $a->E_BLAH[] = new Exception('hi'); - $offset = count($this->_errors); - } - - if (!is_int($offset)) { - throw new MultiErrors\Exception('offsetSet: $offset is not an integer'); - } - - $this->_errors[$offset] = $value; - $this->_parent[$this->_requestedLevel . '-' . $offset] = $value; - } else { - if (!is_string($offset)) { - throw new MultiErrors\Exception('Cannot add an error directly ' . - 'to a PEAR2\MultiErrors with $a[] = new Exception, use an ' . - ' E_* constant like $a->E_WARNING[] = new Exception'); - } - - $offset = explode('-', $offset); - $level = $offset[0]; - $offset = $offset[1]; - // this is called when the "$this->_parent[] = $value" line is executed. - if (!isset($this->_subMulti[$level]) || - $this->_subMulti[$level][$offset] !== $value - ) { - // must be in a child or it'll throw off the whole thingy - throw new MultiErrors\Exception('Cannot add an error directly ' . - 'to a PEAR2\MultiErrors with $a[] = new Exception, use an ' . - ' E_* constant like $a->E_WARNING[] = new Exception'); - } - - $this->_errors[] = $value; - } - } - - public function offsetUnset ($offset) - { - if (isset($this->_errors[$offset])) { - unset($this->_errors[$offset]); - } - } - - public function __get($level) - { - if ($level === 'levels') { - return array_keys($this->_allowedLevels); - } - - if (!count($this->_allowedLevels)) { - throw new MultiErrors\Exception('Cannot nest requests ' . - '(like $multi->E_WARNING->E_ERROR[] = new Exception(\'\');)'); - } - - if (isset($this->_allowedLevels[$level])) { - if (!isset($this->_subMulti[$level])) { - $this->_subMulti[$level] = new self($level, array(), $this); - } - - return $this->_subMulti[$level]; - } - - throw new MultiErrors\Exception('Requested error level must be one of ' . - implode(', ', array_keys($this->_allowedLevels))); - } - - public function toArray() - { - return $this->_errors; - } -} \ No newline at end of file diff --git a/vendor/php/PEAR2/MultiErrors/Exception.php b/vendor/php/PEAR2/MultiErrors/Exception.php deleted file mode 100644 index 4cf07e2..0000000 --- a/vendor/php/PEAR2/MultiErrors/Exception.php +++ /dev/null @@ -1,3 +0,0 @@ -compiledtemplatedir = realpath($compiledtemplatedir); - if (!$this->compiledtemplatedir && !is_writable($this->compiledtemplatedir)) { - throw new UnexpectedValueException('Unable to compile templates into ' . - $compiledtemplatedir . ', directory does not exist ' . - 'or is unwritable'); - } - $this->compiledtemplatedir .= DIRECTORY_SEPARATOR; - } - - /** - * Compile a template. - * - * @param string $name Template to compile - * @param Main $savant Savant main object - * - * @return string Name of the compiled template file. - */ - function compile($name, $savant) - { - $cname = $this->compiledtemplatedir . md5($name); - if (file_exists($cname)) { - if (filemtime($name) == filemtime($cname)) { - return $cname; - } - } - $a = file_get_contents($name); - $a = "'), array('\' . ', ' . \''), $a) . "';"; - file_put_contents($cname, $a); - touch($cname, filemtime($name)); - return $cname; - } -} \ No newline at end of file diff --git a/vendor/php/PEAR2/Templates/Savant/ClassToTemplateMapper.php b/vendor/php/PEAR2/Templates/Savant/ClassToTemplateMapper.php deleted file mode 100644 index 1099c66..0000000 --- a/vendor/php/PEAR2/Templates/Savant/ClassToTemplateMapper.php +++ /dev/null @@ -1,102 +0,0 @@ - - * @copyright 2009 Brett Bieber - * @license http://www.opensource.org/licenses/bsd-license.php New BSD License - * @version SVN: $Id$ - * @link http://svn.php.net/repository/pear2/PEAR2_Templates_Savant - */ - -/** - * ClassToTemplateMapper class for PEAR2_Templates_Savant - * - * This class allows class names to be mapped to template names though a simple - * scheme. - * - * @category Templates - * @package PEAR2_Templates_Savant - * @author Brett Bieber - * @copyright 2009 Brett Bieber - * @license http://www.opensource.org/licenses/bsd-license.php New BSD License - * @link http://svn.php.net/repository/pear2/PEAR2_Templates_Savant - */ -namespace PEAR2\Templates\Savant; -class ClassToTemplateMapper implements MapperInterface -{ - /** - * Default template mapping can be temporarily overridden by - * assigning a direct template name. - * - * ClassToTemplateMapper::$output_template['My_Class'] = 'My/Class_rss.tpl.php'; - * - * @var array - */ - static $output_template = array(); - - /** - * What character to use as a directory separator when mapping class names - * to templates. - * - * @var string - */ - static $directory_separator = '_'; - - /** - * Strip something out of class names before mapping them to templates. - * - * This can be useful if your class names are very long, and you don't - * want empty subdirectories within your templates directory. - * - * @var string - */ - static $classname_replacement = ''; - - /** - * The file extension to use - * - * @var string - */ - static $template_extension = '.tpl.php'; - - /** - * Maps class names to template filenames. - * - * Underscores and namespace separators in class names are replaced with - * directory separators. - * - * Examples: - * Class => Class.tpl.php - * Other_Class => Other/Class.tpl.php - * namespace\Class => namespace/Class.tpl.php - * - * @param string $class Class name to map to a template - * - * @return string Template file name - */ - function map($class) - { - if (isset(static::$output_template[$class])) { - $class = static::$output_template[$class]; - } - - $class = str_replace(array(static::$classname_replacement, - static::$directory_separator, - '\\'), - array('', - DIRECTORY_SEPARATOR, - DIRECTORY_SEPARATOR), - $class); - - $templatefile = $class . static::$template_extension; - - return $templatefile; - } - -} -?> \ No newline at end of file diff --git a/vendor/php/PEAR2/Templates/Savant/CompilerException.php b/vendor/php/PEAR2/Templates/Savant/CompilerException.php deleted file mode 100644 index f273742..0000000 --- a/vendor/php/PEAR2/Templates/Savant/CompilerException.php +++ /dev/null @@ -1,5 +0,0 @@ - \ No newline at end of file diff --git a/vendor/php/PEAR2/Templates/Savant/CompilerInterface.php b/vendor/php/PEAR2/Templates/Savant/CompilerInterface.php deleted file mode 100644 index 8c7252f..0000000 --- a/vendor/php/PEAR2/Templates/Savant/CompilerInterface.php +++ /dev/null @@ -1,8 +0,0 @@ - \ No newline at end of file diff --git a/vendor/php/PEAR2/Templates/Savant/FastCompilerInterface.php b/vendor/php/PEAR2/Templates/Savant/FastCompilerInterface.php deleted file mode 100644 index 7b2d1f6..0000000 --- a/vendor/php/PEAR2/Templates/Savant/FastCompilerInterface.php +++ /dev/null @@ -1,7 +0,0 @@ - -* -* @license http://www.gnu.org/copyleft/lesser.html LGPL -* -* @version $Id: Filter.php,v 1.5 2005/04/29 16:23:50 pmjones Exp $ -* -*/ - -/** -* -* Abstract Savant3_Filter class. -* -* You have to extend this class for it to be useful; e.g., "class -* Savant3_Filter_example extends Savant3_Filter". -* -* @package Savant3 -* -* @author Paul M. Jones -* -*/ -namespace PEAR2\Templates\Savant; -abstract class FilterAbstract -{ - - - /** - * - * Optional reference to the calling Savant object. - * - * @access protected - * - * @var object - * - */ - - protected $savant = null; - - - /** - * - * Constructor. - * - * @access public - * - * @param array $conf An array of configuration keys and values for - * this filter. - * - * @return void - * - */ - - public function __construct($conf = null) - { - settype($conf, 'array'); - foreach ($conf as $key => $val) { - $this->$key = $val; - } - } - - - /** - * - * Stub method for extended behaviors. - * - * @access public - * - * @param string $text The text buffer to filter. - * - * @return string The text buffer after it has been filtered. - * - */ - - public static function filter($text) - { - return $text; - } -} -?> \ No newline at end of file diff --git a/vendor/php/PEAR2/Templates/Savant/Main.php b/vendor/php/PEAR2/Templates/Savant/Main.php deleted file mode 100644 index bf8eb4f..0000000 --- a/vendor/php/PEAR2/Templates/Savant/Main.php +++ /dev/null @@ -1,934 +0,0 @@ - - * @copyright 2009 Brett Bieber - * @license http://www.opensource.org/licenses/bsd-license.php New BSD License - * @version SVN: $Id$ - * @link http://svn.php.net/repository/pear2/PEAR2_Templates_Savant - */ - -/** - * Main class for PEAR2_Templates_Savant - * - * @category Templates - * @package PEAR2_Templates_Savant - * @author Brett Bieber - * @copyright 2009 Brett Bieber - * @license http://www.opensource.org/licenses/bsd-license.php New BSD License - * @link http://svn.php.net/repository/pear2/PEAR2_Templates_Savant - */ -namespace PEAR2\Templates\Savant; -class Main -{ - /** - * - * Array of configuration parameters. - * - * @access protected - * - * @var array - * - */ - - protected $__config = array( - 'compiler' => null, - 'filters' => array(), - 'escape' => null, - ); - - /** - * Parameters for escaping. - * - * @var array - */ - protected $_escape = array( - 'quotes' => ENT_COMPAT, - 'charset' => 'UTF-8', - ); - - /** - * The output template to render using - * - * @var string - */ - protected $template; - - /** - * stack of templates, so we can access the parent template - * - * @var array - */ - protected $templateStack = array(); - - /** - * To avoid stats on locating templates, populate this array with - * full path => 1 for any existing templates - * - * @var array - */ - protected $templateMap = array(); - - /** - * An array of paths to look for template files in. - * - * @var array - */ - protected $template_path = array('./'); - - /** - * A list of output controllers. One does no filtering, another does. This - * makes non-filtering controllers faster. - * - * @var array - */ - protected $output_controllers = array(); - - /** - * The current controller to use - * - * @var string - */ - protected $selected_controller; - - /** - * How class names are translated to templates - * - * @var MapperInterface - */ - protected $class_to_template; - - /** - * Array of globals available within every template - * - * @var array - */ - protected $globals = array(); - // ----------------------------------------------------------------- - // - // Constructor and magic methods - // - // ----------------------------------------------------------------- - - - /** - * - * Constructor. - * - * @access public - * - * @param array $config An associative array of configuration keys for - * the Main object. Any, or none, of the keys may be set. - * - * @return PEAR2\Templates\Savant\Main A PEAR2\Templates\Savant\Main instance. - * - */ - - public function __construct($config = null) - { - $savant = $this; - $this->output_controllers['basic'] = function($context, $parent, $file) use ($savant) { - foreach ($savant->getGlobals() as $__name => $__value) { - $$__name = $__value; - } - unset($__name, $__value); - ob_start(); - include $file; - return ob_get_clean(); - }; - $this->output_controllers['filter'] = function($context, $parent, $file) use ($savant) { - foreach ($savant->getGlobals() as $__name => $__value) { - $$__name = $__value; - } - unset($__name, $__value); - ob_start(); - include $file; - return $savant->applyFilters(ob_get_clean()); - }; - $this->output_controllers['basiccompiled'] = function($context, $parent, $file) use ($savant) { - foreach ($savant->getGlobals() as $__name => $__value) { - $$__name = $__value; - } - unset($__name, $__value); - ob_start(); - include $savant->template($file); - return ob_get_clean(); - }; - $this->output_controllers['filtercompiled'] = function($context, $parent, $file) use ($savant) { - foreach ($savant->getGlobals() as $__name => $__value) { - $$__name = $__value; - } - unset($__name, $__value); - ob_start(); - include $savant->template($file); - return $savant->applyFilters(ob_get_clean()); - }; - $this->output_controllers['basicfastcompiled'] = function($context, $parent, $file) use ($savant) { - foreach ($savant->getGlobals() as $__name => $__value) { - $$__name = $__value; - } - unset($__name, $__value); - return include $savant->template($file); - }; - $this->output_controllers['filterfastcompiled'] = function($context, $parent, $file) use ($savant) { - foreach ($savant->getGlobals() as $__name => $__value) { - $$__name = $__value; - } - unset($__name, $__value); - return $savant->applyFilters(include $savant->template($file)); - }; - $this->selected_controller = 'basic'; - - // set the default template search path - if (isset($config['template_path'])) { - // user-defined dirs - $this->setTemplatePath($config['template_path']); - } - - // set the output escaping callbacks - if (isset($config['escape'])) { - $this->setEscape($config['escape']); - } - - // set the default filter callbacks - if (isset($config['filters'])) { - $this->addFilters($config['filters']); - } - } - - /** - * Add a global variable which will be available inside every template - * - * @param string $var The global variable name - * @param mixed $value The value - * - * @return void - */ - function addGlobal($name, $value) - { - switch ($name) { - case 'context': - case 'parent': - case 'template': - case 'file': - case 'savant': - case 'this': - throw new BadMethodCallException('Invalid global variable name'); - } - - if ($this->__config['escape']) { - switch (gettype($value)) { - case 'object': - if (!$value instanceof ObjectProxy) { - $value = ObjectProxy::factory($value, $this); - } - break; - case 'string': - case 'int': - case 'double': - $value = $this->escape($value); - break; - case 'array': - $value = new ObjectProxy\ArrayIterator($value, $this); - break; - } - } - - $this->globals[$name] = $value; - } - - /** - * Get the array of assigned globals - * - * @return array - */ - function getGlobals() - { - return $this->globals; - } - - /** - * Return the current template set (if any) - * - * @return string - */ - function getTemplate() - { - return $this->template; - } - - - // ----------------------------------------------------------------- - // - // Public configuration management (getters and setters). - // - // ----------------------------------------------------------------- - - - /** - * - * Returns a copy of the Savant3 configuration parameters. - * - * @access public - * - * @param string $key The specific configuration key to return. If null, - * returns the entire configuration array. - * - * @return mixed A copy of the $this->__config array. - * - */ - - public function getConfig($key = null) - { - if (is_null($key)) { - // no key requested, return the entire config array - return $this->__config; - } elseif (empty($this->__config[$key])) { - // no such key - return null; - } else { - // return the requested key - return $this->__config[$key]; - } - } - - - /** - * - * Sets a custom compiler/pre-processor callback for template sources. - * - * By default, Savant3 does not use a compiler; use this to set your - * own custom compiler (pre-processor) for template sources. - * - * @access public - * - * @param mixed $compiler A compiler callback value suitable for the - * first parameter of call_user_func(). Set to null/false/empty to - * use PHP itself as the template markup (i.e., no compiling). - * - * @return void - * - */ - - public function setCompiler(CompilerInterface $compiler) - { - $this->__config['compiler'] = $compiler; - if ($compiler instanceof FastCompilerInterface) { - switch ($this->selected_controller) { - case 'basic' : - case 'basiccompiled'; - $this->selected_controller = 'basicfastcompiled'; - break; - case 'filter' : - case 'filtercompiled' : - $this->selected_controller = 'filterfastcompiled'; - break; - } - return; - } - if (!strpos($this->selected_controller, 'compiled')) { - $this->selected_controller .= 'compiled'; - } - } - - /** - * Set the class to template mapper. - * - * @see MapperInterface - * - * @param MapperInterface $mapper The mapper interface to use - * - * @return Main - */ - function setClassToTemplateMapper(MapperInterface $mapper) - { - $this->class_to_template = $mapper; - return $this; - } - - /** - * Get the class to template mapper. - * - * @return MapperInterface - */ - function getClassToTemplateMapper() - { - if (!isset($this->class_to_template)) { - $this->setClassToTemplateMapper(new ClassToTemplateMapper()); - } - return $this->class_to_template; - } - - - // ----------------------------------------------------------------- - // - // Output escaping and management. - // - // ----------------------------------------------------------------- - - - /** - * - * Clears then sets the callbacks to use when calling $this->escape(). - * - * Each parameter passed to this function is treated as a separate - * callback. For example: - * - * - * $savant->setEscape( - * 'stripslashes', - * 'htmlspecialchars', - * array('StaticClass', 'method'), - * array($object, $method) - * ); - * - * - * @access public - * - * @return Main - * - */ - - public function setEscape() - { - $this->__config['escape'] = @func_get_args(); - return $this; - } - - - /** - * - * Gets the array of output-escaping callbacks. - * - * @access public - * - * @return array The array of output-escaping callbacks. - * - */ - - public function getEscape() - { - return $this->__config['escape']; - } - - - /** - * Escapes a value for output in a view script. - * - * If escaping mechanism is one of htmlspecialchars or htmlentities, uses - * {@link $_encoding} setting. - * - * @param mixed $var The output to escape. - * - * @return mixed The escaped value. - */ - public function escape($var) - { - foreach ($this->__config['escape'] as $escape) { - if (in_array($escape, - array('htmlspecialchars', 'htmlentities'), true)) { - $var = call_user_func($escape, - $var, - $this->_escape['quotes'], - $this->_escape['charset']); - } else { - $var = call_user_func($escape, $var); - } - } - return $var; - } - - - // ----------------------------------------------------------------- - // - // File management - // - // ----------------------------------------------------------------- - - /** - * Get the template path. - * - * @return array - */ - function getTemplatePath() - { - return $this->template_path; - } - - /** - * - * Sets an entire array of search paths for templates or resources. - * - * @access public - * - * @param string|array $path The new set of search paths. If null or - * false, resets to the current directory only. - * - * @return Main - * - */ - - public function setTemplatePath($path = null) - { - // clear out the prior search dirs, add default - $this->template_path = array('./'); - - // actually add the user-specified directories - $this->addTemplatePath($path); - return $this; - } - - - /** - * - * Adds to the search path for templates and resources. - * - * @access public - * - * @param string|array $path The directory or stream to search. - * - * @return Main - * - */ - - public function addTemplatePath($path) - { - // convert from path string to array of directories - if (is_string($path) && !strpos($path, '://')) { - - // the path config is a string, and it's not a stream - // identifier (the "://" piece). add it as a path string. - $path = explode(PATH_SEPARATOR, $path); - - // typically in path strings, the first one is expected - // to be searched first. however, Savant3 uses a stack, - // so the first would be last. reverse the path string - // so that it behaves as expected with path strings. - $path = array_reverse($path); - - } else { - - // just force to array - settype($path, 'array'); - - } - - // loop through the path directories - foreach ($path as $dir) { - - // no surrounding spaces allowed! - $dir = trim($dir); - - // add trailing separators as needed - if (strpos($dir, '://')) { - if (substr($dir, -1) != '/') { - // stream - $dir .= '/'; - } - } elseif (substr($dir, -1) != DIRECTORY_SEPARATOR) { - if (false !== strpos($dir, '..')) { - // checking for weird paths here removes directory traversal threat - throw new UnexpectedValueException('upper directory reference .. cannot be used in template path'); - } - // directory - $dir .= DIRECTORY_SEPARATOR; - } - - // add to the top of the search dirs - array_unshift( - $this->template_path, - $dir - ); - } - } - - - /** - * - * Searches the directory paths for a given file. - * - * @param string $file The file name to look for. - * - * @return string|bool The full path and file name for the target file, - * or boolean false if the file is not found in any of the paths. - * - */ - - public function findTemplateFile($file) - { - if (false !== strpos($file, '..')) { - // checking for weird path here removes directory traversal threat - throw new UnexpectedValueException('upper directory reference .. cannot be used in template filename'); - } - - // start looping through the path set - foreach ($this->template_path as $path) { - // get the path to the file - $fullname = $path . $file; - - if (isset($this->templateMap[$fullname])) { - return $fullname; - } - - if (!@is_readable($fullname)) { - continue; - } - - return $fullname; - } - - // could not find the file in the set of paths - throw new TemplateException('Could not find the template ' . $file); - } - - - // ----------------------------------------------------------------- - // - // Template processing - // - // ----------------------------------------------------------------- - - /** - * Render context data through a template. - * - * This method allows you to render data through a template. Typically one - * will pass the model they wish to display through an optional template. - * If no template is specified, the ClassToTemplateMapper::map() method - * will be called which should return the name of a template to render. - * - * Arrays will be looped over and rendered through the template specified. - * - * Strings, ints, and doubles will returned if no template parameter is - * present. - * - * Within templates, two variables will be available, $context and $savant. - * The $context variable will contain the data passed to the render method, - * the $savant object will be an instance of the Main class with which you - * can render nested data through partial templates. - * - * @param mixed $mixed Data to display through the template. - * @param string $template A template to display data in. - * - * @return string The template output - */ - function render($mixed = null, $template = null) - { - $method = 'render'.gettype($mixed); - return $this->$method($mixed, $template); - } - - /** - * Called when a resource is rendered - * - * @param resource $resouce The resources - * @param string $template Template - * - * @return void - * - * @throws UnexpectedValueException - */ - protected function renderResource($resouce, $template = null) - { - throw new UnexpectedValueException('No way to render a resource!'); - } - - protected function renderBoolean($bool, $template = null) - { - return $this->renderString((string)$bool, $template); - } - - protected function renderDouble($double, $template = null) - { - return $this->renderString($double, $template); - } - - protected function renderInteger($int, $template = null) - { - return $this->renderString($int, $template); - } - - /** - * Render string of data - * - * @param string $string String of data - * @param string $template A template to display the string in - * - * @return string - */ - protected function renderString($string, $template = null) - { - if ($this->__config['escape']) { - $string = $this->escape($string); - } - - if ($template) { - return $this->fetch($string, $template); - } - - if (!$this->__config['filters']) { - return $string; - } - return $this->applyFilters($string); - } - - /** - * Used to render context array - * - * @param array $array Data to render - * @param string $template Template to render - * - * @return string Rendered output - */ - protected function renderArray(array $array, $template = null) - { - $savant = $this; - $render = function($output, $mixed) use ($savant, $template) { - return $output . $savant->render($mixed, $template); - }; - return array_reduce($array, $render, ''); - } - - /** - * Render an associative array of data through a template. - * - * Three parameters will be passed to the closure, the array key, value, - * and selective third parameter. - * - * @param array $array Associative array of data - * @param mixed $selected Optional parameter to pass - * @param Closure $template A closure that will be called - * - * @return string - */ - public function renderAssocArray(array $array, $selected = false, Closure $template) - { - $ret = ''; - foreach ($array as $key => $element) { - $ret .= $template($key, $element, $selected); - } - return $ret; - } - - protected function renderArrayAccess(\ArrayAccess $array, $template = null) - { - $ret = ''; - foreach ($array as $key => $element) { - $ret .= $this->render($element, $template); - } - return $ret; - } - - /** - * Render an if else conditional template output. - * - * @param mixed $condition The conditional to evaluate - * @param mixed $render Context data to render if condition is true - * @param mixed $else Context data to render if condition is false - * @param string $rendertemplate If true, render using this template - * @param string $elsetemplate If false, render using this template - * - * @return string - */ - public function renderElse($condition, $render, $else, $rendertemplate = null, $elsetemplate = null) - { - if ($condition) { - $this->render($render, $rendertemplate); - } else { - $this->render($else, $elsetemplate); - } - } - - /** - * Used to render an object through a template. - * - * @param object $object Model containing data - * @param string $template Template to render data through - * - * @return string Rendered output - */ - protected function renderObject($object, $template = null) - { - if ($this->__config['escape']) { - - if (!$object instanceof ObjectProxy) { - $object = ObjectProxy::factory($object, $this); - } - - if ($object instanceof ObjectProxy\ArrayIterator) { - return $this->renderArrayAccess($object); - } - - } - return $this->fetch($object, $template); - } - - /** - * Used to render null through an optional template - * - * @param null $null The null var - * @param string $template Template to render null through - * - * @return string Rendered output - */ - protected function renderNULL($null, $template = null) - { - if ($template) { - return $this->fetch(null, $template); - } - } - - protected function fetch($mixed, $template = null) - { - if ($template) { - $this->template = $template; - } else { - if ($mixed instanceof ObjectProxy) { - $class = $mixed->__getClass(); - } else { - $class = get_class($mixed); - } - $this->template = $this->getClassToTemplateMapper()->map($class); - } - $current = new \stdClass; - $current->file = $this->findTemplateFile($this->template); - $current->context = $mixed; - $current->parent = null; - $outputcontroller = $this->output_controllers[$this->selected_controller]; - if (count($this->templateStack)) { - $current->parent = $this->templateStack[count($this->templateStack)-1]; - } - $this->templateStack[] = $current; - $ret = $outputcontroller($current->context, $current->parent, $current->file); - array_pop($this->templateStack); - return $ret; - } - - /** - * - * Compiles a template and returns path to compiled script. - * - * By default, Savant does not compile templates, it uses PHP as the - * markup language, so the "compiled" template is the same as the source - * template. - * - * If a compiler is specific, this method is used to look up the compiled - * template script name - * - * @param string $tpl The template source name to look for. - * - * @return string The full path to the compiled template script. - * - * @throws PEAR2\Templates\Savant\UnexpectedValueException - * @throws PEAR2\Templates\Savant\Exception - * - */ - - public function template($tpl = null) - { - // find the template source. - $file = $this->findTemplateFile($tpl); - - // are we compiling source into a script? - if ($this->__config['compiler']) { - // compile the template source and get the path to the - // compiled script (will be returned instead of the - // source path) - $result = $this->__config['compiler']->compile($file, $this); - } else { - // no compiling requested, use the source path - $result = $file; - } - - // is there a script from the compiler? - if (!$result) { - // return an error, along with any error info - // generated by the compiler. - throw new Exception('Compiler error for template '.$tpl.'. '.$result ); - - } else { - // no errors, the result is a path to a script - return $result; - } - } - - - // ----------------------------------------------------------------- - // - // Filter management and processing - // - // ----------------------------------------------------------------- - - - /** - * - * Resets the filter stack to the provided list of callbacks. - * - * @access protected - * - * @param array An array of filter callbacks. - * - * @return void - * - */ - - public function setFilters() - { - $this->__config['filters'] = (array) @func_get_args(); - if (!$this->__config['filters']) { - $this->selected_controller = 'basic'; - } else { - $this->selected_controller = 'filter'; - } - } - - - /** - * - * Adds filter callbacks to the stack of filters. - * - * @access protected - * - * @param array An array of filter callbacks. - * - * @return void - * - */ - - public function addFilters() - { - // add the new filters to the static config variable - // via the reference - foreach ((array) @func_get_args() as $callback) { - $this->__config['filters'][] = $callback; - $this->selected_controller = 'filter'; - } - } - - - /** - * - * Runs all filter callbacks on buffered output. - * - * @access protected - * - * @param string The template output. - * - * @return void - * - */ - - public function applyFilters($buffer) - { - foreach ($this->__config['filters'] as $callback) { - $buffer = call_user_func($callback, $buffer); - } - - return $buffer; - } - -} diff --git a/vendor/php/PEAR2/Templates/Savant/MapperInterface.php b/vendor/php/PEAR2/Templates/Savant/MapperInterface.php deleted file mode 100644 index 0d6ba7b..0000000 --- a/vendor/php/PEAR2/Templates/Savant/MapperInterface.php +++ /dev/null @@ -1,8 +0,0 @@ - - * @copyright 2009 Brett Bieber - * @license http://www.opensource.org/licenses/bsd-license.php New BSD License - * @version SVN: $Id$ - * @link http://svn.php.net/repository/pear2/PEAR2_Templates_Savant - */ - -/** - * ObjectProxy class for PEAR2_Templates_Savant - * - * The ObjectProxy acts as an intermediary between an object and a template. - * The $context variable will be an ObjectProxy which proxies member variable - * access so escaping can be applied. - * - * @category Templates - * @package PEAR2_Templates_Savant - * @author Brett Bieber - * @copyright 2009 Brett Bieber - * @license http://www.opensource.org/licenses/bsd-license.php New BSD License - * @link http://svn.php.net/repository/pear2/PEAR2_Templates_Savant - */ -namespace PEAR2\Templates\Savant; -class ObjectProxy implements \Countable -{ - /** - * The internal object - * - * @var mixed - */ - protected $object; - - /** - * The savant templating system - * - * @var PEAR2\Templates\Savant\Main - */ - protected $savant; - - /** - * Construct a new object proxy - * - * @param mixed $object The object - * @param Main $savant The savant templating system - */ - function __construct($object, $savant) - { - $this->object = $object; - $this->savant = $savant; - } - - /** - * Magic method for retrieving data. - * - * String data will be escaped with $savant->escape() before it is returned - * - * @return mixed - */ - function __get($var) - { - return $this->filterVar($this->object->$var); - } - - /** - * Returns a variable, after it has been filtered. - * - * @param mixed $var - * - * @return string|ObjectProxy - */ - protected function filterVar($var) - { - switch(gettype($var)) { - case 'object': - return self::factory($var, $this->savant); - case 'string': - case 'int': - case 'double': - return $this->savant->escape($var); - case 'array': - return new ObjectProxy\ArrayObject( - new \ArrayObject($var), - $this->savant - ); - } - return $var; - } - - /** - * Allows direct access to the entire object for situations where the proxy - * interferes. - * - * @return mixed The raw object - */ - function getRawObject() - { - return $this->object; - } - - /** - * Allows access to the raw member variables of the internal object. - * - * @return mixed - */ - function getRaw($var) - { - return $this->object->$var; - } - - function __set($var, $value) - { - $this->object->$var = $value; - } - - /** - * Magic method for checking if a property is set. - * - * @param string $var The var - * - * @return bool - */ - function __isset($var) - { - return isset($this->object->$var); - } - - /** - * Unset a property. - * - * @param string $var The var - * - * @return void - */ - function __unset($var) - { - unset($this->object->$var); - } - - /** - * Magic method which will call methods on the object. - * - * @return mixed - */ - function __call($name, $arguments) - { - return $this->filterVar( - call_user_func_array( - array($this->object, $name), - $arguments - ) - ); - } - - /** - * Gets the class of the internal object - * - * When using the ClassToTemplateMapper this method will be called to - * determine the class of the object. - * - * @return string - */ - function __getClass() - { - return get_class($this->object); - } - - /** - * Constructs an ObjectProxy for the given object. - * - * @param mixed $object The object to proxy - * @param Main $savant The main savant instance - * - * @return ObjectProxy - */ - public static function factory($object, $savant) - { - if ($object instanceof \ArrayObject) { - return new ObjectProxy\ArrayObject($object, $savant); - } - if ($object instanceof \Traversable) { - return new ObjectProxy\Traversable($object, $savant); - } - if ($object instanceof \ArrayAccess) { - return new ObjectProxy\ArrayAccess($object, $savant); - } - return new self($object, $savant); - } - - function __toString() - { - if (method_exists($this->object, '__toString')) { - return $this->savant->escape($this->object->__toString()); - } - throw new BadMethodCallException( - 'Object of class ' . $this->__getClass() - . ' could not be converted to string' - ); - } - - /** - * Returns the number of elements if the object has implemented Countable, - * otherwise 1 is returned. - * - * @return int - */ - function count() - { - return count($this->object); - } -} diff --git a/vendor/php/PEAR2/Templates/Savant/ObjectProxy/ArrayAccess.php b/vendor/php/PEAR2/Templates/Savant/ObjectProxy/ArrayAccess.php deleted file mode 100644 index 02550e6..0000000 --- a/vendor/php/PEAR2/Templates/Savant/ObjectProxy/ArrayAccess.php +++ /dev/null @@ -1,25 +0,0 @@ -object->offsetExists($offset); - } - - function offsetGet($offset) - { - return $this->filterVar($this->object->offsetGet($offset)); - } - - function offsetSet($offset, $value) - { - $this->object->offsetSet($offset, $value); - } - - function offsetUnset($offset) - { - $this->object->offsetUnset($offset); - } -} \ No newline at end of file diff --git a/vendor/php/PEAR2/Templates/Savant/ObjectProxy/ArrayIterator.php b/vendor/php/PEAR2/Templates/Savant/ObjectProxy/ArrayIterator.php deleted file mode 100644 index 4214637..0000000 --- a/vendor/php/PEAR2/Templates/Savant/ObjectProxy/ArrayIterator.php +++ /dev/null @@ -1,47 +0,0 @@ -object->current(); - } - - function next() - { - return $this->object->next(); - } - - function key() - { - return $this->object->key(); - } - - function valid() - { - return $this->object->valid(); - } - - function rewind() - { - return $this->object->rewind(); - } - - function seek($offset) - { - return $this->object->seek($offset); - } -} diff --git a/vendor/php/PEAR2/Templates/Savant/ObjectProxy/ArrayObject.php b/vendor/php/PEAR2/Templates/Savant/ObjectProxy/ArrayObject.php deleted file mode 100644 index 37b5667..0000000 --- a/vendor/php/PEAR2/Templates/Savant/ObjectProxy/ArrayObject.php +++ /dev/null @@ -1,84 +0,0 @@ - - * @author Michael Gauthier - * @copyright 2009 Brett Bieber, 2011 Michael Gauthier - * @license http://www.opensource.org/licenses/bsd-license.php New BSD License - * @version SVN: $Id$ - * @link http://svn.php.net/repository/pear2/PEAR2_Templates_Savant - */ - -/** - * Proxies ArrayObject objects - * - * Filters on array access or on traversal. - * - * @category Templates - * @package PEAR2_Templates_Savant - * @author Brett Bieber - * @author Michael Gauthier - * @copyright 2009 Brett Bieber, 2011 Michael Gauthier - * @license http://www.opensource.org/licenses/bsd-license.php New BSD License - * @link http://svn.php.net/repository/pear2/PEAR2_Templates_Savant - */ -namespace PEAR2\Templates\Savant\ObjectProxy; -use PEAR2\Templates\Savant\ObjectProxy; -class ArrayObject - extends ArrayAccess - implements \ArrayAccess, \Countable, \Serializable, \IteratorAggregate -{ - public function getIterator() - { - return $this->object->getIterator(); - } - - public function next() - { - $this->object->next(); - } - - public function key() - { - return $this->object->key(); - } - - public function valid() - { - return $this->object->valid(); - } - - public function rewind() - { - $this->object->rewind(); - } - - public function current() - { - return $this->filterVar($this->object->current()); - } - - public function count() - { - return count($this->object); - } - - public function serialize() - { - return serialize($this->object); - } - - public function unserialize($string) - { - $object = unserialize($string); - if ($object !== false) { - $this->object = $object; - } - } -} diff --git a/vendor/php/PEAR2/Templates/Savant/ObjectProxy/Traversable.php b/vendor/php/PEAR2/Templates/Savant/ObjectProxy/Traversable.php deleted file mode 100644 index c096fec..0000000 --- a/vendor/php/PEAR2/Templates/Savant/ObjectProxy/Traversable.php +++ /dev/null @@ -1,36 +0,0 @@ -object; - } - - function next() - { - $this->object->next(); - } - - function key() - { - return $this->object->key(); - } - - function valid() - { - return $this->object->valid(); - } - - function rewind() - { - $this->object->rewind(); - } - - function current() - { - return $this->filterVar($this->object->current()); - } -} \ No newline at end of file diff --git a/vendor/php/PEAR2/Templates/Savant/TemplateException.php b/vendor/php/PEAR2/Templates/Savant/TemplateException.php deleted file mode 100644 index da9201c..0000000 --- a/vendor/php/PEAR2/Templates/Savant/TemplateException.php +++ /dev/null @@ -1,5 +0,0 @@ - \ No newline at end of file diff --git a/vendor/php/PEAR2/Templates/Savant/UnexpectedValueException.php b/vendor/php/PEAR2/Templates/Savant/UnexpectedValueException.php deleted file mode 100644 index 2c14b47..0000000 --- a/vendor/php/PEAR2/Templates/Savant/UnexpectedValueException.php +++ /dev/null @@ -1,7 +0,0 @@ - ---EXPECT-- -1 \ No newline at end of file diff --git a/vendor/tests/pear2.php.net/PEAR2_Autoload/initialize_basic002.phpt b/vendor/tests/pear2.php.net/PEAR2_Autoload/initialize_basic002.phpt deleted file mode 100644 index 740a94d..0000000 --- a/vendor/tests/pear2.php.net/PEAR2_Autoload/initialize_basic002.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Test PEAR2\Autoload initalization w/2nd path ---FILE-- - ---EXPECT-- -2 \ No newline at end of file diff --git a/vendor/tests/pear2.php.net/PEAR2_Autoload/initialize_basic003.phpt b/vendor/tests/pear2.php.net/PEAR2_Autoload/initialize_basic003.phpt deleted file mode 100644 index ae82d29..0000000 --- a/vendor/tests/pear2.php.net/PEAR2_Autoload/initialize_basic003.phpt +++ /dev/null @@ -1,11 +0,0 @@ ---TEST-- -Test PEAR2\Autoload initalization w/2nd path AND loading class. ---FILE-- - ---EXPECT-- -class testDir1\Foo says hi diff --git a/vendor/tests/pear2.php.net/PEAR2_Autoload/initialize_basic004.phpt b/vendor/tests/pear2.php.net/PEAR2_Autoload/initialize_basic004.phpt deleted file mode 100644 index 1a19091..0000000 --- a/vendor/tests/pear2.php.net/PEAR2_Autoload/initialize_basic004.phpt +++ /dev/null @@ -1,25 +0,0 @@ ---TEST-- -Test PEAR2\Autoload initalization w/2nd path, loading class & writing map. ---FILE-- - ---EXPECT-- -class testDir1\Foo says hi -class mapped - ---CLEAN-- - \ No newline at end of file diff --git a/vendor/tests/pear2.php.net/PEAR2_Autoload/initialize_basic005.phpt b/vendor/tests/pear2.php.net/PEAR2_Autoload/initialize_basic005.phpt deleted file mode 100644 index 0b36691..0000000 --- a/vendor/tests/pear2.php.net/PEAR2_Autoload/initialize_basic005.phpt +++ /dev/null @@ -1,10 +0,0 @@ ---TEST-- -Test PEAR2\Autoload initalization w/2nd path AND FAIL loading non-existent class. ---FILE-- - ---EXPECTREGEX-- -^Fatal error.* diff --git a/vendor/tests/pear2.php.net/PEAR2_Autoload/run-tests.php.inc b/vendor/tests/pear2.php.net/PEAR2_Autoload/run-tests.php.inc deleted file mode 100644 index 9898713..0000000 --- a/vendor/tests/pear2.php.net/PEAR2_Autoload/run-tests.php.inc +++ /dev/null @@ -1,2479 +0,0 @@ -#!/usr/bin/php - | - | Preston L. Bannister | - | Marcus Boerger | - | Derick Rethans | - | Sander Roobol | - | (based on version by: Stig Bakken ) | - | (based on the PHP 3 test framework by Rasmus Lerdorf) | - +----------------------------------------------------------------------+ - */ - -/* $Id: run-tests.php 308726 2011-02-27 17:55:39Z felipe $ */ - -/* Sanity check to ensure that pcre extension needed by this script is available. - * In the event it is not, print a nice error message indicating that this script will - * not run without it. - */ - -if (!extension_loaded('pcre')) { - echo <<'; - save_text($info_file, $php_info); - $info_params = array(); - settings2array($ini_overwrites, $info_params); - settings2params($info_params); - $php_info = `$php $pass_options $info_params "$info_file"`; - define('TESTED_PHP_VERSION', `$php -n -r "echo PHP_VERSION;"`); - - if ($php_cgi && $php != $php_cgi) { - $php_info_cgi = `$php_cgi $pass_options $info_params -q "$info_file"`; - $php_info_sep = "\n---------------------------------------------------------------------"; - $php_cgi_info = "$php_info_sep\nPHP : $php_cgi $php_info_cgi$php_info_sep"; - } else { - $php_cgi_info = ''; - } - - @unlink($info_file); - - // load list of enabled extensions - save_text($info_file, ''); - $exts_to_test = explode(',',`$php $pass_options $info_params "$info_file"`); - // check for extensions that need special handling and regenerate - $info_params_ex = array( - 'session' => array('session.auto_start=0'), - 'tidy' => array('tidy.clean_output=0'), - 'zlib' => array('zlib.output_compression=Off'), - 'xdebug' => array('xdebug.default_enable=0'), - 'mbstring' => array('mbstring.func_overload=0'), - ); - - foreach($info_params_ex as $ext => $ini_overwrites_ex) { - if (in_array($ext, $exts_to_test)) { - $ini_overwrites = array_merge($ini_overwrites, $ini_overwrites_ex); - } - } - - @unlink($info_file); - - // Write test context information. - echo " -===================================================================== -PHP : $php $php_info $php_cgi_info -CWD : $cwd -Extra dirs : "; - foreach ($user_tests as $test_dir) { - echo "{$test_dir}\n "; - } - echo " -VALGRIND : " . ($leak_check ? $valgrind_header : 'Not used') . " -===================================================================== -"; -} - -define('PHP_QA_EMAIL', 'qa-reports@lists.php.net'); -define('QA_SUBMISSION_PAGE', 'http://qa.php.net/buildtest-process.php'); - -function save_or_mail_results() -{ - global $sum_results, $just_save_results, $failed_test_summary, - $PHP_FAILED_TESTS, $CUR_DIR, $php, $output_file, $compression; - - /* We got failed Tests, offer the user to send an e-mail to QA team, unless NO_INTERACTION is set */ - if (!getenv('NO_INTERACTION')) { - $fp = fopen("php://stdin", "r+"); - if ($sum_results['FAILED'] || $sum_results['BORKED'] || $sum_results['WARNED'] || $sum_results['LEAKED'] || $sum_results['XFAILED']) { - echo "\nYou may have found a problem in PHP."; - } - echo "\nWe would like to send this report automatically to the\n"; - echo "PHP QA team, to give us a better understanding of how\nthe test cases are doing. If you don't want to send it\n"; - echo "immediately, you can choose \"s\" to save the report to\na file that you can send us later.\n"; - echo "Do you want to send this report now? [Yns]: "; - flush(); - - $user_input = fgets($fp, 10); - $just_save_results = (strtolower($user_input[0]) == 's'); - } - - if ($just_save_results || !getenv('NO_INTERACTION')) { - if ($just_save_results || strlen(trim($user_input)) == 0 || strtolower($user_input[0]) == 'y') { - /* - * Collect information about the host system for our report - * Fetch phpinfo() output so that we can see the PHP enviroment - * Make an archive of all the failed tests - * Send an email - */ - if ($just_save_results) { - $user_input = 's'; - } - - /* Ask the user to provide an email address, so that QA team can contact the user */ - if (!strncasecmp($user_input, 'y', 1) || strlen(trim($user_input)) == 0) { - echo "\nPlease enter your email address.\n(Your address will be mangled so that it will not go out on any\nmailinglist in plain text): "; - flush(); - $user_email = trim(fgets($fp, 1024)); - $user_email = str_replace("@", " at ", str_replace(".", " dot ", $user_email)); - } - - $failed_tests_data = ''; - $sep = "\n" . str_repeat('=', 80) . "\n"; - $failed_tests_data .= $failed_test_summary . "\n"; - $failed_tests_data .= get_summary(true, false) . "\n"; - - if ($sum_results['FAILED']) { - foreach ($PHP_FAILED_TESTS['FAILED'] as $test_info) { - $failed_tests_data .= $sep . $test_info['name'] . $test_info['info']; - $failed_tests_data .= $sep . file_get_contents(realpath($test_info['output']), FILE_BINARY); - $failed_tests_data .= $sep . file_get_contents(realpath($test_info['diff']), FILE_BINARY); - $failed_tests_data .= $sep . "\n\n"; - } - $status = "failed"; - } else { - $status = "success"; - } - - $failed_tests_data .= "\n" . $sep . 'BUILD ENVIRONMENT' . $sep; - $failed_tests_data .= "OS:\n" . PHP_OS . " - " . php_uname() . "\n\n"; - $ldd = $autoconf = $sys_libtool = $libtool = $compiler = 'N/A'; - - if (substr(PHP_OS, 0, 3) != "WIN") { - /* If PHP_AUTOCONF is set, use it; otherwise, use 'autoconf'. */ - if (getenv('PHP_AUTOCONF')) { - $autoconf = shell_exec(getenv('PHP_AUTOCONF') . ' --version'); - } else { - $autoconf = shell_exec('autoconf --version'); - } - - /* Always use the generated libtool - Mac OSX uses 'glibtool' */ - $libtool = shell_exec($CUR_DIR . '/libtool --version'); - - /* Use shtool to find out if there is glibtool present (MacOSX) */ - $sys_libtool_path = shell_exec(__DIR__ . '/build/shtool path glibtool libtool'); - - if ($sys_libtool_path) { - $sys_libtool = shell_exec(str_replace("\n", "", $sys_libtool_path) . ' --version'); - } - - /* Try the most common flags for 'version' */ - $flags = array('-v', '-V', '--version'); - $cc_status = 0; - - foreach($flags AS $flag) { - system(getenv('CC') . " $flag >/dev/null 2>&1", $cc_status); - if ($cc_status == 0) { - $compiler = shell_exec(getenv('CC') . " $flag 2>&1"); - break; - } - } - - $ldd = shell_exec("ldd $php 2>/dev/null"); - } - - $failed_tests_data .= "Autoconf:\n$autoconf\n"; - $failed_tests_data .= "Bundled Libtool:\n$libtool\n"; - $failed_tests_data .= "System Libtool:\n$sys_libtool\n"; - $failed_tests_data .= "Compiler:\n$compiler\n"; - $failed_tests_data .= "Bison:\n". shell_exec('bison --version 2>/dev/null') . "\n"; - $failed_tests_data .= "Libraries:\n$ldd\n"; - $failed_tests_data .= "\n"; - - if (isset($user_email)) { - $failed_tests_data .= "User's E-mail: " . $user_email . "\n\n"; - } - - $failed_tests_data .= $sep . "PHPINFO" . $sep; - $failed_tests_data .= shell_exec($php . ' -ddisplay_errors=stderr -dhtml_errors=0 -i 2> /dev/null'); - - if ($just_save_results || !mail_qa_team($failed_tests_data, $compression, $status)) { - file_put_contents($output_file, $failed_tests_data); - - if (!$just_save_results) { - echo "\nThe test script was unable to automatically send the report to PHP's QA Team\n"; - } - - echo "Please send " . $output_file . " to " . PHP_QA_EMAIL . " manually, thank you.\n"; - } else { - fwrite($fp, "\nThank you for helping to make PHP better.\n"); - fclose($fp); - } - } - } -} - -// Determine the tests to be run. - -$test_files = array(); -$redir_tests = array(); -$test_results = array(); -$PHP_FAILED_TESTS = array('BORKED' => array(), 'FAILED' => array(), 'WARNED' => array(), 'LEAKED' => array(), 'XFAILED' => array()); - -// If parameters given assume they represent selected tests to run. -$failed_tests_file= false; -$pass_option_n = false; -$pass_options = ''; - -$compression = 0; -$output_file = $CUR_DIR . '/php_test_results_' . date('Ymd_Hi') . '.txt'; - -if ($compression) { - $output_file = 'compress.zlib://' . $output_file . '.gz'; -} - -$just_save_results = false; -$leak_check = false; -$html_output = false; -$html_file = null; -$temp_source = null; -$temp_target = null; -$temp_urlbase = null; -$conf_passed = null; -$no_clean = false; - -$cfgtypes = array('show', 'keep'); -$cfgfiles = array('skip', 'php', 'clean', 'out', 'diff', 'exp'); -$cfg = array(); - -foreach($cfgtypes as $type) { - $cfg[$type] = array(); - - foreach($cfgfiles as $file) { - $cfg[$type][$file] = false; - } -} - -if (getenv('TEST_PHP_ARGS')) { - - if (!isset($argc) || !$argc || !isset($argv)) { - $argv = array(__FILE__); - } - - $argv = array_merge($argv, split(' ', getenv('TEST_PHP_ARGS'))); - $argc = count($argv); -} - -if (isset($argc) && $argc > 1) { - - for ($i=1; $i<$argc; $i++) { - $is_switch = false; - $switch = substr($argv[$i],1,1); - $repeat = substr($argv[$i],0,1) == '-'; - - while ($repeat) { - - if (!$is_switch) { - $switch = substr($argv[$i],1,1); - } - - $is_switch = true; - - if ($repeat) { - foreach($cfgtypes as $type) { - if (strpos($switch, '--' . $type) === 0) { - foreach($cfgfiles as $file) { - if ($switch == '--' . $type . '-' . $file) { - $cfg[$type][$file] = true; - $is_switch = false; - break; - } - } - } - } - } - - if (!$is_switch) { - $is_switch = true; - break; - } - - $repeat = false; - - switch($switch) { - case 'r': - case 'l': - $test_list = file($argv[++$i]); - if ($test_list) { - foreach($test_list as $test) { - $matches = array(); - if (preg_match('/^#.*\[(.*)\]\:\s+(.*)$/', $test, $matches)) { - $redir_tests[] = array($matches[1], $matches[2]); - } else if (strlen($test)) { - $test_files[] = trim($test); - } - } - } - if ($switch != 'l') { - break; - } - $i--; - // break left intentionally - case 'w': - $failed_tests_file = fopen($argv[++$i], 'w+t'); - break; - case 'a': - $failed_tests_file = fopen($argv[++$i], 'a+t'); - break; - case 'c': - $conf_passed = $argv[++$i]; - break; - case 'd': - $ini_overwrites[] = $argv[++$i]; - break; - //case 'h' - case '--keep-all': - foreach($cfgfiles as $file) { - $cfg['keep'][$file] = true; - } - break; - //case 'l' - case 'm': - $leak_check = true; - $valgrind_cmd = "valgrind --version"; - $valgrind_header = system_with_timeout($valgrind_cmd, $environment); - $replace_count = 0; - if (!$valgrind_header) { - error("Valgrind returned no version info, cannot proceed.\nPlease check if Valgrind is installed."); - } else { - $valgrind_version = preg_replace("/valgrind-([0-9])\.([0-9])\.([0-9]+)([.-\w]+)?(\s+)/", '$1$2$3', $valgrind_header, 1, $replace_count); - if ($replace_count != 1 || !is_numeric($valgrind_version)) { - error("Valgrind returned invalid version info (\"$valgrind_header\"), cannot proceed."); - } - $valgrind_header = trim($valgrind_header); - } - break; - case 'n': - if (!$pass_option_n) { - $pass_options .= ' -n'; - } - $pass_option_n = true; - break; - case '--no-clean': - $no_clean = true; - break; - case 'p': - $php = $argv[++$i]; - putenv("TEST_PHP_EXECUTABLE=$php"); - $environment['TEST_PHP_EXECUTABLE'] = $php; - break; - case 'q': - putenv('NO_INTERACTION=1'); - break; - //case 'r' - case 's': - $output_file = $argv[++$i]; - $just_save_results = true; - break; - case '--set-timeout': - $environment['TEST_TIMEOUT'] = $argv[++$i]; - break; - case '--show-all': - foreach($cfgfiles as $file) { - $cfg['show'][$file] = true; - } - break; - case '--temp-source': - $temp_source = $argv[++$i]; - break; - case '--temp-target': - $temp_target = $argv[++$i]; - if ($temp_urlbase) { - $temp_urlbase = $temp_target; - } - break; - case '--temp-urlbase': - $temp_urlbase = $argv[++$i]; - break; - case 'v': - case '--verbose': - $DETAILED = true; - break; - case 'x': - $environment['SKIP_SLOW_TESTS'] = 1; - break; - //case 'w' - case '-': - // repeat check with full switch - $switch = $argv[$i]; - if ($switch != '-') { - $repeat = true; - } - break; - case '--html': - $html_file = fopen($argv[++$i], 'wt'); - $html_output = is_resource($html_file); - break; - case '--version': - echo '$Revision: 308726 $' . "\n"; - exit(1); - - default: - echo "Illegal switch '$switch' specified!\n"; - case 'h': - case '-help': - case '--help': - echo << Read the testfiles to be executed from . After the test - has finished all failed tests are written to the same . - If the list is empty and no further test is specified then - all tests are executed (same as: -r -w ). - - -r Read the testfiles to be executed from . - - -w Write a list of all failed tests to . - - -a Same as -w but append rather then truncating . - - -c Look for php.ini in directory or use as ini. - - -n Pass -n option to the php binary (Do not use a php.ini). - - -d foo=bar Pass -d option to the php binary (Define INI entry foo - with value 'bar'). - - -m Test for memory leaks with Valgrind. - - -p Specify PHP executable to run. - - -q Quiet, no user interaction (same as environment NO_INTERACTION). - - -s Write output to . - - -x Sets 'SKIP_SLOW_TESTS' environmental variable. - - --verbose - -v Verbose mode. - - --help - -h This Help. - - --html Generate HTML output. - - --temp-source --temp-target [--temp-urlbase ] - Write temporary files to by replacing from the - filenames to generate with . If --html is being used and - given then the generated links are relative and prefixed - with the given url. In general you want to make the path - to your source files and some pach in your web page - hierarchy with pointing to . - - --keep-[all|php|skip|clean] - Do not delete 'all' files, 'php' test file, 'skip' or 'clean' - file. - - --set-timeout [n] - Set timeout for individual tests, where [n] is the number of - seconds. The default value is 60 seconds, or 300 seconds when - testing for memory leaks. - - --show-[all|php|skip|clean|exp|diff|out] - Show 'all' files, 'php' test file, 'skip' or 'clean' file. You - can also use this to show the output 'out', the expected result - 'exp' or the difference between them 'diff'. The result types - get written independent of the log format, however 'diff' only - exists when a test fails. - - --no-clean Do not execute clean section if any. - -HELP; - exit(1); - } - } - - if (!$is_switch) { - $testfile = realpath($argv[$i]); - - if (!$testfile && strpos($argv[$i], '*') !== false && function_exists('glob')) { - - if (preg_match("/\.phpt$/", $argv[$i])) { - $pattern_match = glob($argv[$i]); - } else if (preg_match("/\*$/", $argv[$i])) { - $pattern_match = glob($argv[$i] . '.phpt'); - } else { - die("bogus test name " . $argv[$i] . "\n"); - } - - if (is_array($pattern_match)) { - $test_files = array_merge($test_files, $pattern_match); - } - - } else if (is_dir($testfile)) { - find_files($testfile); - } else if (preg_match("/\.phpt$/", $testfile)) { - $test_files[] = $testfile; - } else { - die("bogus test name " . $argv[$i] . "\n"); - } - } - } - - if (strlen($conf_passed)) { - if (substr(PHP_OS, 0, 3) == "WIN") { - $pass_options .= " -c " . escapeshellarg($conf_passed); - } else { - $pass_options .= " -c '$conf_passed'"; - } - } - - $test_files = array_unique($test_files); - $test_files = array_merge($test_files, $redir_tests); - - // Run selected tests. - $test_cnt = count($test_files); - - if ($test_cnt) { - putenv('NO_INTERACTION=1'); - verify_config(); - write_information($html_output); - usort($test_files, "test_sort"); - $start_time = time(); - - if (!$html_output) { - echo "Running selected tests.\n"; - } else { - show_start($start_time); - } - - $test_idx = 0; - run_all_tests($test_files, $environment); - $end_time = time(); - - if ($html_output) { - show_end($end_time); - } - - if ($failed_tests_file) { - fclose($failed_tests_file); - } - - if (count($test_files) || count($test_results)) { - compute_summary(); - if ($html_output) { - fwrite($html_file, "
    \n" . get_summary(false, true)); - } - echo "====================================================================="; - echo get_summary(false, false); - } - - if ($html_output) { - fclose($html_file); - } - - if ($output_file != '' && $just_save_results) { - save_or_mail_results(); - } - - if (getenv('REPORT_EXIT_STATUS') == 1 and preg_match('/FAILED(?: |$)/', implode(' ', $test_results))) { - exit(1); - } - - exit(0); - } -} - -verify_config(); -write_information($html_output); - -// Compile a list of all test files (*.phpt). -$test_files = array(); -$exts_tested = count($exts_to_test); -$exts_skipped = 0; -$ignored_by_ext = 0; -sort($exts_to_test); -$test_dirs = array(); -$optionals = array('tests', 'ext', 'Zend', 'ZendEngine2', 'sapi/cli', 'sapi/cgi'); - -foreach($optionals as $dir) { - if (@filetype($dir) == 'dir') { - $test_dirs[] = $dir; - } -} - -// Convert extension names to lowercase -foreach ($exts_to_test as $key => $val) { - $exts_to_test[$key] = strtolower($val); -} - -foreach ($test_dirs as $dir) { - find_files("{$cwd}/{$dir}", ($dir == 'ext')); -} - -foreach ($user_tests as $dir) { - find_files($dir, ($dir == 'ext')); -} - -function find_files($dir, $is_ext_dir = false, $ignore = false) -{ - global $test_files, $exts_to_test, $ignored_by_ext, $exts_skipped, $exts_tested; - - $o = opendir($dir) or error("cannot open directory: $dir"); - - while (($name = readdir($o)) !== false) { - - if (is_dir("{$dir}/{$name}") && !in_array($name, array('.', '..', 'CVS'))) { - $skip_ext = ($is_ext_dir && !in_array(strtolower($name), $exts_to_test)); - if ($skip_ext) { - $exts_skipped++; - } - find_files("{$dir}/{$name}", false, $ignore || $skip_ext); - } - - // Cleanup any left-over tmp files from last run. - if (substr($name, -4) == '.tmp') { - @unlink("$dir/$name"); - continue; - } - - // Otherwise we're only interested in *.phpt files. - if (substr($name, -5) == '.phpt') { - if ($ignore) { - $ignored_by_ext++; - } else { - $testfile = realpath("{$dir}/{$name}"); - $test_files[] = $testfile; - } - } - } - - closedir($o); -} - -function test_name($name) -{ - if (is_array($name)) { - return $name[0] . ':' . $name[1]; - } else { - return $name; - } -} - -function test_sort($a, $b) -{ - global $cwd; - - $a = test_name($a); - $b = test_name($b); - - $ta = strpos($a, "{$cwd}/tests") === 0 ? 1 + (strpos($a, "{$cwd}/tests/run-test") === 0 ? 1 : 0) : 0; - $tb = strpos($b, "{$cwd}/tests") === 0 ? 1 + (strpos($b, "{$cwd}/tests/run-test") === 0 ? 1 : 0) : 0; - - if ($ta == $tb) { - return strcmp($a, $b); - } else { - return $tb - $ta; - } -} - -$test_files = array_unique($test_files); -usort($test_files, "test_sort"); - -$start_time = time(); -show_start($start_time); - -$test_cnt = count($test_files); -$test_idx = 0; -run_all_tests($test_files, $environment); -$end_time = time(); - -if ($failed_tests_file) { - fclose($failed_tests_file); -} - -// Summarize results - -if (0 == count($test_results)) { - echo "No tests were run.\n"; - return; -} - -compute_summary(); - -show_end($end_time); -show_summary(); - -if ($html_output) { - fclose($html_file); -} - -save_or_mail_results(); - -if (getenv('REPORT_EXIT_STATUS') == 1 and $sum_results['FAILED']) { - exit(1); -} -exit(0); - -// -// Send Email to QA Team -// - -function mail_qa_team($data, $compression, $status = false) -{ - $url_bits = parse_url(QA_SUBMISSION_PAGE); - - if (empty($url_bits['port'])) { - $url_bits['port'] = 80; - } - - $data = "php_test_data=" . urlencode(base64_encode(str_replace("\00", '[0x0]', $data))); - $data_length = strlen($data); - - $fs = fsockopen($url_bits['host'], $url_bits['port'], $errno, $errstr, 10); - - if (!$fs) { - return false; - } - - $php_version = urlencode(TESTED_PHP_VERSION); - - echo "\nPosting to {$url_bits['host']} {$url_bits['path']}\n"; - fwrite($fs, "POST " . $url_bits['path'] . "?status=$status&version=$php_version HTTP/1.1\r\n"); - fwrite($fs, "Host: " . $url_bits['host'] . "\r\n"); - fwrite($fs, "User-Agent: QA Browser 0.1\r\n"); - fwrite($fs, "Content-Type: application/x-www-form-urlencoded\r\n"); - fwrite($fs, "Content-Length: " . $data_length . "\r\n\r\n"); - fwrite($fs, $data); - fwrite($fs, "\r\n\r\n"); - fclose($fs); - - return 1; -} - - -// -// Write the given text to a temporary file, and return the filename. -// - -function save_text($filename, $text, $filename_copy = null) -{ - global $DETAILED; - - if ($filename_copy && $filename_copy != $filename) { - if (file_put_contents($filename_copy, (binary) $text, FILE_BINARY) === false) { - error("Cannot open file '" . $filename_copy . "' (save_text)"); - } - } - - if (file_put_contents($filename, (binary) $text, FILE_BINARY) === false) { - error("Cannot open file '" . $filename . "' (save_text)"); - } - - if (1 < $DETAILED) echo " -FILE $filename {{{ -$text -}}} -"; -} - -// -// Write an error in a format recognizable to Emacs or MSVC. -// - -function error_report($testname, $logname, $tested) -{ - $testname = realpath($testname); - $logname = realpath($logname); - - switch (strtoupper(getenv('TEST_PHP_ERROR_STYLE'))) { - case 'MSVC': - echo $testname . "(1) : $tested\n"; - echo $logname . "(1) : $tested\n"; - break; - case 'EMACS': - echo $testname . ":1: $tested\n"; - echo $logname . ":1: $tested\n"; - break; - } -} - -function system_with_timeout($commandline, $env = null, $stdin = null) -{ - global $leak_check, $cwd; - - $data = b''; - - $bin_env = array(); - foreach((array)$env as $key => $value) { - $bin_env[(binary)$key] = (binary)$value; - } - - $proc = proc_open($commandline, array( - 0 => array('pipe', 'r'), - 1 => array('pipe', 'w'), - 2 => array('pipe', 'w') - ), $pipes, $cwd, $bin_env, array('suppress_errors' => true, 'binary_pipes' => true)); - - if (!$proc) { - return false; - } - - if (!is_null($stdin)) { - fwrite($pipes[0], (binary) $stdin); - } - fclose($pipes[0]); - - $timeout = $leak_check ? 300 : (isset($env['TEST_TIMEOUT']) ? $env['TEST_TIMEOUT'] : 60); - - while (true) { - /* hide errors from interrupted syscalls */ - $r = $pipes; - $w = null; - $e = null; - - $n = @stream_select($r, $w, $e, $timeout); - - if ($n === false) { - break; - } else if ($n === 0) { - /* timed out */ - $data .= b"\n ** ERROR: process timed out **\n"; - proc_terminate($proc); - return $data; - } else if ($n > 0) { - $line = (binary) fread($pipes[1], 8192); - if (strlen($line) == 0) { - /* EOF */ - break; - } - $data .= $line; - } - } - - $stat = proc_get_status($proc); - - if ($stat['signaled']) { - $data .= b"\nTermsig=" . $stat['stopsig']; - } - - $code = proc_close($proc); - return $data; -} - -function run_all_tests($test_files, $env, $redir_tested = null) -{ - global $test_results, $failed_tests_file, $php, $test_cnt, $test_idx; - - foreach($test_files as $name) { - - if (is_array($name)) { - $index = "# $name[1]: $name[0]"; - - if ($redir_tested) { - $name = $name[0]; - } - } else if ($redir_tested) { - $index = "# $redir_tested: $name"; - } else { - $index = $name; - } - $test_idx++; - $result = run_test($php, $name, $env); - - if (!is_array($name) && $result != 'REDIR') { - $test_results[$index] = $result; - if ($failed_tests_file && ($result == 'XFAILED' || $result == 'FAILED' || $result == 'WARNED' || $result == 'LEAKED')) { - fwrite($failed_tests_file, "$index\n"); - } - } - } -} - -// -// Show file or result block -// -function show_file_block($file, $block, $section = null) -{ - global $cfg; - - if ($cfg['show'][$file]) { - - if (is_null($section)) { - $section = strtoupper($file); - } - - echo "\n========" . $section . "========\n"; - echo rtrim($block); - echo "\n========DONE========\n"; - } -} - -function binary_section($section) -{ - return PHP_MAJOR_VERSION < 6 || - ( - $section == 'FILE' || - $section == 'FILEEOF' || - $section == 'EXPECT' || - $section == 'EXPECTF' || - $section == 'EXPECTREGEX' || - $section == 'EXPECTHEADERS' || - $section == 'SKIPIF' || - $section == 'CLEAN' - ); -} - -// -// Run an individual test case. -// -function run_test($php, $file, $env) -{ - global $log_format, $info_params, $ini_overwrites, $cwd, $PHP_FAILED_TESTS; - global $pass_options, $DETAILED, $IN_REDIRECT, $test_cnt, $test_idx; - global $leak_check, $temp_source, $temp_target, $cfg, $environment; - global $no_clean; - global $valgrind_version; - $temp_filenames = null; - $org_file = $file; - - if (isset($env['TEST_PHP_CGI_EXECUTABLE'])) { - $php_cgi = $env['TEST_PHP_CGI_EXECUTABLE']; - } - - if (is_array($file)) { - $file = $file[0]; - } - - if ($DETAILED) echo " -================= -TEST $file -"; - - // Load the sections of the test file. - $section_text = array('TEST' => ''); - - $fp = fopen($file, "rb") or error("Cannot open test file: $file"); - - $borked = false; - $bork_info = ''; - - if (!feof($fp)) { - $line = fgets($fp); - - if ($line === false) { - $bork_info = "cannot read test"; - $borked = true; - } - } else { - $bork_info = "empty test [$file]"; - $borked = true; - } - if (!$borked && strncmp('--TEST--', $line, 8)) { - $bork_info = "tests must start with --TEST-- [$file]"; - $borked = true; - } - - $section = 'TEST'; - $secfile = false; - $secdone = false; - - while (!feof($fp)) { - $line = fgets($fp); - - if ($line === false) { - break; - } - - // Match the beginning of a section. - if (preg_match(b'/^--([_A-Z]+)--/', $line, $r)) { - $section = $r[1]; - settype($section, STRING_TYPE); - - if (isset($section_text[$section])) { - $bork_info = "duplicated $section section"; - $borked = true; - } - - $section_text[$section] = binary_section($section) ? b'' : ''; - $secfile = $section == 'FILE' || $section == 'FILEEOF' || $section == 'FILE_EXTERNAL'; - $secdone = false; - continue; - } - - if (!binary_section($section)) { - $line = unicode_decode($line, "utf-8"); - if ($line == false) { - $bork_info = "cannot read test"; - $borked = true; - break; - } - } - - // Add to the section text. - if (!$secdone) { - $section_text[$section] .= $line; - } - - // End of actual test? - if ($secfile && preg_match(b'/^===DONE===\s*$/', $line)) { - $secdone = true; - } - } - - // the redirect section allows a set of tests to be reused outside of - // a given test dir - if (!$borked) { - if (@count($section_text['REDIRECTTEST']) == 1) { - - if ($IN_REDIRECT) { - $borked = true; - $bork_info = "Can't redirect a test from within a redirected test"; - } else { - $borked = false; - } - - } else { - - if (@count($section_text['FILE']) + @count($section_text['FILEEOF']) + @count($section_text['FILE_EXTERNAL']) != 1) { - $bork_info = "missing section --FILE--"; - $borked = true; - } - - if (@count($section_text['FILEEOF']) == 1) { - $section_text['FILE'] = preg_replace(b"/[\r\n]+$/", b'', $section_text['FILEEOF']); - unset($section_text['FILEEOF']); - } - - if (@count($section_text['FILE_EXTERNAL']) == 1) { - // don't allow tests to retrieve files from anywhere but this subdirectory - $section_text['FILE_EXTERNAL'] = dirname($file) . '/' . trim(str_replace('..', '', $section_text['FILE_EXTERNAL'])); - - if (file_exists($section_text['FILE_EXTERNAL'])) { - $section_text['FILE'] = file_get_contents($section_text['FILE_EXTERNAL'], FILE_BINARY); - unset($section_text['FILE_EXTERNAL']); - } else { - $bork_info = "could not load --FILE_EXTERNAL-- " . dirname($file) . '/' . trim($section_text['FILE_EXTERNAL']); - $borked = true; - } - } - - if ((@count($section_text['EXPECT']) + @count($section_text['EXPECTF']) + @count($section_text['EXPECTREGEX'])) != 1) { - $bork_info = "missing section --EXPECT--, --EXPECTF-- or --EXPECTREGEX--"; - $borked = true; - } - } - } - fclose($fp); - - $shortname = str_replace($cwd . '/', '', $file); - $tested_file = $shortname; - - if ($borked) { - show_result("BORK", $bork_info, $tested_file); - $PHP_FAILED_TESTS['BORKED'][] = array ( - 'name' => $file, - 'test_name' => '', - 'output' => '', - 'diff' => '', - 'info' => "$bork_info [$file]", - ); - return 'BORKED'; - } - - $tested = trim($section_text['TEST']); - - /* For GET/POST tests, check if cgi sapi is available and if it is, use it. */ - if (!empty($section_text['GET']) || !empty($section_text['POST']) || !empty($section_text['POST_RAW']) || !empty($section_text['COOKIE']) || !empty($section_text['EXPECTHEADERS'])) { - if (isset($php_cgi)) { - $old_php = $php; - $php = $php_cgi . ' -C '; - } else if (!strncasecmp(PHP_OS, "win", 3) && file_exists(dirname($php) . "/php-cgi.exe")) { - $old_php = $php; - $php = realpath(dirname($php) . "/php-cgi.exe") . ' -C '; - } else { - if (file_exists(dirname($php) . "/../../sapi/cgi/php-cgi")) { - $old_php = $php; - $php = realpath(dirname($php) . "/../../sapi/cgi/php-cgi") . ' -C '; - } else if (file_exists("./sapi/cgi/php-cgi")) { - $old_php = $php; - $php = realpath("./sapi/cgi/php-cgi") . ' -C '; - } else { - show_result('SKIP', $tested, $tested_file, "reason: CGI not available"); - return 'SKIPPED'; - } - } - } - - show_test($test_idx, $shortname); - - if (is_array($IN_REDIRECT)) { - $temp_dir = $test_dir = $IN_REDIRECT['dir']; - } else { - $temp_dir = $test_dir = realpath(dirname($file)); - } - - if ($temp_source && $temp_target) { - $temp_dir = str_replace($temp_source, $temp_target, $temp_dir); - } - - $main_file_name = basename($file,'phpt'); - - $diff_filename = $temp_dir . DIRECTORY_SEPARATOR . $main_file_name . 'diff'; - $log_filename = $temp_dir . DIRECTORY_SEPARATOR . $main_file_name . 'log'; - $exp_filename = $temp_dir . DIRECTORY_SEPARATOR . $main_file_name . 'exp'; - $output_filename = $temp_dir . DIRECTORY_SEPARATOR . $main_file_name . 'out'; - $memcheck_filename = $temp_dir . DIRECTORY_SEPARATOR . $main_file_name . 'mem'; - $sh_filename = $temp_dir . DIRECTORY_SEPARATOR . $main_file_name . 'sh'; - $temp_file = $temp_dir . DIRECTORY_SEPARATOR . $main_file_name . 'php'; - $test_file = $test_dir . DIRECTORY_SEPARATOR . $main_file_name . 'php'; - $temp_skipif = $temp_dir . DIRECTORY_SEPARATOR . $main_file_name . 'skip.php'; - $test_skipif = $test_dir . DIRECTORY_SEPARATOR . $main_file_name . 'skip.php'; - $temp_clean = $temp_dir . DIRECTORY_SEPARATOR . $main_file_name . 'clean.php'; - $test_clean = $test_dir . DIRECTORY_SEPARATOR . $main_file_name . 'clean.php'; - $tmp_post = $temp_dir . DIRECTORY_SEPARATOR . uniqid('/phpt.'); - $tmp_relative_file = str_replace(__DIR__ . DIRECTORY_SEPARATOR, '', $test_file) . 't'; - - if ($temp_source && $temp_target) { - $temp_skipif .= 's'; - $temp_file .= 's'; - $temp_clean .= 's'; - $copy_file = $temp_dir . DIRECTORY_SEPARATOR . basename(is_array($file) ? $file[1] : $file) . '.phps'; - - if (!is_dir(dirname($copy_file))) { - mkdir(dirname($copy_file), 0777, true) or error("Cannot create output directory - " . dirname($copy_file)); - } - - if (isset($section_text['FILE'])) { - save_text($copy_file, $section_text['FILE']); - } - - $temp_filenames = array( - 'file' => $copy_file, - 'diff' => $diff_filename, - 'log' => $log_filename, - 'exp' => $exp_filename, - 'out' => $output_filename, - 'mem' => $memcheck_filename, - 'sh' => $sh_filename, - 'php' => $temp_file, - 'skip' => $temp_skipif, - 'clean'=> $temp_clean); - } - - if (is_array($IN_REDIRECT)) { - $tested = $IN_REDIRECT['prefix'] . ' ' . trim($section_text['TEST']); - $tested_file = $tmp_relative_file; - } - - // unlink old test results - @unlink($diff_filename); - @unlink($log_filename); - @unlink($exp_filename); - @unlink($output_filename); - @unlink($memcheck_filename); - @unlink($sh_filename); - @unlink($temp_file); - @unlink($test_file); - @unlink($temp_skipif); - @unlink($test_skipif); - @unlink($tmp_post); - @unlink($temp_clean); - @unlink($test_clean); - - // Reset environment from any previous test. - $env['REDIRECT_STATUS'] = ''; - $env['QUERY_STRING'] = ''; - $env['PATH_TRANSLATED'] = ''; - $env['SCRIPT_FILENAME'] = ''; - $env['REQUEST_METHOD'] = ''; - $env['CONTENT_TYPE'] = ''; - $env['CONTENT_LENGTH'] = ''; - $env['TZ'] = ''; - - if (!empty($section_text['ENV'])) { - - foreach(explode("\n", trim($section_text['ENV'])) as $e) { - $e = explode('=', trim($e), 2); - - if (!empty($e[0]) && isset($e[1])) { - $env[$e[0]] = $e[1]; - } - } - } - - // Default ini settings - $ini_settings = array(); - // additional ini overwrites - //$ini_overwrites[] = 'setting=value'; - settings2array($ini_overwrites, $ini_settings); - - // Any special ini settings - // these may overwrite the test defaults... - if (array_key_exists('INI', $section_text)) { - if (strpos($section_text['INI'], '{PWD}') !== false) { - $section_text['INI'] = str_replace('{PWD}', dirname($file), $section_text['INI']); - } - settings2array(preg_split( "/[\n\r]+/", $section_text['INI']), $ini_settings); - } - - settings2params($ini_settings); - - // Check if test should be skipped. - $info = ''; - $warn = false; - - if (array_key_exists('SKIPIF', $section_text)) { - - if (trim($section_text['SKIPIF'])) { - show_file_block('skip', $section_text['SKIPIF']); - save_text($test_skipif, $section_text['SKIPIF'], $temp_skipif); - $extra = substr(PHP_OS, 0, 3) !== "WIN" ? - "unset REQUEST_METHOD; unset QUERY_STRING; unset PATH_TRANSLATED; unset SCRIPT_FILENAME; unset REQUEST_METHOD;": ""; - - if ($leak_check) { - $env['USE_ZEND_ALLOC'] = '0'; - } else { - $env['USE_ZEND_ALLOC'] = '1'; - } - - $output = system_with_timeout("$extra $php $pass_options -q $ini_settings -d display_errors=0 $test_skipif", $env); - - if (!$cfg['keep']['skip']) { - @unlink($test_skipif); - } - - if (!strncasecmp('skip', ltrim($output), 4)) { - - if (preg_match('/^\s*skip\s*(.+)\s*/i', $output, $m)) { - show_result('SKIP', $tested, $tested_file, "reason: $m[1]", $temp_filenames); - } else { - show_result('SKIP', $tested, $tested_file, '', $temp_filenames); - } - - if (isset($old_php)) { - $php = $old_php; - } - - if (!$cfg['keep']['skip']) { - @unlink($test_skipif); - } - - return 'SKIPPED'; - } - - if (!strncasecmp('info', ltrim($output), 4)) { - if (preg_match('/^\s*info\s*(.+)\s*/i', $output, $m)) { - $info = " (info: $m[1])"; - } - } - - if (!strncasecmp('warn', ltrim($output), 4)) { - if (preg_match('/^\s*warn\s*(.+)\s*/i', $output, $m)) { - $warn = true; /* only if there is a reason */ - $info = " (warn: $m[1])"; - } - } - } - } - - if (@count($section_text['REDIRECTTEST']) == 1) { - $test_files = array(); - - $IN_REDIRECT = eval($section_text['REDIRECTTEST']); - $IN_REDIRECT['via'] = "via [$shortname]\n\t"; - $IN_REDIRECT['dir'] = realpath(dirname($file)); - $IN_REDIRECT['prefix'] = trim($section_text['TEST']); - - if (count($IN_REDIRECT['TESTS']) == 1) { - - if (is_array($org_file)) { - $test_files[] = $org_file[1]; - } else { - $GLOBALS['test_files'] = $test_files; - find_files($IN_REDIRECT['TESTS']); - - foreach($GLOBALS['test_files'] as $f) { - $test_files[] = array($f, $file); - } - } - $test_cnt += @count($test_files) - 1; - $test_idx--; - - show_redirect_start($IN_REDIRECT['TESTS'], $tested, $tested_file); - - // set up environment - $redirenv = array_merge($environment, $IN_REDIRECT['ENV']); - $redirenv['REDIR_TEST_DIR'] = realpath($IN_REDIRECT['TESTS']) . DIRECTORY_SEPARATOR; - - usort($test_files, "test_sort"); - run_all_tests($test_files, $redirenv, $tested); - - show_redirect_ends($IN_REDIRECT['TESTS'], $tested, $tested_file); - - // a redirected test never fails - $IN_REDIRECT = false; - return 'REDIR'; - - } else { - - $bork_info = "Redirect info must contain exactly one TEST string to be used as redirect directory."; - show_result("BORK", $bork_info, '', $temp_filenames); - $PHP_FAILED_TESTS['BORKED'][] = array ( - 'name' => $file, - 'test_name' => '', - 'output' => '', - 'diff' => '', - 'info' => "$bork_info [$file]", - ); - } - } - - if (is_array($org_file) || @count($section_text['REDIRECTTEST']) == 1) { - - if (is_array($org_file)) { - $file = $org_file[0]; - } - - $bork_info = "Redirected test did not contain redirection info"; - show_result("BORK", $bork_info, '', $temp_filenames); - $PHP_FAILED_TESTS['BORKED'][] = array ( - 'name' => $file, - 'test_name' => '', - 'output' => '', - 'diff' => '', - 'info' => "$bork_info [$file]", - ); - return 'BORKED'; - } - - // We've satisfied the preconditions - run the test! - show_file_block('php', $section_text['FILE'], 'TEST'); - save_text($test_file, $section_text['FILE'], $temp_file); - - if (array_key_exists('GET', $section_text)) { - $query_string = trim($section_text['GET']); - } else { - $query_string = ''; - } - - $env['REDIRECT_STATUS'] = '1'; - $env['QUERY_STRING'] = $query_string; - $env['PATH_TRANSLATED'] = $test_file; - $env['SCRIPT_FILENAME'] = $test_file; - - if (array_key_exists('COOKIE', $section_text)) { - $env['HTTP_COOKIE'] = trim($section_text['COOKIE']); - } else { - $env['HTTP_COOKIE'] = ''; - } - - $args = isset($section_text['ARGS']) ? ' -- ' . $section_text['ARGS'] : ''; - - if (array_key_exists('POST_RAW', $section_text) && !empty($section_text['POST_RAW'])) { - - $post = trim($section_text['POST_RAW']); - $raw_lines = explode("\n", $post); - - $request = ''; - $started = false; - - foreach ($raw_lines as $line) { - - if (empty($env['CONTENT_TYPE']) && preg_match('/^Content-Type:(.*)/i', $line, $res)) { - $env['CONTENT_TYPE'] = trim(str_replace("\r", '', $res[1])); - continue; - } - - if ($started) { - $request .= "\n"; - } - - $started = true; - $request .= $line; - } - - $env['CONTENT_LENGTH'] = strlen($request); - $env['REQUEST_METHOD'] = 'POST'; - - if (empty($request)) { - return 'BORKED'; - } - - save_text($tmp_post, $request); - $cmd = "$php $pass_options $ini_settings -f \"$test_file\" 2>&1 < $tmp_post"; - - } else if (array_key_exists('POST', $section_text) && !empty($section_text['POST'])) { - - $post = trim($section_text['POST']); - - if (array_key_exists('GZIP_POST', $section_text) && function_exists('gzencode')) { - $post = gzencode($post, 9, FORCE_GZIP); - $env['HTTP_CONTENT_ENCODING'] = 'gzip'; - } else if (array_key_exists('DEFLATE_POST', $section_text) && function_exists('gzcompress')) { - $post = gzcompress($post, 9); - $env['HTTP_CONTENT_ENCODING'] = 'deflate'; - } - - save_text($tmp_post, $post); - $content_length = strlen($post); - - $env['REQUEST_METHOD'] = 'POST'; - $env['CONTENT_TYPE'] = 'application/x-www-form-urlencoded'; - $env['CONTENT_LENGTH'] = $content_length; - - $cmd = "$php $pass_options $ini_settings -f \"$test_file\" 2>&1 < $tmp_post"; - - } else { - - $env['REQUEST_METHOD'] = 'GET'; - $env['CONTENT_TYPE'] = ''; - $env['CONTENT_LENGTH'] = ''; - - $cmd = "$php $pass_options $ini_settings -f \"$test_file\" $args 2>&1"; - } - - if ($leak_check) { - $env['USE_ZEND_ALLOC'] = '0'; - - if ($valgrind_version >= 330) { - /* valgrind 3.3.0+ doesn't have --log-file-exactly option */ - $cmd = "valgrind -q --tool=memcheck --trace-children=yes --log-file=$memcheck_filename $cmd"; - } else { - $cmd = "valgrind -q --tool=memcheck --trace-children=yes --log-file-exactly=$memcheck_filename $cmd"; - } - - } else { - $env['USE_ZEND_ALLOC'] = '1'; - } - - if ($DETAILED) echo " -CONTENT_LENGTH = " . $env['CONTENT_LENGTH'] . " -CONTENT_TYPE = " . $env['CONTENT_TYPE'] . " -PATH_TRANSLATED = " . $env['PATH_TRANSLATED'] . " -QUERY_STRING = " . $env['QUERY_STRING'] . " -REDIRECT_STATUS = " . $env['REDIRECT_STATUS'] . " -REQUEST_METHOD = " . $env['REQUEST_METHOD'] . " -SCRIPT_FILENAME = " . $env['SCRIPT_FILENAME'] . " -HTTP_COOKIE = " . $env['HTTP_COOKIE'] . " -COMMAND $cmd -"; - - $out = (binary) system_with_timeout($cmd, $env, isset($section_text['STDIN']) ? $section_text['STDIN'] : null); - - if (array_key_exists('CLEAN', $section_text) && (!$no_clean || $cfg['keep']['clean'])) { - - if (trim($section_text['CLEAN'])) { - show_file_block('clean', $section_text['CLEAN']); - save_text($test_clean, trim($section_text['CLEAN']), $temp_clean); - - if (!$no_clean) { - $clean_params = array(); - settings2array($ini_overwrites, $clean_params); - settings2params($clean_params); - $extra = substr(PHP_OS, 0, 3) !== "WIN" ? - "unset REQUEST_METHOD; unset QUERY_STRING; unset PATH_TRANSLATED; unset SCRIPT_FILENAME; unset REQUEST_METHOD;": ""; - system_with_timeout("$extra $php $pass_options -q $clean_params $test_clean", $env); - } - - if (!$cfg['keep']['clean']) { - @unlink($test_clean); - } - } - } - - @unlink($tmp_post); - - $leaked = false; - $passed = false; - - if ($leak_check) { // leak check - $leaked = filesize($memcheck_filename) > 0; - - if (!$leaked) { - @unlink($memcheck_filename); - } - } - - // Does the output match what is expected? - $output = preg_replace(b"/\r\n/", b"\n", trim($out)); - - /* when using CGI, strip the headers from the output */ - $headers = b""; - - if (isset($old_php) && preg_match(b"/^(.*?)\r?\n\r?\n(.*)/s", $out, $match)) { - $output = trim($match[2]); - $rh = preg_split(b"/[\n\r]+/", $match[1]); - $headers = array(); - - foreach ($rh as $line) { - if (strpos($line, b':') !== false) { - $line = explode(b':', $line, 2); - $headers[trim($line[0])] = trim($line[1]); - } - } - } - - $failed_headers = false; - - if (isset($section_text['EXPECTHEADERS'])) { - $want = array(); - $wanted_headers = array(); - $lines = preg_split(b"/[\n\r]+/", (binary) $section_text['EXPECTHEADERS']); - - foreach($lines as $line) { - if (strpos($line, b':') !== false) { - $line = explode(b':', $line, 2); - $want[trim($line[0])] = trim($line[1]); - $wanted_headers[] = trim($line[0]) . b': ' . trim($line[1]); - } - } - - $org_headers = $headers; - $headers = array(); - $output_headers = array(); - - foreach($want as $k => $v) { - - if (isset($org_headers[$k])) { - $headers = $org_headers[$k]; - $output_headers[] = $k . b': ' . $org_headers[$k]; - } - - if (!isset($org_headers[$k]) || $org_headers[$k] != $v) { - $failed_headers = true; - } - } - - ksort($wanted_headers); - $wanted_headers = join(b"\n", $wanted_headers); - ksort($output_headers); - $output_headers = join(b"\n", $output_headers); - } - - show_file_block('out', $output); - - if (isset($section_text['EXPECTF']) || isset($section_text['EXPECTREGEX'])) { - - if (isset($section_text['EXPECTF'])) { - $wanted = trim($section_text['EXPECTF']); - } else { - $wanted = trim($section_text['EXPECTREGEX']); - } - - show_file_block('exp', $wanted); - $wanted_re = preg_replace(b'/\r\n/', b"\n", $wanted); - - if (isset($section_text['EXPECTF'])) { - - // do preg_quote, but miss out any %r delimited sections - $temp = b""; - $r = b"%r"; - $startOffset = 0; - $length = strlen($wanted_re); - while($startOffset < $length) { - $start = strpos($wanted_re, $r, $startOffset); - if ($start !== false) { - // we have found a start tag - $end = strpos($wanted_re, $r, $start+2); - if ($end === false) { - // unbalanced tag, ignore it. - $end = $start = $length; - } - } else { - // no more %r sections - $start = $end = $length; - } - // quote a non re portion of the string - $temp = $temp . preg_quote(substr($wanted_re, $startOffset, ($start - $startOffset)), b'/'); - // add the re unquoted. - if ($end > $start) { - $temp = $temp . b'(' . substr($wanted_re, $start+2, ($end - $start-2)). b')'; - } - $startOffset = $end + 2; - } - $wanted_re = $temp; - - $wanted_re = str_replace( - array(b'%binary_string_optional%'), - version_compare(PHP_VERSION, '6.0.0-dev') == -1 ? b'string' : b'binary string', - $wanted_re - ); - $wanted_re = str_replace( - array(b'%unicode_string_optional%'), - version_compare(PHP_VERSION, '6.0.0-dev') == -1 ? b'string' : b'Unicode string', - $wanted_re - ); - $wanted_re = str_replace( - array(b'%unicode\|string%', b'%string\|unicode%'), - version_compare(PHP_VERSION, '6.0.0-dev') == -1 ? b'string' : b'unicode', - $wanted_re - ); - $wanted_re = str_replace( - array(b'%u\|b%', b'%b\|u%'), - version_compare(PHP_VERSION, '6.0.0-dev') == -1 ? b'' : b'u', - $wanted_re - ); - // Stick to basics - $wanted_re = str_replace(b'%e', b'\\' . DIRECTORY_SEPARATOR, $wanted_re); - $wanted_re = str_replace(b'%s', b'[^\r\n]+', $wanted_re); - $wanted_re = str_replace(b'%S', b'[^\r\n]*', $wanted_re); - $wanted_re = str_replace(b'%a', b'.+', $wanted_re); - $wanted_re = str_replace(b'%A', b'.*', $wanted_re); - $wanted_re = str_replace(b'%w', b'\s*', $wanted_re); - $wanted_re = str_replace(b'%i', b'[+-]?\d+', $wanted_re); - $wanted_re = str_replace(b'%d', b'\d+', $wanted_re); - $wanted_re = str_replace(b'%x', b'[0-9a-fA-F]+', $wanted_re); - $wanted_re = str_replace(b'%f', b'[+-]?\.?\d+\.?\d*(?:[Ee][+-]?\d+)?', $wanted_re); - $wanted_re = str_replace(b'%c', b'.', $wanted_re); - // %f allows two points "-.0.0" but that is the best *simple* expression - } -/* DEBUG YOUR REGEX HERE - var_dump($wanted_re); - print(str_repeat('=', 80) . "\n"); - var_dump($output); -*/ - if (preg_match(b"/^$wanted_re\$/s", $output)) { - $passed = true; - if (!$cfg['keep']['php']) { - @unlink($test_file); - } - if (isset($old_php)) { - $php = $old_php; - } - - if (!$leaked && !$failed_headers) { - if (isset($section_text['XFAIL'] )) { - $warn = true; - $info = " (warn: XFAIL section but test passes)"; - }else { - show_result("PASS", $tested, $tested_file, '', $temp_filenames); - return 'PASSED'; - } - } - } - - } else { - - $wanted = (binary) trim($section_text['EXPECT']); - $wanted = preg_replace(b'/\r\n/',b"\n", $wanted); - show_file_block('exp', $wanted); - - // compare and leave on success - if (!strcmp($output, $wanted)) { - $passed = true; - - if (!$cfg['keep']['php']) { - @unlink($test_file); - } - - if (isset($old_php)) { - $php = $old_php; - } - - if (!$leaked && !$failed_headers) { - if (isset($section_text['XFAIL'] )) { - $warn = true; - $info = " (warn: XFAIL section but test passes)"; - }else { - show_result("PASS", $tested, $tested_file, '', $temp_filenames); - return 'PASSED'; - } - } - } - - $wanted_re = null; - } - - // Test failed so we need to report details. - if ($failed_headers) { - $passed = false; - $wanted = (binary) $wanted_headers . b"\n--HEADERS--\n" . (binary) $wanted; - $output = (binary) $output_headers . b"\n--HEADERS--\n" . (binary) $output; - - if (isset($wanted_re)) { - $wanted_re = preg_quote($wanted_headers . "\n--HEADERS--\n", '/') . $wanted_re; - } - } - - if ($leaked) { - $restype[] = 'LEAK'; - } - - if ($warn) { - $restype[] = 'WARN'; - } - - if (!$passed) { - if (isset($section_text['XFAIL'])) { - $restype[] = 'XFAIL'; - $info = ' XFAIL REASON: ' . $section_text['XFAIL']; - } else { - $restype[] = 'FAIL'; - } - } - - if (!$passed) { - - // write .exp - if (strpos($log_format, 'E') !== false && file_put_contents($exp_filename, (binary) $wanted, FILE_BINARY) === false) { - error("Cannot create expected test output - $exp_filename"); - } - - // write .out - if (strpos($log_format, 'O') !== false && file_put_contents($output_filename, (binary) $output, FILE_BINARY) === false) { - error("Cannot create test output - $output_filename"); - } - - // write .diff - $diff = generate_diff($wanted, $wanted_re, $output); - if (is_array($IN_REDIRECT)) { - $diff = "# original source file: $shortname\n" . $diff; - } - show_file_block('diff', $diff); - if (strpos($log_format, 'D') !== false && file_put_contents($diff_filename, (binary) $diff, FILE_BINARY) === false) { - error("Cannot create test diff - $diff_filename"); - } - - // write .sh - if (strpos($log_format, 'S') !== false && file_put_contents($sh_filename, b"#!/bin/sh - -{$cmd} -", FILE_BINARY) === false) { - error("Cannot create test shell script - $sh_filename"); - } - chmod($sh_filename, 0755); - - // write .log - if (strpos($log_format, 'L') !== false && file_put_contents($log_filename, b" ----- EXPECTED OUTPUT -$wanted ----- ACTUAL OUTPUT -$output ----- FAILED -", FILE_BINARY) === false) { - error("Cannot create test log - $log_filename"); - error_report($file, $log_filename, $tested); - } - } - - show_result(implode('&', $restype), $tested, $tested_file, $info, $temp_filenames); - - foreach ($restype as $type) { - $PHP_FAILED_TESTS[$type.'ED'][] = array ( - 'name' => $file, - 'test_name' => (is_array($IN_REDIRECT) ? $IN_REDIRECT['via'] : '') . $tested . " [$tested_file]", - 'output' => $output_filename, - 'diff' => $diff_filename, - 'info' => $info, - ); - } - - if (isset($old_php)) { - $php = $old_php; - } - - return $restype[0] . 'ED'; -} - -function comp_line($l1, $l2, $is_reg) -{ - if ($is_reg) { - return preg_match(b'/^'. (binary) $l1 . b'$/s', (binary) $l2); - } else { - return !strcmp((binary) $l1, (binary) $l2); - } -} - -function count_array_diff($ar1, $ar2, $is_reg, $w, $idx1, $idx2, $cnt1, $cnt2, $steps) -{ - $equal = 0; - - while ($idx1 < $cnt1 && $idx2 < $cnt2 && comp_line($ar1[$idx1], $ar2[$idx2], $is_reg)) { - $idx1++; - $idx2++; - $equal++; - $steps--; - } - if (--$steps > 0) { - $eq1 = 0; - $st = $steps / 2; - - for ($ofs1 = $idx1 + 1; $ofs1 < $cnt1 && $st-- > 0; $ofs1++) { - $eq = @count_array_diff($ar1, $ar2, $is_reg, $w, $ofs1, $idx2, $cnt1, $cnt2, $st); - - if ($eq > $eq1) { - $eq1 = $eq; - } - } - - $eq2 = 0; - $st = $steps; - - for ($ofs2 = $idx2 + 1; $ofs2 < $cnt2 && $st-- > 0; $ofs2++) { - $eq = @count_array_diff($ar1, $ar2, $is_reg, $w, $idx1, $ofs2, $cnt1, $cnt2, $st); - if ($eq > $eq2) { - $eq2 = $eq; - } - } - - if ($eq1 > $eq2) { - $equal += $eq1; - } else if ($eq2 > 0) { - $equal += $eq2; - } - } - - return $equal; -} - -function generate_array_diff($ar1, $ar2, $is_reg, $w) -{ - $idx1 = 0; $ofs1 = 0; $cnt1 = @count($ar1); - $idx2 = 0; $ofs2 = 0; $cnt2 = @count($ar2); - $diff = array(); - $old1 = array(); - $old2 = array(); - - while ($idx1 < $cnt1 && $idx2 < $cnt2) { - - if (comp_line($ar1[$idx1], $ar2[$idx2], $is_reg)) { - $idx1++; - $idx2++; - continue; - } else { - - $c1 = @count_array_diff($ar1, $ar2, $is_reg, $w, $idx1+1, $idx2, $cnt1, $cnt2, 10); - $c2 = @count_array_diff($ar1, $ar2, $is_reg, $w, $idx1, $idx2+1, $cnt1, $cnt2, 10); - - if ($c1 > $c2) { - $old1[$idx1] = (binary) sprintf("%03d- ", $idx1+1) . $w[$idx1++]; - $last = 1; - } else if ($c2 > 0) { - $old2[$idx2] = (binary) sprintf("%03d+ ", $idx2+1) . $ar2[$idx2++]; - $last = 2; - } else { - $old1[$idx1] = (binary) sprintf("%03d- ", $idx1+1) . $w[$idx1++]; - $old2[$idx2] = (binary) sprintf("%03d+ ", $idx2+1) . $ar2[$idx2++]; - } - } - } - - reset($old1); $k1 = key($old1); $l1 = -2; - reset($old2); $k2 = key($old2); $l2 = -2; - - while ($k1 !== null || $k2 !== null) { - - if ($k1 == $l1 + 1 || $k2 === null) { - $l1 = $k1; - $diff[] = current($old1); - $k1 = next($old1) ? key($old1) : null; - } else if ($k2 == $l2 + 1 || $k1 === null) { - $l2 = $k2; - $diff[] = current($old2); - $k2 = next($old2) ? key($old2) : null; - } else if ($k1 < $k2) { - $l1 = $k1; - $diff[] = current($old1); - $k1 = next($old1) ? key($old1) : null; - } else { - $l2 = $k2; - $diff[] = current($old2); - $k2 = next($old2) ? key($old2) : null; - } - } - - while ($idx1 < $cnt1) { - $diff[] = (binary) sprintf("%03d- ", $idx1 + 1) . $w[$idx1++]; - } - - while ($idx2 < $cnt2) { - $diff[] = (binary) sprintf("%03d+ ", $idx2 + 1) . $ar2[$idx2++]; - } - - return $diff; -} - -function generate_diff($wanted, $wanted_re, $output) -{ - $w = explode(b"\n", $wanted); - $o = explode(b"\n", $output); - $r = is_null($wanted_re) ? $w : explode(b"\n", $wanted_re); - $diff = generate_array_diff($r, $o, !is_null($wanted_re), $w); - - return implode(b"\r\n", $diff); -} - -function error($message) -{ - echo "ERROR: {$message}\n"; - exit(1); -} - -function settings2array($settings, &$ini_settings) -{ - foreach($settings as $setting) { - - if (strpos($setting, '=') !== false) { - $setting = explode("=", $setting, 2); - $name = trim($setting[0]); - $value = trim($setting[1]); - - if ($name == 'extension') { - - if (!isset($ini_settings[$name])) { - $ini_settings[$name] = array(); - } - - $ini_settings[$name][] = $value; - - } else { - $ini_settings[$name] = $value; - } - } - } -} - -function settings2params(&$ini_settings) -{ - $settings = ''; - - foreach($ini_settings as $name => $value) { - - if (is_array($value)) { - foreach($value as $val) { - $val = addslashes($val); - $settings .= " -d \"$name=$val\""; - } - } else { - if (substr(PHP_OS, 0, 3) == "WIN" && !empty($value) && $value{0} == '"') { - $len = strlen($value); - - if ($value{$len - 1} == '"') { - $value{0} = "'"; - $value{$len - 1} = "'"; - } - } else { - $value = addslashes($value); - } - - $settings .= " -d \"$name=$value\""; - } - } - - $ini_settings = $settings; -} - -function compute_summary() -{ - global $n_total, $test_results, $ignored_by_ext, $sum_results, $percent_results; - - $n_total = count($test_results); - $n_total += $ignored_by_ext; - $sum_results = array( - 'PASSED' => 0, - 'WARNED' => 0, - 'SKIPPED' => 0, - 'FAILED' => 0, - 'BORKED' => 0, - 'LEAKED' => 0, - 'XFAILED' => 0 - ); - - foreach ($test_results as $v) { - $sum_results[$v]++; - } - - $sum_results['SKIPPED'] += $ignored_by_ext; - $percent_results = array(); - - while (list($v, $n) = each($sum_results)) { - $percent_results[$v] = (100.0 * $n) / $n_total; - } -} - -function get_summary($show_ext_summary, $show_html) -{ - global $exts_skipped, $exts_tested, $n_total, $sum_results, $percent_results, $end_time, $start_time, $failed_test_summary, $PHP_FAILED_TESTS, $leak_check; - - $x_total = $n_total - $sum_results['SKIPPED'] - $sum_results['BORKED']; - - if ($x_total) { - $x_warned = (100.0 * $sum_results['WARNED']) / $x_total; - $x_failed = (100.0 * $sum_results['FAILED']) / $x_total; - $x_xfailed = (100.0 * $sum_results['XFAILED']) / $x_total; - $x_leaked = (100.0 * $sum_results['LEAKED']) / $x_total; - $x_passed = (100.0 * $sum_results['PASSED']) / $x_total; - } else { - $x_warned = $x_failed = $x_passed = $x_leaked = $x_xfailed = 0; - } - - $summary = ''; - - if ($show_html) { - $summary .= "
    \n";
    -	}
    -
    -	if ($show_ext_summary) {
    -		$summary .= '
    -=====================================================================
    -TEST RESULT SUMMARY
    ----------------------------------------------------------------------
    -Exts skipped    : ' . sprintf('%4d', $exts_skipped) . '
    -Exts tested     : ' . sprintf('%4d', $exts_tested) . '
    ----------------------------------------------------------------------
    -';
    -	}
    -
    -	$summary .= '
    -Number of tests : ' . sprintf('%4d', $n_total) . '          ' . sprintf('%8d', $x_total);
    -
    -	if ($sum_results['BORKED']) {
    -		$summary .= '
    -Tests borked    : ' . sprintf('%4d (%5.1f%%)', $sum_results['BORKED'], $percent_results['BORKED']) . ' --------';
    -	}
    -
    -	$summary .= '
    -Tests skipped   : ' . sprintf('%4d (%5.1f%%)', $sum_results['SKIPPED'], $percent_results['SKIPPED']) . ' --------
    -Tests warned    : ' . sprintf('%4d (%5.1f%%)', $sum_results['WARNED'], $percent_results['WARNED']) . ' ' . sprintf('(%5.1f%%)', $x_warned) . '
    -Tests failed    : ' . sprintf('%4d (%5.1f%%)', $sum_results['FAILED'], $percent_results['FAILED']) . ' ' . sprintf('(%5.1f%%)', $x_failed) . '
    -Expected fail   : ' . sprintf('%4d (%5.1f%%)', $sum_results['XFAILED'], $percent_results['XFAILED']) . ' ' . sprintf('(%5.1f%%)', $x_xfailed);
    -
    -	if ($leak_check) {
    -		$summary .= '
    -Tests leaked    : ' . sprintf('%4d (%5.1f%%)', $sum_results['LEAKED'], $percent_results['LEAKED']) . ' ' . sprintf('(%5.1f%%)', $x_leaked);
    -	}
    -
    -	$summary .= '
    -Tests passed    : ' . sprintf('%4d (%5.1f%%)', $sum_results['PASSED'], $percent_results['PASSED']) . ' ' . sprintf('(%5.1f%%)', $x_passed) . '
    ----------------------------------------------------------------------
    -Time taken      : ' . sprintf('%4d seconds', $end_time - $start_time) . '
    -=====================================================================
    -';
    -	$failed_test_summary = '';
    -
    -	if (count($PHP_FAILED_TESTS['BORKED'])) {
    -		$failed_test_summary .= '
    -=====================================================================
    -BORKED TEST SUMMARY
    ----------------------------------------------------------------------
    -';
    -		foreach ($PHP_FAILED_TESTS['BORKED'] as $failed_test_data) {
    -			$failed_test_summary .= $failed_test_data['info'] . "\n";
    -		}
    -
    -		$failed_test_summary .=  "=====================================================================\n";
    -	}
    -
    -	if (count($PHP_FAILED_TESTS['FAILED'])) {
    -		$failed_test_summary .= '
    -=====================================================================
    -FAILED TEST SUMMARY
    ----------------------------------------------------------------------
    -';
    -		foreach ($PHP_FAILED_TESTS['FAILED'] as $failed_test_data) {
    -			$failed_test_summary .= $failed_test_data['test_name'] . $failed_test_data['info'] . "\n";
    -		}
    -		$failed_test_summary .=  "=====================================================================\n";
    -	}
    -	if (count($PHP_FAILED_TESTS['XFAILED'])) {
    -		$failed_test_summary .= '
    -=====================================================================
    -EXPECTED FAILED TEST SUMMARY
    ----------------------------------------------------------------------
    -';
    -		foreach ($PHP_FAILED_TESTS['XFAILED'] as $failed_test_data) {
    -			$failed_test_summary .= $failed_test_data['test_name'] . $failed_test_data['info'] . "\n";
    -		}
    -		$failed_test_summary .=  "=====================================================================\n";
    -	}
    -
    -	if (count($PHP_FAILED_TESTS['WARNED'])) {
    -		$failed_test_summary .= '
    -=====================================================================
    -WARNED TEST SUMMARY
    ----------------------------------------------------------------------
    -';
    -		foreach ($PHP_FAILED_TESTS['WARNED'] as $failed_test_data) {
    -			$failed_test_summary .= $failed_test_data['test_name'] . $failed_test_data['info'] . "\n";
    -		}
    -
    -		$failed_test_summary .=  "=====================================================================\n";
    -	}
    -
    -	if (count($PHP_FAILED_TESTS['LEAKED'])) {
    -		$failed_test_summary .= '
    -=====================================================================
    -LEAKED TEST SUMMARY
    ----------------------------------------------------------------------
    -';
    -		foreach ($PHP_FAILED_TESTS['LEAKED'] as $failed_test_data) {
    -			$failed_test_summary .= $failed_test_data['test_name'] . $failed_test_data['info'] . "\n";
    -		}
    -
    -		$failed_test_summary .=  "=====================================================================\n";
    -	}
    -
    -	if ($failed_test_summary && !getenv('NO_PHPTEST_SUMMARY')) {
    -		$summary .= $failed_test_summary;
    -	}
    -
    -	if ($show_html) {
    -		$summary .= "
    "; - } - - return $summary; -} - -function show_start($start_time) -{ - global $html_output, $html_file; - - if ($html_output) { - fwrite($html_file, "

    Time Start: " . date('Y-m-d H:i:s', $start_time) . "

    \n"); - fwrite($html_file, "\n"); - } - - echo "TIME START " . date('Y-m-d H:i:s', $start_time) . "\n=====================================================================\n"; -} - -function show_end($end_time) -{ - global $html_output, $html_file; - - if ($html_output) { - fwrite($html_file, "
    \n"); - fwrite($html_file, "

    Time End: " . date('Y-m-d H:i:s', $end_time) . "

    \n"); - } - - echo "=====================================================================\nTIME END " . date('Y-m-d H:i:s', $end_time) . "\n"; -} - -function show_summary() -{ - global $html_output, $html_file; - - if ($html_output) { - fwrite($html_file, "
    \n" . get_summary(true, true)); - } - - echo get_summary(true, false); -} - -function show_redirect_start($tests, $tested, $tested_file) -{ - global $html_output, $html_file; - - if ($html_output) { - fwrite($html_file, "---> $tests ($tested [$tested_file]) begin\n"); - } - - echo "---> $tests ($tested [$tested_file]) begin\n"; -} - -function show_redirect_ends($tests, $tested, $tested_file) -{ - global $html_output, $html_file; - - if ($html_output) { - fwrite($html_file, "---> $tests ($tested [$tested_file]) done\n"); - } - - echo "---> $tests ($tested [$tested_file]) done\n"; -} - -function show_test($test_idx, $shortname) -{ - global $test_cnt; - - echo "TEST $test_idx/$test_cnt [$shortname]\r"; - flush(); -} - -function show_result($result, $tested, $tested_file, $extra = '', $temp_filenames = null) -{ - global $html_output, $html_file, $temp_target, $temp_urlbase; - - echo "$result $tested [$tested_file] $extra\n"; - - if ($html_output) { - - if (isset($temp_filenames['file']) && file_exists($temp_filenames['file'])) { - $url = str_replace($temp_target, $temp_urlbase, $temp_filenames['file']); - $tested = "$tested"; - } - - if (isset($temp_filenames['skip']) && file_exists($temp_filenames['skip'])) { - - if (empty($extra)) { - $extra = "skipif"; - } - - $url = str_replace($temp_target, $temp_urlbase, $temp_filenames['skip']); - $extra = "$extra"; - - } else if (empty($extra)) { - $extra = " "; - } - - if (isset($temp_filenames['diff']) && file_exists($temp_filenames['diff'])) { - $url = str_replace($temp_target, $temp_urlbase, $temp_filenames['diff']); - $diff = "diff"; - } else { - $diff = " "; - } - - if (isset($temp_filenames['mem']) && file_exists($temp_filenames['mem'])) { - $url = str_replace($temp_target, $temp_urlbase, $temp_filenames['mem']); - $mem = "leaks"; - } else { - $mem = " "; - } - - fwrite($html_file, - "" . - "$result" . - "$tested" . - "$extra" . - "$diff" . - "$mem" . - "\n"); - } -} - -/* - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - * vim: noet sw=4 ts=4 - */ -?> diff --git a/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/escape/Foo.tpl.php b/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/escape/Foo.tpl.php deleted file mode 100644 index 48c5e52..0000000 --- a/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/escape/Foo.tpl.php +++ /dev/null @@ -1,3 +0,0 @@ -var1; -?> \ No newline at end of file diff --git a/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/escape/echostring.tpl.php b/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/escape/echostring.tpl.php deleted file mode 100644 index 7833ffb..0000000 --- a/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/escape/echostring.tpl.php +++ /dev/null @@ -1,3 +0,0 @@ - \ No newline at end of file diff --git a/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/escape/object.phpt b/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/escape/object.phpt deleted file mode 100644 index a31ca9f..0000000 --- a/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/escape/object.phpt +++ /dev/null @@ -1,24 +0,0 @@ ---TEST-- -\PEAR2\Templates\Savant\Main::addEscaoe() object variable escaping test ---FILE-- -setEscape('htmlspecialchars'); - -class Foo -{ - public $var1; -} - -$object = new Foo(); -$object->var1 = '

    '; - -$test->assertEquals(htmlspecialchars($object->var1), $savant->render($object), 'render object with variable escaping'); - -$test->assertEquals($object->var1, $savant->render($object, 'raw.tpl.php'), 'render object with raw variable access'); -?> -===DONE=== ---EXPECT-- -===DONE=== \ No newline at end of file diff --git a/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/escape/raw.tpl.php b/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/escape/raw.tpl.php deleted file mode 100644 index d020c83..0000000 --- a/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/escape/raw.tpl.php +++ /dev/null @@ -1,3 +0,0 @@ -getRaw('var1'); -?> \ No newline at end of file diff --git a/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/escape/string.phpt b/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/escape/string.phpt deleted file mode 100644 index e5e870d..0000000 --- a/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/escape/string.phpt +++ /dev/null @@ -1,19 +0,0 @@ ---TEST-- -\PEAR2\Templates\Savant\Main::render() string with addEscape() test ---FILE-- -setEscape('htmlspecialchars'); - -$string = 'test'; -$test->assertEquals($string, $savant->escape($string), 'render'); - -$string = '

    '; -$test->assertEquals(htmlspecialchars($string), $savant->escape($string), 'render string with special chars'); - -?> -===DONE=== ---EXPECT-- -===DONE=== \ No newline at end of file diff --git a/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/globals/basic.phpt b/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/globals/basic.phpt deleted file mode 100644 index 7394263..0000000 --- a/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/globals/basic.phpt +++ /dev/null @@ -1,15 +0,0 @@ ---TEST-- -\PEAR2\Templates\Savant\Main::addGlobal() basic test ---FILE-- -addGlobal('foo', true); - -echo $savvy->render(null, 'basic.tpl.php'); - -?> ---EXPECT-- -===DONE=== \ No newline at end of file diff --git a/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/globals/basic.tpl.php b/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/globals/basic.tpl.php deleted file mode 100644 index 5df37bd..0000000 --- a/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/globals/basic.tpl.php +++ /dev/null @@ -1,6 +0,0 @@ - \ No newline at end of file diff --git a/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/globals/escape.arrays.phpt b/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/globals/escape.arrays.phpt deleted file mode 100644 index 8a19b99..0000000 --- a/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/globals/escape.arrays.phpt +++ /dev/null @@ -1,23 +0,0 @@ ---TEST-- -\PEAR2\Templates\Savant\Main::addGlobal() Escape added global array ---FILE-- -setEscape('htmlspecialchars'); - -$unescaped = array( - 'Blah' -); - -$savvy->addGlobal('foo', $unescaped); - -$escaped = $savvy->getGlobals(); - -echo $escaped['foo'][0]; - -?> ---EXPECT-- -<a href="Blah">Blah</a> \ No newline at end of file diff --git a/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/globals/escape.nestedarrays.phpt b/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/globals/escape.nestedarrays.phpt deleted file mode 100644 index 84b41c2..0000000 --- a/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/globals/escape.nestedarrays.phpt +++ /dev/null @@ -1,23 +0,0 @@ ---TEST-- -\PEAR2\Templates\Savant\Main::addGlobal() Escape added global array ---FILE-- -setEscape('htmlspecialchars'); - -$unescaped = array( - 'Blah' -); - -$savvy->addGlobal('foo', array($unescaped)); - -$escaped = $savvy->getGlobals(); - -echo $escaped['foo'][0][0]; - -?> ---EXPECT-- -<a href="Blah">Blah</a> \ No newline at end of file diff --git a/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/globals/escape.phpt b/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/globals/escape.phpt deleted file mode 100644 index facee27..0000000 --- a/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/globals/escape.phpt +++ /dev/null @@ -1,21 +0,0 @@ ---TEST-- -\PEAR2\Templates\Savant\Main::addGlobal() Escape added globals test ---FILE-- -setEscape('myEscape'); - -$savvy->addGlobal('foo', 'lalalala'); - -?> ---EXPECT-- -===DONE=== \ No newline at end of file diff --git a/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/render/Foo.tpl.php b/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/render/Foo.tpl.php deleted file mode 100644 index 83c9b5f..0000000 --- a/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/render/Foo.tpl.php +++ /dev/null @@ -1,2 +0,0 @@ - -var1 ?> \ No newline at end of file diff --git a/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/render/array.phpt b/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/render/array.phpt deleted file mode 100644 index 4ccaef0..0000000 --- a/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/render/array.phpt +++ /dev/null @@ -1,18 +0,0 @@ ---TEST-- -\PEAR2\Templates\Savant\Main::render() array test ---FILE-- -assertEquals('123', $savant->render($array), 'render array'); - -$array = array(1,2,3); -$test->assertEquals('123', $savant->render($array, 'echostring.tpl.php'), 'render array through custom template'); - -?> -===DONE=== ---EXPECT-- -===DONE=== \ No newline at end of file diff --git a/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/render/echostring.tpl.php b/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/render/echostring.tpl.php deleted file mode 100644 index 8bad128..0000000 --- a/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/render/echostring.tpl.php +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/render/fastcompile.phpt b/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/render/fastcompile.phpt deleted file mode 100644 index f754aa3..0000000 --- a/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/render/fastcompile.phpt +++ /dev/null @@ -1,49 +0,0 @@ ---TEST-- -\PEAR2\Templates\Savant\Main::render() fast compiler test ---FILE-- -var1 = ' is my class'; - -$savant->setEscape(); -mkdir(__DIR__ . '/compiled'); -$compiler = new PEAR2\Templates\Savant\BasicFastCompiler(__DIR__ . DIRECTORY_SEPARATOR . 'compiled'); -$savant->setCompiler($compiler); - -$test->assertEquals(__DIR__ . DIRECTORY_SEPARATOR . 'compiled' . DIRECTORY_SEPARATOR . - md5('.' . DIRECTORY_SEPARATOR . 'Foo.tpl.php'), $savant->template('Foo.tpl.php'), - 'verify compiler is called'); -$test->assertEquals("var1 . '';", file_get_contents(__DIR__ . DIRECTORY_SEPARATOR . 'compiled' . DIRECTORY_SEPARATOR . - md5('.' . DIRECTORY_SEPARATOR . 'Foo.tpl.php')), 'compiled template'); - -$test->assertEquals('Foo is my class', $savant->render($object), 'render object'); - -$test->assertEquals('test', $savant->render($object, 'echostring.tpl.php'), 'render object with custom template'); - -?> -===DONE=== ---CLEAN-- - ---EXPECT-- -===DONE=== \ No newline at end of file diff --git a/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/render/object.phpt b/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/render/object.phpt deleted file mode 100644 index c63ff6a..0000000 --- a/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/render/object.phpt +++ /dev/null @@ -1,30 +0,0 @@ ---TEST-- -\PEAR2\Templates\Savant\Main::render() object test ---FILE-- -var1 = ' is my class'; - -$savant->setEscape(); - -$test->assertEquals('Foo is my class', $savant->render($object), 'render object'); - -$test->assertEquals('test', $savant->render($object, 'echostring.tpl.php'), 'render object with custom template'); - -?> -===DONE=== ---EXPECT-- -===DONE=== \ No newline at end of file diff --git a/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/render/string.phpt b/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/render/string.phpt deleted file mode 100644 index 2349112..0000000 --- a/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/render/string.phpt +++ /dev/null @@ -1,24 +0,0 @@ ---TEST-- -\PEAR2\Templates\Savant\Main::render() string test ---FILE-- -setEscape('htmlspecialchars'); - -$string = 'test'; -$test->assertEquals($string, $savant->render($string), 'render'); - -$string = '

    '; -$test->assertEquals(htmlspecialchars($string), $savant->render($string), 'render string with special chars'); - -$string = 'test'; -$test->assertEquals($string, $savant->render($string, 'echostring.tpl.php'), 'render string through template'); - -$string = '

    '; -$test->assertEquals(htmlspecialchars($string), $savant->render($string, 'echostring.tpl.php'), 'render string with special chars through template'); -?> -===DONE=== ---EXPECT-- -===DONE=== \ No newline at end of file diff --git a/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/test_framework.php.inc b/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/test_framework.php.inc deleted file mode 100644 index 3bcade3..0000000 --- a/vendor/tests/pear2.php.net/PEAR2_Templates_Savant/test_framework.php.inc +++ /dev/null @@ -1,210 +0,0 @@ -_diffonly = $diffonly; - $this->_errors = array(); - } - - function assertTrue($test, $message) - { - if ($test === true) { - return true; - } - $this->_failTest(debug_backtrace(), $message); - echo "Unexpected non-true value: \n"; - var_export($test); - echo "\n'$message'\n"; - return false; - } - - function assertIsa($control, $test, $message) - { - if (is_a($test, $control)) { - return true; - } - $this->_failTest(debug_backtrace(), $message); - echo "Unexpected non-$control object: \n"; - var_export($test); - echo "\n'$message'\n"; - return false; - } - - function assertNull($test, $message) - { - if ($test === null) { - return true; - } - $this->_failTest(debug_backtrace(), $message); - echo "Unexpected non-null value: \n"; - var_export($test); - echo "\n'$message'\n"; - return false; - } - - function assertNotNull($test, $message) - { - if ($test !== null) { - return true; - } - $this->_failTest(debug_backtrace(), $message); - echo "Unexpected null: \n"; - var_export($test); - echo "\n'$message'\n"; - return false; - } - - function assertSame($test, $test1, $message) - { - if ($test === $test1) { - return true; - } - $this->_failTest(debug_backtrace(), $message); - echo "Unexpectedly two vars are not the same thing: \n"; - echo "\n'$message'\n"; - return false; - } - - function assertNotSame($test, $test1, $message) - { - if ($test !== $test1) { - return true; - } - $this->_failTest(debug_backtrace(), $message); - echo "Unexpectedly two vars are the same thing: \n"; - echo "\n'$message'\n"; - return false; - } - - function assertFalse($test, $message) - { - if ($test === false) { - return true; - } - $this->_failTest(debug_backtrace(), $message); - echo "Unexpected non-false value: \n"; - var_export($test); - echo "\n'$message'\n"; - return false; - } - - function assertNotTrue($test, $message) - { - if (!$test) { - return true; - } - $this->_failTest(debug_backtrace(), $message); - echo "Unexpected loose true value: \n"; - var_export($test); - echo "\n'$message'\n"; - return false; - } - - function assertNotFalse($test, $message) - { - if ($test) { - return true; - } - $this->_failTest(debug_backtrace(), $message); - echo "Unexpected loose false value: \n"; - var_export($test); - echo "\n'$message'\n"; - return false; - } - - function assertRegex($regex, $test, $message) - { - if (!preg_match($regex, $test)) { - $this->_failTest(debug_backtrace(), $message); - echo "Expecting:\nText Matching Regular Expression $regex\n"; - echo "\nReceived:\n"; - var_export($test); - echo "\n"; - return false; - } - return true; - } - - function assertException($exception, $class, $emessage, $message) - { - if (!($exception instanceof $class)) { - $this->_failTest(debug_backtrace(), $message); - echo "Expecting class $class, got ", get_class($exception); - } - $this->assertEquals($emessage, $exception->getMessage(), $message, debug_backtrace()); - } - - function assertEquals($control, $test, $message, $trace = null) - { - if (!$trace) { - $trace = debug_backtrace(); - } - if (str_replace(array("\r", "\n"), array('', ''), - var_export($control, true)) != str_replace(array("\r", "\n"), array('', ''), - var_export($test, true))) { - $this->_failTest($trace, $message); - if (class_exists('Text_Diff')) { - echo "Diff of expecting/received:\n"; - $diff = new Text_Diff( - explode("\n", var_export($control, true)), - explode("\n", var_export($test, true))); - - // Output the diff in unified format. - $renderer = new Text_Diff_Renderer_unified(); - echo $renderer->render($diff); - if ($this->_diffonly) { - return false; - } - } - echo "Expecting:\n"; - var_export($control); - echo "\nReceived:\n"; - var_export($test); - echo "\n"; - return false; - } - return true; - } - - function assertFileExists($fname, $message) - { - if (!@file_exists($fname)) { - $this->_failTest(debug_backtrace(), $message); - echo "File '$fname' does not exist, and should\n"; - return false; - } - return true; - } - - function assertFileNotExists($fname, $message) - { - if (@file_exists($fname)) { - $this->_failTest(debug_backtrace(), $message); - echo "File '$fname' exists, and should not\n"; - return false; - } - return true; - } - - function _failTest($trace, $message) - { - echo 'Test Failure: "' . $message . "\"\n in " . $trace[0]['file'] . ' line ' . - $trace[0]['line'] . "\n"; - } - - function showAll() - { - $this->_diffonly = false; - } -} -$test = new PEAR2_PHPT(); -?>