Current File : //opt/RZphp5/includes/test/PEAR_Info/tests/render.phpt
--TEST--
PEAR_Info using render options
--FILE--
<?php
$ds         = DIRECTORY_SEPARATOR;
$dir        = dirname(__FILE__);
$sysconfdir = $dir . $ds . 'sysconf_dir';
$peardir    = $dir . $ds . 'pear_dir';
$userdir    = $dir . $ds . 'user_dir';
$tpldir     = $dir . $ds . 'templates';

putenv("PHP_PEAR_SYSCONF_DIR=" . $sysconfdir);
chdir($dir);

// we get PEAR_Info class only here due to setting of PEAR_CONFIG_SYSCONFDIR
include_once 'PEAR/Info.php';

if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
    $u_conf_file  = $peardir . $ds . 'pear.ini';
    $conf_file    = $peardir . $ds . 'pearsys.ini';
    $custom_file1 = $peardir . $ds . 'name1.pearsys.ini';
    $custom_file2 = $userdir . $ds . 'name2.pearsys.ini';
} else {
    $u_conf_file  = $peardir . $ds . '.pearrc';
    $conf_file    = $peardir . $ds . 'pear.conf';
    $custom_file1 = $peardir . $ds . 'name1.pear.conf';
    $custom_file2 = $userdir . $ds . 'name2.pear.conf';
}

if (!file_exists($conf_file)) {
    // write once PEAR system-wide config file for simulation
    $config =& PEAR_Config::singleton();
    $config->set('php_dir', $peardir);
    $config->writeConfigFile($conf_file);

    // also writes custom pear system config files
    $config->writeConfigFile($custom_file1);
    $config->writeConfigFile($custom_file2);
}

/**
 * TestCase 1:
 * usage of stylesheet to customize look and feel
 */
$testCase = 'testCustomStyleSheet';

$GLOBALS['_PEAR_Config_instance'] = null;

$pearInfo   = new PEAR_Info($peardir);
$css_exists = $pearInfo->setStyleSheet($tpldir . $ds . 'blueskin.css');

$result = ($css_exists)
    ? 'OK' : 'CSS file does not exists';

echo $testCase . ' : ' . $result;
echo "\n";

/**
 * TestCase 2:
 * display main page with default stylesheet
 */
$testCase = 'testDefaultStyleSheet';

$GLOBALS['_PEAR_Config_instance'] = null;

$options = array('resume' =>  PEAR_INFO_GENERAL |
                              PEAR_INFO_PACKAGES_VERSION |
                              PEAR_INFO_FULLPAGE,
                 'channels' => array());

$pearInfo = new PEAR_Info($peardir, '', '', $options);
$html = $pearInfo->toHtml();

$packages_tpl = file_get_contents($tpldir . $ds . 'packages.tpl');
$packages_tpl = str_replace(
                    array(
                        '{styles}',
                        '{script_filename}',
                        '{config_file}',
                        '{usr_config_file}',
                        '{sys_config_file}'
                    ),
                    array(
                        $pearInfo->getStyleSheet(),
                        __FILE__,
                        $conf_file,
                        $u_conf_file,
                        $conf_file
                    ),
                    $packages_tpl);

if (OS_WINDOWS) {
    $html = str_replace("\r\n", "\n", $html);
}

$result = (strcasecmp($html, $packages_tpl) == 0)
    ? 'OK' : 'HTML strings are not same';

echo $testCase . ' : ' . $result;
echo "\n";

/**
 * TestCase 3:
 * display credits page with default stylesheet
 */
$testCase = 'testCreditsWithDefaultStyleSheet';

$GLOBALS['_PEAR_Config_instance'] = null;

$options = array('resume' =>  PEAR_INFO_GENERAL |
                              PEAR_INFO_CREDITS_ALL |
                              PEAR_INFO_FULLPAGE,
                 'channels' => array());

$pearInfo = new PEAR_Info($peardir, '', '', $options);
ob_start();
$pearInfo->show();
$html = ob_get_contents();
ob_end_clean();

$credits_tpl = file_get_contents($tpldir . $ds . 'credits.tpl');
$credits_tpl = str_replace(
                    array(
                        '{styles}',
                        '{script_filename}',
                        '{config_file}',
                        '{usr_config_file}',
                        '{sys_config_file}'
                    ),
                    array(
                        $pearInfo->getStyleSheet(),
                        __FILE__,
                        $conf_file,
                        $u_conf_file,
                        $conf_file
                    ),
                    $credits_tpl);

if (OS_WINDOWS) {
    $html = str_replace("\r\n", "\n", $html);
}

$result = (strcasecmp($html, $credits_tpl) == 0)
    ? 'OK' : 'HTML strings are not same';

echo $testCase . ' : ' . $result;
?>
--CLEAN--
<?php
$ds         = DIRECTORY_SEPARATOR;
$dir        = dirname(__FILE__);
$sysconfdir = $dir . $ds . 'sysconf_dir';
$peardir    = $dir . $ds . 'pear_dir';
$userdir    = $dir . $ds . 'user_dir';

if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
    $conf_file    = $peardir . $ds . 'pearsys.ini';
    $custom_file1 = $peardir . $ds . 'name1.pearsys.ini';
    $custom_file2 = $userdir . $ds . 'name2.pearsys.ini';
} else {
    $conf_file    = $peardir . $ds . 'pear.conf';
    $custom_file1 = $peardir . $ds . 'name1.pear.conf';
    $custom_file2 = $userdir . $ds . 'name2.pear.conf';
}

unlink ($conf_file);
unlink ($custom_file1);
unlink ($custom_file2);
?>
--EXPECT--
testCustomStyleSheet : OK
testDefaultStyleSheet : OK
testCreditsWithDefaultStyleSheet : OK