public function saveCss() { $params = json_decode($this->request->get('result'), true); $theme = $params['theme']; if (!$theme) { $theme = 'barebone'; } // save custom CSS $css = new CssFile('upload/css/' . $theme . '.css'); $css->setSource($params['css']); $css->save(); // deleted rules foreach ($params['deletedRules'] as $file => $selectors) { $css = CssFile::getInstanceFromUrl($file, $theme); foreach ($selectors as $selector) { $css->deleteSelector($selector); } $css->save(); } // deleted properties foreach ($params['deletedProperties'] as $file => $selectors) { $css = CssFile::getInstanceFromUrl($file, $theme); foreach ($selectors as $selector => $properties) { foreach ($properties as $property => $value) { $css->deleteProperty($selector, $property); } } $css->save(); } }
function testEmptySelectors() { $src = '.test { font-weight: bold; }' . "\n" . '.empty { }' . "\n" . '.whatever { color: red }'; $css = new CssFile('somefile.css'); $css->setSource($src); $this->assertTrue(strpos($css->getSource(), '.empty') == 0); $this->assertTrue(strpos($css->getSource(), '.whatever') > 0); }