<?php

class HTMLPurifier_SimpleTest_Reporter extends HTMLReporter
{

    protected $ac;

    public function __construct($encoding, $ac)
    {
        $this->ac = $ac;
        parent::__construct($encoding);
    }

    public function paintHeader($test_name)
    {
        parent::paintHeader($test_name);
?>
<form action="" method="get" id="select">
    <select name="f">
        <option value="" style="font-weight:bold;"<?php if(!$this->ac['file']) {echo ' selected';} ?>>All Tests</option>
        <?php foreach($GLOBALS['HTMLPurifierTest']['Files'] as $file) { ?>
            <option value="<?php echo $file ?>"<?php
                if ($this->ac['file'] == $file) echo ' selected';
            ?>><?php echo $file ?></option>
        <?php } ?>
    </select>
    <input type="checkbox" name="standalone" value="1" title="Standalone version?" <?php if($this->ac['standalone']) {echo 'checked="checked" ';} ?>/>
    <input type="submit" value="Go">
</form>
<?php
        flush();
    }

    public function paintFooter($test_name)
    {
        if (function_exists('xdebug_peak_memory_usage')) {
            $max_mem = number_format(xdebug_peak_memory_usage());
            echo "<div>Max memory usage: $max_mem bytes</div>";
        }
        parent::paintFooter($test_name);
    }

    protected function getCss()
    {
        $css = parent::getCss();
        $css .= '
        #select {position:absolute;top:0.2em;right:0.2em;}
        ';
        return $css;
    }

    public function getTestList()
    {
        // hacky; depends on a specific implementation of paintPass, etc.
        $list = parent::getTestList();
        $testcase = $list[1];
        if (class_exists($testcase, false)) $file = str_replace('_', '/', $testcase) . '.php';
        else $file = $testcase;
        $list[1] = '<a href="index.php?file=' . $file . '">' . $testcase . '</a>';
        return $list;
    }

}

// vim: et sw=4 sts=4
