summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Gohr <andi@splitbrain.org>2007-03-05 23:30:25 +0100
committerAndreas Gohr <andi@splitbrain.org>2007-03-05 23:30:25 +0100
commitd14bceaa1acadf8ed9dca783421662ae36bcef5d (patch)
treef67f3bba9177cae25676bb60cc4f78c5c0b9cfaa
parent1db60ac7f5f2d7a56286651aa8c681005e79fede (diff)
downloadrpg-d14bceaa1acadf8ed9dca783421662ae36bcef5d.tar.gz
rpg-d14bceaa1acadf8ed9dca783421662ae36bcef5d.tar.bz2
added JsStrip unit test files
This patch adds unit test files from the new release of JsStrip [1]. Some of the tests currently fail pointing to bugs which are fixed in the new JsStrip release. The fixes need to be ported to DokuWiki's js_compress function. This patch also adds a way to output additional info when a test fails. It misuses SimpleTest's signalling which is probably a bad idea but works for now. http://code.google.com/p/jsstrip/ darcs-hash:20070305223025-7ad00-583a70a1ddc374eb61193f9315af99baeedea0be.gz
-rw-r--r--_test/cases/lib/exe/js_js_compress.test.php14
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-CommentInDoubleQuotes1-in.js5
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-CommentInDoubleQuotes1-out.js1
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-CommentInDoubleQuotes2-in.js5
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-CommentInDoubleQuotes2-out.js1
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-CommentInSingleQuotes1-in.js5
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-CommentInSingleQuotes1-out.js1
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-CommentInSingleQuotes2-in.js5
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-CommentInSingleQuotes2-out.js1
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-CommentMultiline-in.js11
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-CommentMultiline-out.js1
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-CommentSingleLine-in.js7
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-CommentSingleLine-out.js1
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-IfThenElseBraces-in.js7
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-IfThenElseBraces-out.js1
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-IfThenElseNoBraces-in.js7
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-IfThenElseNoBraces-out.js1
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-RegexpBackslash-in.js3
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-RegexpBackslash-out.js1
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-RegexpSimple-in.js3
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-RegexpSimple-out.js1
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-RegexpSimpleWhitespace-in.js5
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-RegexpSimpleWhitespace-out.js1
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-RegexpString-in.js3
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-RegexpString-out.js1
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-StatementDoWhile-in.js2
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-StatementDoWhile-out.js1
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-StatementForIn-in.js2
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-StatementForIn-out.js1
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-StatementNew-in.js1
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-StatementNew-out.js1
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-StatementSwitchCase-in.js4
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-StatementSwitchCase-out.js1
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-StringDoubleQuotes-in.js3
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-StringDoubleQuotes-out.js1
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-StringSingleQuotes-in.js8
-rw-r--r--_test/cases/lib/exe/js_js_compress/test-StringSingleQuotes-out.js1
-rw-r--r--_test/lib/cli_reporter.php15
38 files changed, 133 insertions, 0 deletions
diff --git a/_test/cases/lib/exe/js_js_compress.test.php b/_test/cases/lib/exe/js_js_compress.test.php
index 20ad88210..b79cd9ab4 100644
--- a/_test/cases/lib/exe/js_js_compress.test.php
+++ b/_test/cases/lib/exe/js_js_compress.test.php
@@ -89,6 +89,20 @@ class js_js_compress_test extends UnitTestCase {
$this->assertEqual(js_compress($text), "var foo=(baz)?'bar':'bla';");
}
+
+ /**
+ * Test the files provided with the original JsStrip
+ */
+ function test_original(){
+ $files = glob(dirname(__FILE__).'/js_js_compress/test-*-in.js');
+
+ foreach($files as $file){
+ $info = "Using file $file";
+ $this->signal('failinfo',$info);
+ $this->assertEqual(js_compress(file_get_contents($file)),
+ file_get_contents(substr($file,0,-5).'out.js'));
+ };
+ }
}
//Setup VIM: ex: et ts=4 enc=utf-8 :
diff --git a/_test/cases/lib/exe/js_js_compress/test-CommentInDoubleQuotes1-in.js b/_test/cases/lib/exe/js_js_compress/test-CommentInDoubleQuotes1-in.js
new file mode 100644
index 000000000..771dc1640
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-CommentInDoubleQuotes1-in.js
@@ -0,0 +1,5 @@
+
+ var s = " /* this is a comment */ " ;
+
+
+
diff --git a/_test/cases/lib/exe/js_js_compress/test-CommentInDoubleQuotes1-out.js b/_test/cases/lib/exe/js_js_compress/test-CommentInDoubleQuotes1-out.js
new file mode 100644
index 000000000..7d6a5346e
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-CommentInDoubleQuotes1-out.js
@@ -0,0 +1 @@
+var s=" /* this is a comment */ "; \ No newline at end of file
diff --git a/_test/cases/lib/exe/js_js_compress/test-CommentInDoubleQuotes2-in.js b/_test/cases/lib/exe/js_js_compress/test-CommentInDoubleQuotes2-in.js
new file mode 100644
index 000000000..a59f1b774
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-CommentInDoubleQuotes2-in.js
@@ -0,0 +1,5 @@
+
+
+var s = "// this is a comment ";
+
+
diff --git a/_test/cases/lib/exe/js_js_compress/test-CommentInDoubleQuotes2-out.js b/_test/cases/lib/exe/js_js_compress/test-CommentInDoubleQuotes2-out.js
new file mode 100644
index 000000000..caa2fdca2
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-CommentInDoubleQuotes2-out.js
@@ -0,0 +1 @@
+var s="// this is a comment "; \ No newline at end of file
diff --git a/_test/cases/lib/exe/js_js_compress/test-CommentInSingleQuotes1-in.js b/_test/cases/lib/exe/js_js_compress/test-CommentInSingleQuotes1-in.js
new file mode 100644
index 000000000..845c59bdf
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-CommentInSingleQuotes1-in.js
@@ -0,0 +1,5 @@
+
+ var s = ' /* this is a comment */ ' ;
+
+
+
diff --git a/_test/cases/lib/exe/js_js_compress/test-CommentInSingleQuotes1-out.js b/_test/cases/lib/exe/js_js_compress/test-CommentInSingleQuotes1-out.js
new file mode 100644
index 000000000..b2696cb98
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-CommentInSingleQuotes1-out.js
@@ -0,0 +1 @@
+var s=' /* this is a comment */ '; \ No newline at end of file
diff --git a/_test/cases/lib/exe/js_js_compress/test-CommentInSingleQuotes2-in.js b/_test/cases/lib/exe/js_js_compress/test-CommentInSingleQuotes2-in.js
new file mode 100644
index 000000000..0459a4891
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-CommentInSingleQuotes2-in.js
@@ -0,0 +1,5 @@
+
+
+var s = '// this is a comment ';
+
+
diff --git a/_test/cases/lib/exe/js_js_compress/test-CommentInSingleQuotes2-out.js b/_test/cases/lib/exe/js_js_compress/test-CommentInSingleQuotes2-out.js
new file mode 100644
index 000000000..21b6a410e
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-CommentInSingleQuotes2-out.js
@@ -0,0 +1 @@
+var s='// this is a comment '; \ No newline at end of file
diff --git a/_test/cases/lib/exe/js_js_compress/test-CommentMultiline-in.js b/_test/cases/lib/exe/js_js_compress/test-CommentMultiline-in.js
new file mode 100644
index 000000000..b9d16a7bd
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-CommentMultiline-in.js
@@ -0,0 +1,11 @@
+
+ if (true) {
+ /* this
+ * is a
+ * multiline comment */
+ document.write("true"); /* this
+ is another
+ */
+
+}
+
diff --git a/_test/cases/lib/exe/js_js_compress/test-CommentMultiline-out.js b/_test/cases/lib/exe/js_js_compress/test-CommentMultiline-out.js
new file mode 100644
index 000000000..8eed2e57a
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-CommentMultiline-out.js
@@ -0,0 +1 @@
+if(true){document.write("true");} \ No newline at end of file
diff --git a/_test/cases/lib/exe/js_js_compress/test-CommentSingleLine-in.js b/_test/cases/lib/exe/js_js_compress/test-CommentSingleLine-in.js
new file mode 100644
index 000000000..302d7160b
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-CommentSingleLine-in.js
@@ -0,0 +1,7 @@
+
+ if (true) {
+ // this is a single line comment
+ document.write("true") ; // another
+}
+
+
diff --git a/_test/cases/lib/exe/js_js_compress/test-CommentSingleLine-out.js b/_test/cases/lib/exe/js_js_compress/test-CommentSingleLine-out.js
new file mode 100644
index 000000000..8eed2e57a
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-CommentSingleLine-out.js
@@ -0,0 +1 @@
+if(true){document.write("true");} \ No newline at end of file
diff --git a/_test/cases/lib/exe/js_js_compress/test-IfThenElseBraces-in.js b/_test/cases/lib/exe/js_js_compress/test-IfThenElseBraces-in.js
new file mode 100644
index 000000000..afc824762
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-IfThenElseBraces-in.js
@@ -0,0 +1,7 @@
+
+
+if ( true ) {
+ document.write("foo");
+} else {
+ document.write("bar");
+}
diff --git a/_test/cases/lib/exe/js_js_compress/test-IfThenElseBraces-out.js b/_test/cases/lib/exe/js_js_compress/test-IfThenElseBraces-out.js
new file mode 100644
index 000000000..2a982a98e
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-IfThenElseBraces-out.js
@@ -0,0 +1 @@
+if(true){document.write("foo");}else{document.write("bar");} \ No newline at end of file
diff --git a/_test/cases/lib/exe/js_js_compress/test-IfThenElseNoBraces-in.js b/_test/cases/lib/exe/js_js_compress/test-IfThenElseNoBraces-in.js
new file mode 100644
index 000000000..79d10775e
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-IfThenElseNoBraces-in.js
@@ -0,0 +1,7 @@
+
+
+if ( true )
+ document.write("foo");
+ else
+ document.write("bar");
+
diff --git a/_test/cases/lib/exe/js_js_compress/test-IfThenElseNoBraces-out.js b/_test/cases/lib/exe/js_js_compress/test-IfThenElseNoBraces-out.js
new file mode 100644
index 000000000..b087c42fc
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-IfThenElseNoBraces-out.js
@@ -0,0 +1 @@
+if(true)document.write("foo");else document.write("bar"); \ No newline at end of file
diff --git a/_test/cases/lib/exe/js_js_compress/test-RegexpBackslash-in.js b/_test/cases/lib/exe/js_js_compress/test-RegexpBackslash-in.js
new file mode 100644
index 000000000..503e07283
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-RegexpBackslash-in.js
@@ -0,0 +1,3 @@
+
+var r = / a backslash\// ;
+
diff --git a/_test/cases/lib/exe/js_js_compress/test-RegexpBackslash-out.js b/_test/cases/lib/exe/js_js_compress/test-RegexpBackslash-out.js
new file mode 100644
index 000000000..e5c83770c
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-RegexpBackslash-out.js
@@ -0,0 +1 @@
+var r=/ a backslash\//; \ No newline at end of file
diff --git a/_test/cases/lib/exe/js_js_compress/test-RegexpSimple-in.js b/_test/cases/lib/exe/js_js_compress/test-RegexpSimple-in.js
new file mode 100644
index 000000000..2741e74c2
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-RegexpSimple-in.js
@@ -0,0 +1,3 @@
+
+
+var r = /simple/g ;
diff --git a/_test/cases/lib/exe/js_js_compress/test-RegexpSimple-out.js b/_test/cases/lib/exe/js_js_compress/test-RegexpSimple-out.js
new file mode 100644
index 000000000..bb530b0a1
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-RegexpSimple-out.js
@@ -0,0 +1 @@
+var r=/simple/g; \ No newline at end of file
diff --git a/_test/cases/lib/exe/js_js_compress/test-RegexpSimpleWhitespace-in.js b/_test/cases/lib/exe/js_js_compress/test-RegexpSimpleWhitespace-in.js
new file mode 100644
index 000000000..c7dbdba3d
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-RegexpSimpleWhitespace-in.js
@@ -0,0 +1,5 @@
+
+
+ var r = / simple with whitespace /g ;
+
+
diff --git a/_test/cases/lib/exe/js_js_compress/test-RegexpSimpleWhitespace-out.js b/_test/cases/lib/exe/js_js_compress/test-RegexpSimpleWhitespace-out.js
new file mode 100644
index 000000000..5c2db510b
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-RegexpSimpleWhitespace-out.js
@@ -0,0 +1 @@
+var r=/ simple with whitespace /g; \ No newline at end of file
diff --git a/_test/cases/lib/exe/js_js_compress/test-RegexpString-in.js b/_test/cases/lib/exe/js_js_compress/test-RegexpString-in.js
new file mode 100644
index 000000000..debb983e5
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-RegexpString-in.js
@@ -0,0 +1,3 @@
+
+ var r = "fruit" ;
+ r.replace ( /fruit/g, "apple") ;
diff --git a/_test/cases/lib/exe/js_js_compress/test-RegexpString-out.js b/_test/cases/lib/exe/js_js_compress/test-RegexpString-out.js
new file mode 100644
index 000000000..92ffc7d47
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-RegexpString-out.js
@@ -0,0 +1 @@
+var r="fruit";r.replace(/fruit/g,"apple"); \ No newline at end of file
diff --git a/_test/cases/lib/exe/js_js_compress/test-StatementDoWhile-in.js b/_test/cases/lib/exe/js_js_compress/test-StatementDoWhile-in.js
new file mode 100644
index 000000000..0c84c66ec
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-StatementDoWhile-in.js
@@ -0,0 +1,2 @@
+var x = 0;
+ do x=x+1 while (x < 10);
diff --git a/_test/cases/lib/exe/js_js_compress/test-StatementDoWhile-out.js b/_test/cases/lib/exe/js_js_compress/test-StatementDoWhile-out.js
new file mode 100644
index 000000000..593e9a664
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-StatementDoWhile-out.js
@@ -0,0 +1 @@
+var x=0;do x=x+1 while(x<10); \ No newline at end of file
diff --git a/_test/cases/lib/exe/js_js_compress/test-StatementForIn-in.js b/_test/cases/lib/exe/js_js_compress/test-StatementForIn-in.js
new file mode 100644
index 000000000..1b0aeb6ff
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-StatementForIn-in.js
@@ -0,0 +1,2 @@
+for ( var x in foo )
+ document.write(x);
diff --git a/_test/cases/lib/exe/js_js_compress/test-StatementForIn-out.js b/_test/cases/lib/exe/js_js_compress/test-StatementForIn-out.js
new file mode 100644
index 000000000..95c85871e
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-StatementForIn-out.js
@@ -0,0 +1 @@
+for(var x in foo)document.write(x); \ No newline at end of file
diff --git a/_test/cases/lib/exe/js_js_compress/test-StatementNew-in.js b/_test/cases/lib/exe/js_js_compress/test-StatementNew-in.js
new file mode 100644
index 000000000..61f357f34
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-StatementNew-in.js
@@ -0,0 +1 @@
+var x = new Object(); \ No newline at end of file
diff --git a/_test/cases/lib/exe/js_js_compress/test-StatementNew-out.js b/_test/cases/lib/exe/js_js_compress/test-StatementNew-out.js
new file mode 100644
index 000000000..0d4ff7f58
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-StatementNew-out.js
@@ -0,0 +1 @@
+var x=new Object(); \ No newline at end of file
diff --git a/_test/cases/lib/exe/js_js_compress/test-StatementSwitchCase-in.js b/_test/cases/lib/exe/js_js_compress/test-StatementSwitchCase-in.js
new file mode 100644
index 000000000..39ffc1239
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-StatementSwitchCase-in.js
@@ -0,0 +1,4 @@
+var x = 1;
+switch (x) {
+ case 1: document.write(1);
+} \ No newline at end of file
diff --git a/_test/cases/lib/exe/js_js_compress/test-StatementSwitchCase-out.js b/_test/cases/lib/exe/js_js_compress/test-StatementSwitchCase-out.js
new file mode 100644
index 000000000..e51c07371
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-StatementSwitchCase-out.js
@@ -0,0 +1 @@
+var x=1;switch(x){case 1:document.write(1);} \ No newline at end of file
diff --git a/_test/cases/lib/exe/js_js_compress/test-StringDoubleQuotes-in.js b/_test/cases/lib/exe/js_js_compress/test-StringDoubleQuotes-in.js
new file mode 100644
index 000000000..57fe13b90
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-StringDoubleQuotes-in.js
@@ -0,0 +1,3 @@
+
+var s1 = "double \"quotes\"" ;
+var s2 = "'test'" ;
diff --git a/_test/cases/lib/exe/js_js_compress/test-StringDoubleQuotes-out.js b/_test/cases/lib/exe/js_js_compress/test-StringDoubleQuotes-out.js
new file mode 100644
index 000000000..9f91fc83d
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-StringDoubleQuotes-out.js
@@ -0,0 +1 @@
+var s1="double \"quotes\"";var s2="'test'"; \ No newline at end of file
diff --git a/_test/cases/lib/exe/js_js_compress/test-StringSingleQuotes-in.js b/_test/cases/lib/exe/js_js_compress/test-StringSingleQuotes-in.js
new file mode 100644
index 000000000..bb5f9951a
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-StringSingleQuotes-in.js
@@ -0,0 +1,8 @@
+
+var s1 = 'single \'quotes\' ' ;
+
+var s2= '/* test */' ;
+
+var s3 = '// test' ;
+
+var s4 = '"test"' ;
diff --git a/_test/cases/lib/exe/js_js_compress/test-StringSingleQuotes-out.js b/_test/cases/lib/exe/js_js_compress/test-StringSingleQuotes-out.js
new file mode 100644
index 000000000..f38b26544
--- /dev/null
+++ b/_test/cases/lib/exe/js_js_compress/test-StringSingleQuotes-out.js
@@ -0,0 +1 @@
+var s1='single \'quotes\' ';var s2='/* test */';var s3='// test';var s4='"test"'; \ No newline at end of file
diff --git a/_test/lib/cli_reporter.php b/_test/lib/cli_reporter.php
index a65112a34..e83911c73 100644
--- a/_test/lib/cli_reporter.php
+++ b/_test/lib/cli_reporter.php
@@ -23,6 +23,7 @@ if (version_compare(phpversion(), '4.3.0', '<') ||
class CLIReporter extends SimpleReporter {
var $faildetail_separator = ST_FAILDETAIL_SEPARATOR;
+ var $_failinfo;
function CLIReporter($faildetail_separator = NULL) {
$this->SimpleReporter();
@@ -54,6 +55,10 @@ class CLIReporter extends SimpleReporter {
parent::paintFail($message);
fwrite(STDERR, 'FAIL' . $this->faildetail_separator .
$this->_paintTestFailDetail($message));
+ if($this->_failinfo){
+ fwrite(STDERR, ' additional info was: '.$this->_failinfo."\n");
+ $this->_failinfo = '';
+ }
}
/**
@@ -66,6 +71,16 @@ class CLIReporter extends SimpleReporter {
}
/**
+ * Handle failinfo message
+ */
+ function paintSignal($type,$message) {
+ parent::paintSignal($type,$message);
+ if($type = 'failinfo') $this->_failinfo = $message;
+ }
+
+
+
+ /**
* Paint a footer with test case name, timestamp, counts of fails and
* exceptions.
*/