home *** CD-ROM | disk | FTP | other *** search
/ Enter 2004 June / ENTER.ISO / files / xampp-win32-1.4.5-installer.exe / xampp / PEAR_PackageFileManager_XMLOutput_TestCase_1.php < prev    next >
Encoding:
PHP Script  |  2004-03-24  |  6.1 KB  |  166 lines

  1. <?php
  2.  
  3. /**
  4.  * API Unit tests for PEAR_PackageFileManager package.
  5.  * 
  6.  * @version    $Id: PEAR_PackageFileManager_XMLOutput_TestCase_1.php,v 1.1 2004/02/07 18:04:01 cellog Exp $
  7.  * @author     Laurent Laville <pear@laurent-laville.org> portions from HTML_CSS
  8.  * @author     Greg Beaver
  9.  * @package    PEAR_PackageFileManager
  10.  */
  11.  
  12. /**
  13.  * @package PEAR_PackageFileManager
  14.  */
  15.  
  16. class PEAR_PackageFileManager_XMLOutput_TestCase_1 extends PHPUnit_TestCase
  17. {
  18.     /**
  19.      * A PEAR_PackageFileManager object
  20.      * @var        object
  21.      */
  22.     var $packagexml;
  23.  
  24.     function PEAR_PackageFileManager_CVS_TestCase_general($name)
  25.     {
  26.         $this->PHPUnit_TestCase($name);
  27.     }
  28.  
  29.     function setUp()
  30.     {
  31.         error_reporting(E_ALL);
  32.         $this->errorOccured = false;
  33.         set_error_handler(array(&$this, 'errorHandler'));
  34.  
  35.         $a = false;
  36.         $this->packagexml = new PEAR_PackageFileManager_XMLOutput;
  37.         $this->errorThrown = false;
  38.     }
  39.  
  40.     function tearDown()
  41.     {
  42.         unset($this->packagexml);
  43.     }
  44.  
  45.     function _stripWhitespace($str)
  46.     {
  47.         return preg_replace('/\\s+/', '', $str);
  48.     }
  49.  
  50.     function _methodExists($name) 
  51.     {
  52.         if (in_array(strtolower($name), get_class_methods($this->packagexml))) {
  53.             return true;
  54.         }
  55.         $this->assertTrue(false, 'method '. $name . ' not implemented in ' . get_class($this->packagexml));
  56.         return false;
  57.     }
  58.  
  59.     function errorHandler($errno, $errstr, $errfile, $errline) {
  60.         if (error_reporting() == 0) {
  61.             return;
  62.         }
  63.         //die("$errstr in $errfile at line $errline: $errstr");
  64.         $this->errorOccured = true;
  65.         $this->assertTrue(false, "$errstr at line $errline, $errfile");
  66.     }
  67.     
  68.     function test_valid1()
  69.     {
  70.         if (!$this->_methodExists('_doFileList')) {
  71.             return;
  72.         }
  73.         $arr = 
  74.         array(
  75.             '/' =>
  76.             array(
  77.                 'baseinstalldir' => 'frunk',
  78.                 '##files' =>
  79.                     array(
  80.                         'tired' => array('role' => 'script'),
  81.                         'first' =>
  82.                             array(
  83.                                 '##files' =>
  84.                                     array(
  85.                                         'first.php' =>
  86.                                             array(
  87.                                                 'role' => 'php',
  88.                                                 'install-as' => 'flop',
  89.                                                 'platform' => 'windows',
  90.                                                 'md5sum' => '25',
  91.                                                 'replacements' =>
  92.                                                     array(
  93.                                                         array(
  94.                                                             'from' => 'blah',
  95.                                                             'to' => 'version',
  96.                                                             'type' => 'package-info'
  97.                                                         )
  98.                                                     ),
  99.                                             ),
  100.                                         'second.dat' =>
  101.                                             array(
  102.                                                 'role' => 'data',
  103.                                             ),
  104.                                         'another' =>
  105.                                             array(
  106.                                                 '##files' =>
  107.                                                     array(
  108.                                                         'third' =>
  109.                                                             array(
  110.                                                                 'role' => 'test'
  111.                                                             )
  112.                                                     )
  113.                                             )
  114.                                     ),
  115.                             ),
  116.                         'second' =>
  117.                             array(
  118.                                 '##files' =>
  119.                                     array(
  120.                                     'nested' =>
  121.                                         array(
  122.                                             '##files' =>
  123.                                                 array(
  124.                                                     'another' => array(
  125.                                                     'baseinstalldir' => '/')
  126.                                                 )
  127.                                         )
  128.                                     )
  129.                             ),
  130.                         // directory named files
  131.                         'files' =>
  132.                             array(
  133.                                 '##files' =>
  134.                                     array(
  135.                                         'wow' => array('role' => 'doc')
  136.                                     )
  137.                             ),
  138.                     )
  139.             )
  140.         );
  141.         $this->assertEquals(array(str_replace("\r", '', '      <dir baseinstalldir="frunk" name="/">
  142.        <file role="script" name="tired"/>
  143.        <dir name="first">
  144.         <file role="php" md5sum="25" platform="windows" install-as="flop" name="first.php">
  145.           <replace from="blah" to="version" type="package-info"/>
  146.         </file>
  147.         <file role="data" name="second.dat"/>
  148.         <dir name="another">
  149.          <file role="test" name="third"/>
  150.         </dir> <!-- first/another -->
  151.        </dir> <!-- first -->
  152.        <dir name="second">
  153.         <dir name="nested">
  154.          <file baseinstalldir="/" name="another"/>
  155.         </dir> <!-- second/nested -->
  156.        </dir> <!-- second -->
  157.        <dir name="files">
  158.         <file role="doc" name="wow"/>
  159.        </dir> <!-- files -->
  160.       </dir> <!-- / -->
  161. ')), array($this->packagexml->_doFileList('', $arr, '/')));
  162.     }
  163. }
  164.  
  165. ?>
  166.