--- /dev/null
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+ <!DOCTYPE package SYSTEM "http://pear.php.net/dtd/package-1.0">
+ <package version="1.0">
+ <name>pkg1</name>
+ <summary>required test for PEAR_Installer</summary>
+ <description>
+ fake package
+ </description>
+ <license>PHP License</license>
+ <maintainers>
+ <maintainer>
+ <user>fakeuser</user>
+ <name>Joe Shmoe</name>
+ <email>nobody@example.com</email>
+ <role>lead</role>
+ </maintainer>
+ </maintainers>
+ <release>
+ <version>1.1</version>
+ <date>2003-09-09</date>
+ <state>stable</state>
+ <notes>
+ required dependency test
+ </notes>
+ <deps>
+ <dep type="pkg" version="1.0" rel="ge">pkg2</dep>
+ </deps>
+ <filelist>
+ <dir name="/" baseinstalldir="grob" role="php">
+ <file>zoorb.php</file>
+ <dir name="goompness" role="php">
+ <file>oggbrzitzkee.php</file>
+ <file>Mopreeb.php</file>
+ </dir>
+ </dir>
+ </filelist>
+ </release>
+ </package>
--- /dev/null
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+ <!DOCTYPE package SYSTEM "http://pear.php.net/dtd/package-1.0">
+ <package version="1.0">
+ <name>pkg2</name>
+ <summary>required test for PEAR_Installer</summary>
+ <description>
+ fake package
+ </description>
+ <license>PHP License</license>
+ <maintainers>
+ <maintainer>
+ <user>fakeuser</user>
+ <name>Joe Shmoe</name>
+ <email>nobody@example.com</email>
+ <role>lead</role>
+ </maintainer>
+ </maintainers>
+ <release>
+ <version>1.1</version>
+ <date>2003-09-09</date>
+ <state>stable</state>
+ <notes>
+ required dependency test
+ </notes>
+ <deps>
+ <dep type="pkg" version="1.0" rel="ge">pkg3</dep>
+ <dep type="php" version="1.0" rel="ge" />
+ </deps>
+ <filelist>
+ <dir name="/" baseinstalldir="grob" role="php">
+ <file>zoorb.php</file>
+ <dir name="goompness" role="php">
+ <file>oggbrzitzkee.php</file>
+ <file>Mopreeb.php</file>
+ </dir>
+ </dir>
+ </filelist>
+ </release>
+ </package>
--- /dev/null
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+ <!DOCTYPE package SYSTEM "http://pear.php.net/dtd/package-1.0">
+ <package version="1.0">
+ <name>pkg3</name>
+ <summary>required test for PEAR_Installer</summary>
+ <description>
+ fake package
+ </description>
+ <license>PHP License</license>
+ <maintainers>
+ <maintainer>
+ <user>fakeuser</user>
+ <name>Joe Shmoe</name>
+ <email>nobody@example.com</email>
+ <role>lead</role>
+ </maintainer>
+ </maintainers>
+ <release>
+ <version>1.1</version>
+ <date>2003-09-09</date>
+ <state>stable</state>
+ <notes>
+ required dependency test
+ </notes>
+ <deps>
+ <dep type="pkg" version="1.0" rel="ge">pkg4</dep>
+ <dep type="php" version="1.0" rel="ge">pkg5</dep>
+ </deps>
+ <filelist>
+ <dir name="/" baseinstalldir="grob" role="php">
+ <file>zoorb.php</file>
+ <dir name="goompness" role="php">
+ <file>oggbrzitzkee.php</file>
+ <file>Mopreeb.php</file>
+ </dir>
+ </dir>
+ </filelist>
+ </release>
+ </package>
--- /dev/null
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+ <!DOCTYPE package SYSTEM "http://pear.php.net/dtd/package-1.0">
+ <package version="1.0">
+ <name>pkg4</name>
+ <summary>required test for PEAR_Installer</summary>
+ <description>
+ fake package
+ </description>
+ <license>PHP License</license>
+ <maintainers>
+ <maintainer>
+ <user>fakeuser</user>
+ <name>Joe Shmoe</name>
+ <email>nobody@example.com</email>
+ <role>lead</role>
+ </maintainer>
+ </maintainers>
+ <release>
+ <version>1.1</version>
+ <date>2003-09-09</date>
+ <state>stable</state>
+ <notes>
+ required dependency test
+ </notes>
+ <deps>
+ <dep type="pkg" version="1.0" rel="ge">pkg6</dep>
+ </deps>
+ <filelist>
+ <dir name="/" baseinstalldir="grob" role="php">
+ <file>zoorb.php</file>
+ <dir name="goompness" role="php">
+ <file>oggbrzitzkee.php</file>
+ <file>Mopreeb.php</file>
+ </dir>
+ </dir>
+ </filelist>
+ </release>
+ </package>
--- /dev/null
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+ <!DOCTYPE package SYSTEM "http://pear.php.net/dtd/package-1.0">
+ <package version="1.0">
+ <name>pkg5</name>
+ <summary>required test for PEAR_Installer</summary>
+ <description>
+ fake package
+ </description>
+ <license>PHP License</license>
+ <maintainers>
+ <maintainer>
+ <user>fakeuser</user>
+ <name>Joe Shmoe</name>
+ <email>nobody@example.com</email>
+ <role>lead</role>
+ </maintainer>
+ </maintainers>
+ <release>
+ <version>1.1</version>
+ <date>2003-09-09</date>
+ <state>stable</state>
+ <notes>
+ required dependency test
+ </notes>
+ <deps>
+ <dep type="pkg" version="1.0" rel="ge">pkg6</dep>
+ </deps>
+ <filelist>
+ <dir name="/" baseinstalldir="grob" role="php">
+ <file>zoorb.php</file>
+ <dir name="goompness" role="php">
+ <file>oggbrzitzkee.php</file>
+ <file>Mopreeb.php</file>
+ </dir>
+ </dir>
+ </filelist>
+ </release>
+ </package>
--- /dev/null
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+ <!DOCTYPE package SYSTEM "http://pear.php.net/dtd/package-1.0">
+ <package version="1.0">
+ <name>pkg6</name>
+ <summary>required test for PEAR_Installer</summary>
+ <description>
+ fake package
+ </description>
+ <license>PHP License</license>
+ <maintainers>
+ <maintainer>
+ <user>fakeuser</user>
+ <name>Joe Shmoe</name>
+ <email>nobody@example.com</email>
+ <role>lead</role>
+ </maintainer>
+ </maintainers>
+ <release>
+ <version>1.1</version>
+ <date>2003-09-09</date>
+ <state>stable</state>
+ <notes>
+ required dependency test
+ </notes>
+ <filelist>
+ <dir name="/" baseinstalldir="grob" role="php">
+ <file>zoorb.php</file>
+ <dir name="goompness" role="php">
+ <file>oggbrzitzkee.php</file>
+ <file>Mopreeb.php</file>
+ </dir>
+ </dir>
+ </filelist>
+ </release>
+ </package>
--- /dev/null
+--TEST--
+PEAR_Common::sortPkgDeps test
+--SKIPIF--
+<?php
+if (!getenv('PHP_PEAR_RUNTESTS')) {
+ echo 'skip';
+}
+?>
+--FILE--
+<?php
+$dir = getcwd();
+chdir(dirname(__FILE__));
+
+require_once 'PEAR/Common.php';
+
+$c = new PEAR_Common();
+
+$packages = array(
+'common_sortPkgDeps6_package.xml',
+'common_sortPkgDeps2_package.xml',
+'common_sortPkgDeps1_package.xml',
+'common_sortPkgDeps4_package.xml',
+'common_sortPkgDeps5_package.xml',
+'common_sortPkgDeps3_package.xml',
+);
+
+$uninstallpackages = array(
+$c->infoFromAny('common_sortPkgDeps6_package.xml'),
+$c->infoFromAny('common_sortPkgDeps2_package.xml'),
+$c->infoFromAny('common_sortPkgDeps1_package.xml'),
+$c->infoFromAny('common_sortPkgDeps4_package.xml'),
+$c->infoFromAny('common_sortPkgDeps5_package.xml'),
+$c->infoFromAny('common_sortPkgDeps3_package.xml'),
+);
+
+echo "Test Install Sort:\n";
+$c->sortPkgDeps($packages);
+dumpPacks($packages);
+
+echo "Test Uninstall Sort:\n";
+$c->sortPkgDeps($uninstallpackages, true);
+dumpPacks($packages);
+
+chdir($dir);
+
+function dumpPacks($p)
+{
+ echo "Packages(\n";
+ foreach ($p as $inf) {
+ echo $inf['info']['package'] . ",\n";
+ }
+ echo ")\n";
+}
+?>
+--GET--
+--POST--
+--EXPECT--
+Test Install Sort:
+Packages(
+pkg6,
+pkg4,
+pkg5,
+pkg3,
+pkg2,
+pkg1,
+)
+Test Uninstall Sort:
+Packages(
+pkg1,
+pkg2,
+pkg3,
+pkg4,
+pkg5,
+pkg6,
+)
\ No newline at end of file