aboutsummaryrefslogtreecommitdiffstats
path: root/lib/htmlpurifier/tests/PHPT/Section/PRESKIPIF.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/htmlpurifier/tests/PHPT/Section/PRESKIPIF.php')
-rw-r--r--lib/htmlpurifier/tests/PHPT/Section/PRESKIPIF.php36
1 files changed, 36 insertions, 0 deletions
diff --git a/lib/htmlpurifier/tests/PHPT/Section/PRESKIPIF.php b/lib/htmlpurifier/tests/PHPT/Section/PRESKIPIF.php
new file mode 100644
index 000000000..4691c76da
--- /dev/null
+++ b/lib/htmlpurifier/tests/PHPT/Section/PRESKIPIF.php
@@ -0,0 +1,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;
+ }
+}