Blame view

htmlpurifier/tests/PHPT/Section/PRESKIPIF.php 1.04 KB
Maulyanda authored
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
<?php

class PHPT_Section_PRESKIPIF implements PHPT_Section_RunnableBefore
{
    private $_data = null;
    private $_runner_factory = null;

    public function __construct($data)
    {
        $this->_data = $data;
        $this->_runner_factory = new PHPT_CodeRunner_Factory();
    }

    public function run(PHPT_Case $case)
    {
        // @todo refactor this code into PHPT_Util class as its used in multiple places
        $filename = dirname($case->filename) . '/' . basename($case->filename, '.php') . '.skip.php';

        // @todo refactor to PHPT_CodeRunner
        file_put_contents($filename, $this->_data);
        $runner = $this->_runner_factory->factory($case);
        $runner->ini = "";
        $response = $runner->run($filename)->output;
        unlink($filename);

        if (preg_match('/^skip( - (.*))?/', $response, $matches)) {
            $message = !empty($matches[2]) ? $matches[2] : '';
            throw new PHPT_Case_VetoException($message);
        }
    }

    public function getPriority()
    {
        return -2;
    }
}