mirror of
https://github.com/mrclay/minify.git
synced 2025-08-27 15:50:15 +02:00
@@ -4,8 +4,6 @@ class MinifyLinesTest extends TestCase
|
||||
{
|
||||
public function test_lines()
|
||||
{
|
||||
$exp = file_get_contents(self::$test_files . "/minify/lines_output.js");
|
||||
|
||||
$env = new Minify_Env(array(
|
||||
'server' => array(
|
||||
'DOCUMENT_ROOT' => dirname(__DIR__),
|
||||
@@ -15,15 +13,27 @@ class MinifyLinesTest extends TestCase
|
||||
$controller = new Minify_Controller_Files($env, $sourceFactory);
|
||||
$minify = new Minify(new Minify_Cache_Null());
|
||||
|
||||
$ret = $minify->serve($controller, array(
|
||||
'debug' => true
|
||||
,'quiet' => true
|
||||
,'encodeOutput' => false
|
||||
,'files' => array(
|
||||
self::$test_files . "/js/before.js"
|
||||
)
|
||||
));
|
||||
$files = glob(self::$test_files . "/lines/*.in.js");
|
||||
|
||||
$this->assertEquals($exp, $ret['content']);
|
||||
// uncomment to debug one
|
||||
//$files = array(self::$test_files . "/lines/basic.in.js");
|
||||
|
||||
foreach ($files as $file) {
|
||||
$ret = $minify->serve($controller, array(
|
||||
'debug' => true,
|
||||
'quiet' => true,
|
||||
'encodeOutput' => false,
|
||||
'files' => array($file),
|
||||
));
|
||||
|
||||
$outFile = str_replace('.in.js', '.out.js', $file);
|
||||
|
||||
$exp = file_get_contents($outFile);
|
||||
|
||||
// uncomment to set up expected output
|
||||
//file_put_contents($outFile, $ret['content']);
|
||||
|
||||
$this->assertEquals($exp, $ret['content'], "Did not match: " . basename($outFile));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
66
tests/_test_files/lines/basic.in.js
Normal file
66
tests/_test_files/lines/basic.in.js
Normal file
@@ -0,0 +1,66 @@
|
||||
/*! is.js
|
||||
|
||||
(c) 2001 Douglas Crockford
|
||||
2001 June 3
|
||||
*/
|
||||
|
||||
// is
|
||||
|
||||
// The -is- object is used to identify the browser. Every browser edition
|
||||
// identifies itself, but there is no standard way of doing it, and some of
|
||||
// the identification is deceptive. This is because the authors of web
|
||||
// browsers are liars. For example, Microsoft's IE browsers claim to be
|
||||
// Mozilla 4. Netscape 6 claims to be version 5.
|
||||
|
||||
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'
|
||||
}
|
||||
/*!*
|
||||
* preserve this comment, too
|
||||
*/
|
||||
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;
|
||||
}
|
||||
|
||||
/*@cc_on
|
||||
/*@if (@_win32)
|
||||
if (is.ie && is.win)
|
||||
document.write("PASS: IE/win honored conditional comment.<br>");
|
||||
@else @*/
|
||||
if (is.ie && is.win)
|
||||
document.write("FAIL: IE/win did not honor multi-line conditional comment.<br>");
|
||||
else
|
||||
document.write("PASS: Non-IE/win browser ignores multi-line conditional comment.<br>");
|
||||
/*@end
|
||||
@*/
|
||||
|
||||
var recognizesCondComm = true;
|
||||
//@cc_on/*
|
||||
recognizesCondComm = false;
|
||||
//@cc_on*/
|
||||
|
||||
if ((is.ie && is.win) == recognizesCondComm)
|
||||
document.write("PASS: IE/win honored single-line conditional comment.<br>");
|
||||
else
|
||||
document.write("FAIL: Non-IE/win browser did not ignore single-line conditional comment.<br>");
|
||||
|
||||
// hello
|
||||
//@cc_on/*
|
||||
// world
|
||||
//@cc_on*/
|
||||
//@cc_on/*
|
||||
'hello';
|
||||
/*!* preserved */
|
||||
/*!* preserved */
|
@@ -1,20 +1,20 @@
|
||||
|
||||
/* before.js */
|
||||
/* basic.in.js */
|
||||
|
||||
/* 1 */ /*! is.js
|
||||
/* 2 *|
|
||||
/* 2 *|
|
||||
/* 3 *| (c) 2001 Douglas Crockford
|
||||
/* 4 *| 2001 June 3
|
||||
/* 5 *| */
|
||||
/* 6 */
|
||||
/* 6 */
|
||||
/* 7 */ // is
|
||||
/* 8 */
|
||||
/* 8 */
|
||||
/* 9 */ // The -is- object is used to identify the browser. Every browser edition
|
||||
/* 10 */ // identifies itself, but there is no standard way of doing it, and some of
|
||||
/* 11 */ // the identification is deceptive. This is because the authors of web
|
||||
/* 12 */ // browsers are liars. For example, Microsoft's IE browsers claim to be
|
||||
/* 13 */ // Mozilla 4. Netscape 6 claims to be version 5.
|
||||
/* 14 */
|
||||
/* 14 */
|
||||
/* 15 */ var is = {
|
||||
/* 16 */ ie: navigator.appName == 'Microsoft Internet Explorer',
|
||||
/* 17 */ java: navigator.javaEnabled(),
|
||||
@@ -36,7 +36,7 @@
|
||||
/* 33 */ is.ie = is.ns = false;
|
||||
/* 34 */ is.gecko = true;
|
||||
/* 35 */ }
|
||||
/* 36 */
|
||||
/* 36 */
|
||||
/* 37 */ /*@cc_on
|
||||
/* 38 *| /*@if (@_win32)
|
||||
/* 39 *| if (is.ie && is.win)
|
||||
@@ -44,24 +44,24 @@
|
||||
/* 41 *| @else @*/
|
||||
/* 42 */ if (is.ie && is.win)
|
||||
/* 43 */ document.write("FAIL: IE/win did not honor multi-line conditional comment.<br>");
|
||||
/* 44 */ else
|
||||
/* 44 */ else
|
||||
/* 45 */ document.write("PASS: Non-IE/win browser ignores multi-line conditional comment.<br>");
|
||||
/* 46 */ /*@end
|
||||
/* 47 *| @*/
|
||||
/* 48 */
|
||||
/* 48 */
|
||||
/* 49 */ var recognizesCondComm = true;
|
||||
/* 50 */ //@cc_on/*
|
||||
|
||||
/* before.js */
|
||||
/* basic.in.js */
|
||||
|
||||
/* 51 */ recognizesCondComm = false;
|
||||
/* 52 */ //@cc_on*/
|
||||
/* 53 */
|
||||
/* 53 */
|
||||
/* 54 */ if ((is.ie && is.win) == recognizesCondComm)
|
||||
/* 55 */ document.write("PASS: IE/win honored single-line conditional comment.<br>");
|
||||
/* 56 */ else
|
||||
/* 56 */ else
|
||||
/* 57 */ document.write("FAIL: Non-IE/win browser did not ignore single-line conditional comment.<br>");
|
||||
/* 58 */
|
||||
/* 58 */
|
||||
/* 59 */ // hello
|
||||
/* 60 */ //@cc_on/*
|
||||
/* 61 */ // world
|
@@ -1,10 +1,14 @@
|
||||
// sections from Prototype 1.6.1
|
||||
var xpath = ".//*[local-name()='ul' or local-name()='UL']" +
|
||||
"//*[local-name()='li' or local-name()='LI']";
|
||||
this.matcher = ['.//*'];
|
||||
xpath = {
|
||||
descendant: "//*",
|
||||
child: "/*",
|
||||
f: 0
|
||||
};
|
||||
document._getElementsByXPath('.//*' + cond, element);
|
||||
// sections from Prototype 1.6.1
|
||||
var xpath = ".//*[local-name()='ul' or local-name()='UL']" +
|
||||
"//*[local-name()='li' or local-name()='LI']";
|
||||
this.matcher = ['.//*'];
|
||||
xpath = {
|
||||
descendant: "//*",
|
||||
child: "/*",
|
||||
f: 0
|
||||
};
|
||||
document._getElementsByXPath('.//*' + cond, element);
|
||||
|
||||
// from angular 1.4.8
|
||||
var URL_REGEXP = /^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:/?#]+|\[[a-f\d:]+\])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i;
|
||||
|
18
tests/_test_files/lines/misc.out.js
Normal file
18
tests/_test_files/lines/misc.out.js
Normal file
@@ -0,0 +1,18 @@
|
||||
|
||||
/* misc.in.js */
|
||||
|
||||
/* 1 */ // sections from Prototype 1.6.1
|
||||
/* 2 */ var xpath = ".//*[local-name()='ul' or local-name()='UL']" +
|
||||
/* 3 */ "//*[local-name()='li' or local-name()='LI']";
|
||||
/* 4 */ this.matcher = ['.//*'];
|
||||
/* 5 */ xpath = {
|
||||
/* 6 */ descendant: "//*",
|
||||
/* 7 */ child: "/*",
|
||||
/* 8 */ f: 0
|
||||
/* 9 */ };
|
||||
/* 10 */ document._getElementsByXPath('.//*' + cond, element);
|
||||
/* 11 */
|
||||
/* 12 */ // from angular 1.4.8
|
||||
/* 13 */ var URL_REGEXP = /^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:/?#]+|\[[a-f\d:]+\])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i;
|
||||
/* 14 */
|
||||
/* 15 */
|
13
tests/_test_files/lines/url.in.js
Normal file
13
tests/_test_files/lines/url.in.js
Normal file
@@ -0,0 +1,13 @@
|
||||
foo; /* http://example.com */
|
||||
bar;
|
||||
|
||||
foo; /*
|
||||
http://example.com */
|
||||
bar;
|
||||
|
||||
foo = "http://example.com"; /* hello */
|
||||
bar;
|
||||
|
||||
foo = "http://example.com"; /*
|
||||
hello */
|
||||
bar;
|
17
tests/_test_files/lines/url.out.js
Normal file
17
tests/_test_files/lines/url.out.js
Normal file
@@ -0,0 +1,17 @@
|
||||
|
||||
/* url.in.js */
|
||||
|
||||
/* 1 */ foo; /* http://example.com */
|
||||
/* 2 */ bar;
|
||||
/* 3 */
|
||||
/* 4 */ foo; /*
|
||||
/* 5 *| http://example.com */
|
||||
/* 6 */ bar;
|
||||
/* 7 */
|
||||
/* 8 */ foo = "http://example.com"; /* hello */
|
||||
/* 9 */ bar;
|
||||
/* 10 */
|
||||
/* 11 */ foo = "http://example.com"; /*
|
||||
/* 12 *| hello */
|
||||
/* 13 */ bar;
|
||||
/* 14 */
|
Reference in New Issue
Block a user