1<?php 2 3require_once DOKU_INC.'lib/exe/css.php'; 4 5class css_at_import_less_test extends DokuWikiTest { 6 7 protected $file = ''; 8 protected $import = ''; 9 10 public function setUpFiles($subdir = '') { 11 12 $dir = TMP_DIR . $subdir; 13 if (!is_dir($dir)) { 14 mkdir($dir, 0777, true); 15 } 16 if (!is_dir($dir)) { 17 $this->markTestSkipped('Could not create directory.'); 18 } 19 20 $this->file = tempnam($dir, 'css'); 21 22 $import = ''; 23 do { 24 if ($import) unlink($import); 25 $import = tempnam($dir, 'less'); 26 $ok = rename($import, $import.'.less'); 27 } while (!$ok); 28 29 $this->import = $import.'.less'; 30 } 31 32 private function csstest($input, $expected_css, $expected_less) { 33 $location = "http://test.com/"; 34 io_saveFile($this->file, $input); 35 $css = css_loadfile($this->file, $location); 36 $less = css_parseless($css); 37 $this->assertEquals($expected_css, $css); 38 $this->assertEquals($expected_less, $less); 39 } 40 41 public function test_basic() { 42 $this->setUpFiles(); 43 44 $import = preg_replace('#(^.*[/])#','',$this->import); 45 $in_css = '@import "'.$import.'";'; 46 $in_less = '@foo: "bar"; 47content: @foo;'; 48 49 $expected_css = '@import "/'.$import.'";'; 50 $expected_less = 'content: "bar";'; 51 52 io_saveFile($this->import, $in_less); 53 $this->csstest($in_css, $expected_css, $expected_less); 54 } 55 56 public function test_subdirectory() { 57 $this->setUpFiles('/foo/bar'); 58 59 $import = preg_replace('#(^.*[/])#','',$this->import); 60 $in_css = '@import "'.$import.'";'; 61 $in_less = '@foo: "bar"; 62content: @foo;'; 63 64 $expected_css = '@import "/foo/bar/'.$import.'";'; 65 $expected_less = 'content: "bar";'; 66 67 io_saveFile($this->import, $in_less); 68 $this->csstest($in_css, $expected_css, $expected_less); 69 } 70 71 public function tearDown() { 72 unlink($this->file); 73 unlink($this->import); 74 unset($this->file, $this->import); 75 } 76} 77 78//Setup VIM: ex: et ts=4 sw=4 : 79