1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156
|
--TEST--
PEAR_PackageFile_Generator_v2->toPackageFile() failure
--SKIPIF--
<?php
if (!getenv('PHP_PEAR_RUNTESTS')) {
echo 'skip';
}
?>
--FILE--
<?php
require_once dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . 'setup.php.inc';
$pf = new PEAR_PackageFile_v2;
$pf->setConfig($config);
$generator = &$pf->getDefaultGenerator();
$e = $generator->toPackageFile();
$phpunit->assertErrors(array(
array('package' => 'PEAR_PackageFile_v2', 'message' => 'package.xml <package> tag has no version attribute, or version is not 2.0'),
array('package' => 'PEAR_PackageFile_v2', 'message' => 'Invalid tag order in <package>, found <> expected one of "name"'),
array('package' => 'PEAR_Error', 'message' => 'PEAR_Packagefile_v2::toPackageFile: invalid package.xml'),
), 'bad');
$phpunit->assertIsa('PEAR_Error', $e, 'error');
$pf = $parser->parse('<?xml version="1.0" encoding="ISO-8859-1" ?>
<package version="2.0" packagerversion="' . $generator->getPackagerVersion() . '">
<name>foo</name>
<channel>pear.php.net</channel>
<summary>foo</summary>
<description>foo
hi there
</description>
<lead>
<name>person</name>
<user>single</user>
<email>joe@example.com</email>
<active>yes</active>
</lead>
<date>2004-12-25</date>
<version>
<release>1.2.0a1</release>
<api>1.2.0a1</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license>PHP License</license>
<notes>here are the
multi-line
release notes
</notes>
<contents>
<dir name="\">
<file role="php" name="foo.php"/>
</dir>
</contents>
<dependencies>
<required>
<php>
<min>4.0.0</min>
<max>6.0.0</max>
</php>
<pearinstaller>
<min>1.4.0a1</min>
</pearinstaller>
</required>
</dependencies>
<phprelease/>
</package>
', 'boo.xml');
$generator = &$pf->getDefaultGenerator();
touch ($temp_path . DIRECTORY_SEPARATOR . 'floub');
$e = $generator->toPackageFile($temp_path . DIRECTORY_SEPARATOR . 'floub');
$phpunit->assertErrors(array(
array('package' => 'PEAR_Error', 'message' => 'PEAR_Packagefile_v2::toPackageFile: "' .
$temp_path . DIRECTORY_SEPARATOR . 'floub" could not be created'),
), 'bad 1');
$phpunit->assertIsa('PEAR_Error', $e, 'error 1');
unlink($temp_path . DIRECTORY_SEPARATOR . 'floub');
mkdir($temp_path . DIRECTORY_SEPARATOR . 'floub');
mkdir($temp_path . DIRECTORY_SEPARATOR . 'floub' . DIRECTORY_SEPARATOR . 'package.xml');
$e = $generator->toPackageFile($temp_path . DIRECTORY_SEPARATOR . 'floub');
$phpunit->assertErrors(array(
array('package' => 'PEAR_Error', 'message' => 'PEAR_Packagefile_v2::toPackageFile: unable to save package.xml as ' .
$temp_path . DIRECTORY_SEPARATOR . 'floub' . DIRECTORY_SEPARATOR . 'package.xml'),
), 'bad 2');
$phpunit->assertIsa('PEAR_Error', $e, 'error 2');
$pf = $parser->parse(implode('', file(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'packagefiles' .
DIRECTORY_SEPARATOR . 'bundlefail1.xml')), dirname(__FILE__) . DIRECTORY_SEPARATOR . 'packagefiles' .
DIRECTORY_SEPARATOR . 'bundlefail1.xml');
$generator = &$pf->getDefaultGenerator();
$e = $generator->toPackageFile($temp_path, PEAR_VALIDATE_PACKAGING, 'tub.xml');
$phpunit->assertErrors(array(
array('package' => 'PEAR_PackageFile_v2', 'message' => 'Channel validator warning: field "date" - Release Date "2004-12-10" is not today'),
array('package' => 'PEAR_PackageFile_v2', 'message' => 'File "' .
dirname(__FILE__) . DIRECTORY_SEPARATOR . 'packagefiles' .
DIRECTORY_SEPARATOR . 'nosuchpackage-1.9.0.tgz" in package.xml does not exist'),
array('package' => 'PEAR_Error', 'message' => 'PEAR_Packagefile_v2::toPackageFile: invalid package.xml'),
), 'bad bundle 1');
$phpunit->assertEquals(array (
0 =>
array (
0 => 1,
1 => 'Analyzing bundled package fakefoo-1.9.0.tgz',
),
1 =>
array (
0 => 1,
1 => 'Analyzing bundled package fakebar-1.9.0.tgz',
),
), $fakelog->getLog(), 'bad bundle 1 log');
$pf = $parser->parse(implode('', file(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'packagefiles' .
DIRECTORY_SEPARATOR . 'bundlefail2.xml')), dirname(__FILE__) . DIRECTORY_SEPARATOR . 'packagefiles' .
DIRECTORY_SEPARATOR . 'bundlefail2.xml');
$generator = &$pf->getDefaultGenerator();
$e = $generator->toPackageFile($temp_path, PEAR_VALIDATE_PACKAGING, 'tub.xml');
$phpunit->assertErrors(array(
array('package' => 'PEAR_PackageFile_v2', 'message' => 'Channel validator warning: field "date" - Release Date "2004-12-10" is not today'),
array('package' => 'PEAR_Error', 'message' => 'PEAR_Packagefile_v2::toPackageFile: invalid package.xml'),
), 'bad bundle 1.5');
$phpunit->assertEquals(array (
0 =>
array (
0 => 1,
1 => 'Analyzing bundled package fakefoo-1.9.0.tgz',
),
1 =>
array (
0 => 1,
1 => 'Analyzing bundled package fakebar-1.9.0.tgz',
),
2 =>
array (
0 => 1,
1 => 'Analyzing bundled package invalid-1.9.0.tgz',
),
3 =>
array (
0 => 0,
1 => 'ERROR: package invalid-1.9.0.tgz is not a valid package',
),
), $fakelog->getLog(), 'bad bundle 2 log');
echo 'tests done';
?>
--CLEAN--
<?php
require_once dirname(dirname(__FILE__)) . '/teardown.php.inc';
?>
--EXPECT--
tests done
|