File: JsminTest.php

package info (click to toggle)
php-horde-text-filter-jsmin 1.0.2-10
  • links: PTS, VCS
  • area: non-free
  • in suites: bookworm, bullseye, sid, trixie
  • size: 116 kB
  • sloc: php: 283; xml: 122; sh: 3; makefile: 2
file content (84 lines) | stat: -rw-r--r-- 2,339 bytes parent folder | download
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
<?php
/**
 * Javascript minification tests.
 *
 * @author     Michael Slusarz <slusarz@horde.org>
 * @category   Horde
 * @license    JSMin
 * @package    Text_Filter_Jsmin
 * @subpackage UnitTests
 */

class Horde_Text_Filter_Jsmin_JsminTest extends Horde_Test_Case
{
    public function testJsmin()
    {
        $javascript = <<<EOT
function foo(bar)
{
    if (bar == 2) {
        return true;
    } else {
        return false;
    }
}
EOT;

        $this->assertEquals(
            "function foo(bar)\n{if(bar==2){return true;}else{return false;}}",
             Horde_Text_Filter::filter($javascript, 'JavascriptMinify')
        );
    }

    // Example taken from jsmin.c source
    public function testJsmin2()
    {
        $javascript = <<<EOT
var is = {
    ie:      navigator.appName == 'Microsoft Internet Explorer',
    java:    navigator.javaEnabled(),
    ns:      navigator.appName == 'Netscape',
    ua:      navigator.userAgent.toLowerCase(),
    version: parseFloat(navigator.appVersion.substr(21)) ||
             parseFloat(navigator.appVersion),
    win:     navigator.platform == 'Win32'
}

is.mac = is.ua.indexOf('mac') >= 0;

if (is.ua.indexOf('opera') >= 0) {
    is.ie = is.ns = false;
    is.opera = true;
}

if (is.ua.indexOf('gecko') >= 0) {
    is.ie = is.ns = false;
    is.gecko = true;
}
EOT;
        $this->assertEquals(
            "var is={ie:navigator.appName=='Microsoft Internet Explorer',java:navigator.javaEnabled(),ns:navigator.appName=='Netscape',ua:navigator.userAgent.toLowerCase(),version:parseFloat(navigator.appVersion.substr(21))||parseFloat(navigator.appVersion),win:navigator.platform=='Win32'}
is.mac=is.ua.indexOf('mac')>=0;if(is.ua.indexOf('opera')>=0){is.ie=is.ns=false;is.opera=true;}
if(is.ua.indexOf('gecko')>=0){is.ie=is.ns=false;is.gecko=true;}",
             Horde_Text_Filter::filter($javascript, 'JavascriptMinify')
        );
    }

    public function testBug12787()
    {
        $js = "function foo(a) { return/\//.test(a); }";

        $this->assertEquals(
            'function foo(a){return/\//.test(a);}',
             Horde_Text_Filter::filter($js, 'JavascriptMinify')
         );

        $js2 = 'var a = 0, b = c / 100 | 0;';

        $this->assertNotEquals(
            $js2,
             Horde_Text_Filter::filter($js2, 'JavascriptMinify')
         );
    }

}