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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
<?php
require_once DOKU_INC.'lib/exe/css.php';
class css_at_import_less_test extends DokuWikiTest {
protected $file = '';
protected $import = '';
public function setUpFiles($subdir = '') {
$dir = TMP_DIR . $subdir;
if (!is_dir($dir)) {
mkdir($dir, 0777, true);
}
if (!is_dir($dir)) {
$this->markTestSkipped('Could not create directory.');
}
$this->file = tempnam($dir, 'css');
$import = '';
do {
if ($import) unlink($import);
$import = tempnam($dir, 'less');
$ok = rename($import, $import.'.less');
} while (!$ok);
$this->import = $import.'.less';
}
private function csstest($input, $expected_css, $expected_less) {
$location = "http://test.com/";
io_saveFile($this->file, $input);
$css = css_loadfile($this->file, $location);
$less = css_parseless($css);
$this->assertEquals($expected_css, $css);
$this->assertEquals($expected_less, $less);
}
public function test_basic() {
$this->setUpFiles();
$import = preg_replace('#(^.*[/])#','',$this->import);
$in_css = '@import "'.$import.'";';
$in_less = '@foo: "bar";
content: @foo;';
$expected_css = '@import "/'.$import.'";';
$expected_less = 'content: "bar";';
io_saveFile($this->import, $in_less);
$this->csstest($in_css, $expected_css, $expected_less);
}
public function test_subdirectory() {
$this->setUpFiles('/foo/bar');
$import = preg_replace('#(^.*[/])#','',$this->import);
$in_css = '@import "'.$import.'";';
$in_less = '@foo: "bar";
content: @foo;';
$expected_css = '@import "/foo/bar/'.$import.'";';
$expected_less = 'content: "bar";';
io_saveFile($this->import, $in_less);
$this->csstest($in_css, $expected_css, $expected_less);
}
public function tearDown() {
unlink($this->file);
unlink($this->import);
unset($this->file, $this->import);
}
}
//Setup VIM: ex: et ts=4 sw=4 :
|