File: test_processInstallation.phpt

package info (click to toggle)
php-pear 1%3A1.10.12%2Bsubmodules%2Bnotgz%2B20210212-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 18,540 kB
  • sloc: php: 52,900; ansic: 39,986; xml: 33,116; yacc: 677; pascal: 452; makefile: 122; sh: 113
file content (108 lines) | stat: -rw-r--r-- 4,225 bytes parent folder | download | duplicates (5)
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
--TEST--
PEAR_Installer_Role_Common->processInstallation()
--SKIPIF--
<?php
if (!getenv('PHP_PEAR_RUNTESTS')) {
    echo 'skip';
}
?>
--FILE--
<?php
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'setup.php.inc';
$pf2 = new PEAR_PackageFile_v2_rw;
$pf2->setConfig($config);
$pf2->setPackageType('php');
$pf2->setPackage('foo');
$pf2->setChannel('grob');
$pf2->setAPIStability('stable');
$pf2->setReleaseStability('stable');
$pf2->setAPIVersion('1.0.0');
$pf2->setReleaseVersion('1.0.0');
$pf2->setDate('2004-11-12');
$pf2->setDescription('foo source');
$pf2->setSummary('foo');
$pf2->setLicense('PHP License');
$pf2->setLogger($fakelog);
$pf2->clearContents();
$pf2->addFile('', 'foor.php', array('role' => 'php'));
$pf2->addMaintainer('lead', 'cellog', 'Greg Beaver', 'cellog@php.net');
$pf2->setNotes('blah');
$pf2->setPearinstallerDep('1.4.0a1');
$pf2->setPhpDep('4.2.0', '5.0.0');
$pf2->addPackageDepWithChannel('optional', 'frong', 'floop');
class Php extends PEAR_Installer_Role_Common
{
    var $_setup = array();

    function resetInfo($role)
    {
        $GLOBALS['_PEAR_INSTALLER_ROLES'][$role] = array();
    }

    function setSetupField($field, $value)
    {
        if ($value === null) {
            unset($GLOBALS['_PEAR_INSTALLER_ROLES']['PEAR_Installer_Role_Php'][$field]);
            return;
        }
        $GLOBALS['_PEAR_INSTALLER_ROLES']['PEAR_Installer_Role_Php'][$field] = $value;
    }
}

$m = new Php($config);
$m->resetInfo('PEAR_Installer_Role_Php');
$m->setSetupField('locationconfig', false);
$phpunit->assertFalse($m->processInstallation($pf2, array(), '', ''), 'no locationconfig');
$m->setSetupField('locationconfig', 'data_dir');
$m->setSetupField('honorsbaseinstall', false);
$m->setSetupField('unusualbaseinstall', false);
$ds = DIRECTORY_SEPARATOR;
$phpunit->assertEquals(array (
  0 => $temp_path . $ds . 'data' . $ds . 'foo',
  1 => $temp_path . $ds . 'data' . $ds . 'foo' . $ds . 'path' . $ds . 'to',
  2 => $temp_path . $ds . 'data' . $ds . 'foo' . $ds . 'path' . $ds . 'to' . $ds . 'foo.dat',
  3 => 'smonk' . $ds . 'path' . $ds . 'to' . $ds . 'foo.dat',
), $m->processInstallation($pf2,
    array('role' => 'data', 'name' => 'path/to/foo.dat'), 'path/to/foo.dat', 'smonk'), 'nobaseinstall 1');
$phpunit->assertEquals(array (
  0 => $temp_path . $ds . 'data' . $ds . 'foo',
  1 => $temp_path . $ds . 'data' . $ds . 'foo' . $ds . 'path' . $ds . 'to',
  2 => $temp_path . $ds . 'data' . $ds . 'foo' . $ds . 'path' . $ds . 'to' . $ds . 'foo.dat',
  3 => 'smonk' . $ds . 'path' . $ds . 'to' . $ds . 'foo.dat',
), $m->processInstallation($pf2,
    array('role' => 'data', 'name' => 'path/to/foo.dat', 'baseinstalldir' => 'murmur'
    ), 'path/to/foo.dat', 'smonk'), 'nobaseinstall 2');
$phpunit->assertEquals(array (
  0 => $temp_path . $ds . 'data' . $ds . 'foo',
  1 => $temp_path . $ds . 'data' . $ds . 'foo',
  2 => $temp_path . $ds . 'data' . $ds . 'foo' . $ds . 'monk.php',
  3 => 'smonk' . $ds . 'path' . $ds . 'to' . $ds . 'foo.dat',
), $m->processInstallation($pf2,
    array('role' => 'data', 'name' => 'path/to/foo.dat', 'install-as' => 'monk.php'),
    'path/to/foo.dat', 'smonk'), 'nobaseinstall 3, install_as');

$m->setSetupField('honorsbaseinstall', true);
$phpunit->assertEquals(array (
  0 => $temp_path . $ds . 'data',
  1 => $temp_path . $ds . 'data' . $ds . 'path' . $ds . 'to',
  2 => $temp_path . $ds . 'data' . $ds . 'path' . $ds . 'to' . $ds . 'foo.dat',
  3 => 'smonk' . $ds . 'path' . $ds . 'to' . $ds . 'foo.dat',
), $m->processInstallation($pf2,
    array('role' => 'data', 'name' => 'path/to/foo.dat'), 'path/to/foo.dat', 'smonk'), 'baseinstall 1');
$phpunit->assertEquals(array (
  0 => $temp_path . $ds . 'data',
  1 => $temp_path . $ds . 'data' . $ds . 'murmur' . $ds . 'path' . $ds . 'to',
  2 => $temp_path . $ds . 'data' . $ds . 'murmur' . $ds . 'path' . $ds . 'to' . $ds . 'foo.dat',
  3 => 'smonk' . $ds . 'path' . $ds . 'to' . $ds . 'foo.dat',
), $m->processInstallation($pf2,
    array('role' => 'data', 'name' => 'path/to/foo.dat', 'baseinstalldir' => 'murmur'
    ), 'path/to/foo.dat', 'smonk'), 'baseinstall 2');

echo 'tests done';
?>
--CLEAN--
<?php
require_once dirname(__FILE__) . '/teardown.php.inc';
?>
--EXPECT--
tests done