function assertCleanCSS($input, $expect = true) { $filter = new HTMLPurifier_Filter_ExtractStyleBlocks(); if ($expect === true) { $expect = $input; } $this->normalize($input); $this->normalize($expect); $result = $filter->cleanCSS($input, $this->config, $this->context); $this->assertIdentical($result, $expect); }
// Sanitise the CSS. require '../pokemonshowdown.com/lib/htmlpurifier/HTMLPurifier.auto.php'; require '../pokemonshowdown.com/lib/csstidy/class.csstidy.php'; $config = HTMLPurifier_Config::createDefault(); $config->set('Filter.ExtractStyleBlocks', true); $config->set('CSS.Proprietary', true); $config->set('CSS.AllowImportant', true); $config->set('CSS.AllowTricky', true); $level = error_reporting(E_ALL & ~E_STRICT); // $purifier = new HTMLPurifier($config); // $html = $purifier->purify('<style>' . $curlret . '</style>'); // error_reporting($level); // list($outputcss) = $purifier->context->get('StyleBlocks'); $context = new HTMLPurifier_Context(); $filter = new HTMLPurifier_Filter_ExtractStyleBlocks(); $outputcss = $filter->cleanCSS($curlret, $config, $context); file_put_contents($cssfile, $outputcss); if (!$invalidate) { echo $outputcss; } } else { // Either no modifications (status: 304) or an error condition. if ($invalidate) { die('Error: custom CSS file not found'); } if ($lastmodified) { readfile($cssfile); } } touch($cssfile, $timenow); // Don't check again for an hour.