forked from moodle/moodle
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathminify_test.php
122 lines (94 loc) · 3.12 KB
/
minify_test.php
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace core;
use core_minify;
/**
* Class core_minify_testcase.
*
* core_minify related tests.
*
* @package core
* @category test
* @copyright 2013 Petr Skoda {@link http://skodak.org}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class minify_test extends \advanced_testcase {
public function test_css() {
$css = "
body {
background: #fff;
margin: 0;
padding: 0;
color: #281f18;
}";
$this->assertSame("body{background:#fff;margin:0;padding:0;color:#281f18}", core_minify::css($css));
}
public function test_css_files() {
global $CFG;
$testfile1 = "$CFG->tempdir/test1.css";
$testfile2 = "$CFG->tempdir/test2.css";
$testfile3 = "$CFG->tempdir/test3.css";
$css1 = "
body {
background: #fff;
margin: 0;
padding: 0;
color: #281f18;
}";
$css2 = "body{}";
file_put_contents($testfile1, $css1);
file_put_contents($testfile2, $css2);
$files = array($testfile1, $testfile2);
$this->assertSame("body{background:#fff;margin:0;padding:0;color:#281f18}\n", core_minify::css_files($files));
$files = array($testfile1, $testfile2, $testfile3);
$this->assertStringStartsWith("body{background:#fff;margin:0;padding:0;color:#281f18}\n\n\n\n/* Cannot read CSS file ",
@core_minify::css_files($files));
unlink($testfile1);
unlink($testfile2);
}
public function test_js() {
$js = "
function hm()
{
}
";
$this->assertSame("function hm(){}", core_minify::js($js));
$js = "function hm{}";
$result = core_minify::js($js);
$this->assertStringContainsString($js, $result);
}
public function test_js_files() {
global $CFG;
$testfile1 = "$CFG->tempdir/test1.js";
$testfile2 = "$CFG->tempdir/test2.js";
$testfile3 = "$CFG->tempdir/test3.js";
$js1 = "
function hm()
{
}
";
$js2 = "function oh(){}";
file_put_contents($testfile1, $js1);
file_put_contents($testfile2, $js2);
$files = array($testfile1, $testfile2);
$this->assertSame("function hm(){};\nfunction oh(){}", core_minify::js_files($files));
$files = array($testfile1, $testfile2, $testfile3);
$this->assertStringStartsWith("function hm(){};\nfunction oh(){};\n\n\n// Cannot read JS file ",
@core_minify::js_files($files));
unlink($testfile1);
unlink($testfile2);
}
}