diff --git a/_testing/unittests/bootstrap.php b/_testing/unittests/bootstrap.php
index 27ca1635e7e62b1619caacc0960e750b228151ec..6a06a2dff072a26e7b6df7c677739d290b7dae6b 100644
--- a/_testing/unittests/bootstrap.php
+++ b/_testing/unittests/bootstrap.php
@@ -1,6 +1,7 @@
 <?php
 
-define('DOKU_UNITTEST',true);
+define('DOKU_UNITTEST', true);
+define('SIMPLE_TEST', true);
 if(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../../').'/');
 define('DOKU_CONF',realpath(dirname(__FILE__).'/../../conf').'/');
 
diff --git a/_testing/unittests/lib/exe/css_css_compress.test.php b/_testing/unittests/lib/exe/css_css_compress.test.php
new file mode 100644
index 0000000000000000000000000000000000000000..3fbb5820ddb3dcc036768656f02fed5c537f75c4
--- /dev/null
+++ b/_testing/unittests/lib/exe/css_css_compress.test.php
@@ -0,0 +1,68 @@
+<?php
+
+require_once DOKU_INC.'lib/exe/css.php';
+
+
+class css_css_compress_test extends PHPUnit_Framework_TestCase {
+
+    function test_mlcom1(){
+        $text = '/**
+                  * A multi
+                  * line *test*
+                  * check
+                  */';
+        $this->assertEquals(css_compress($text), '');
+    }
+
+    function test_mlcom2(){
+        $text = '#comment/* */ {
+                    color: lime;
+                }';
+        $this->assertEquals(css_compress($text), '#comment/* */{color:lime;}');
+    }
+
+    function test_slcom1(){
+        $text = '// this is a comment';
+        $this->assertEquals(css_compress($text), '');
+    }
+
+    function test_slcom2(){
+        $text = '#foo {
+                    color: lime; // another comment
+                }';
+        $this->assertEquals(css_compress($text), '#foo{color:lime;}');
+    }
+
+    function test_slcom3(){
+        $text = '#foo {
+                    background-image: url(http://foo.bar/baz.jpg);
+                }';
+        $this->assertEquals(css_compress($text), '#foo{background-image:url(http://foo.bar/baz.jpg);}');
+    }
+
+    function test_hack(){
+        $text = '/* Mac IE will not see this and continue with inline-block */
+                 /* \\*/
+                 display: inline; 
+                 /* */';
+        $this->assertEquals(css_compress($text), '/* \\*/display:inline;/* */');
+    }
+
+    function test_hack2(){
+        $text = '/* min-height hack for Internet Explorer http://www.cssplay.co.uk/boxes/minheight.html */
+                 /*\\*/
+                 * html .page {
+                     height: 450px;
+                 }
+                 /**/';
+        $this->assertEquals(css_compress($text), '/*\\*/* html .page{height:450px;}/**/');
+    }
+
+    function test_nl1(){
+        $text = "a{left:20px;\ntop:20px}";
+        $this->assertEquals(css_compress($text), 'a{left:20px;top:20px}');
+    }
+
+}
+
+//Setup VIM: ex: et ts=4 :
diff --git a/_testing/unittests/lib/exe/css_css_loadfile.test.php b/_testing/unittests/lib/exe/css_css_loadfile.test.php
new file mode 100644
index 0000000000000000000000000000000000000000..c1706c4a441aa4fdac9c4fc1d6ee34b92c157b75
--- /dev/null
+++ b/_testing/unittests/lib/exe/css_css_loadfile.test.php
@@ -0,0 +1,55 @@
+<?php
+
+require_once DOKU_INC.'lib/exe/css.php';
+
+class css_css_loadfile_test extends PHPUnit_Framework_TestCase {
+    public function setUp() {
+        $this->file = tempnam('/tmp', 'css');
+    }
+
+    private function csstest($input, $output = null, $location = 'http://www.example.com/') {
+        io_saveFile($this->file, $input);
+        $this->assertEquals(css_loadfile($this->file, $location), (is_null($output) ? $input : $output));
+    }
+
+    public function test_url_relative() {
+        $this->csstest('#test { background: url("test/test.png"); }', '#test { background: url("http://www.example.com/test/test.png"); }');
+        $this->csstest('#test { background: url(\'test/test.png\'); }', '#test { background: url(\'http://www.example.com/test/test.png\'); }');
+    }
+
+    public function test_url_absolute() {
+        $this->csstest('#test { background: url("/test/test.png"); }');
+        $this->csstest('#test { background: url(\'/test/test.png\'); }');
+    }
+
+    public function test_url_with_protocol() {
+        $this->csstest('#test { background: url("http://www.test.com/test/test.png"); }');
+        $this->csstest('#test { background: url("https://www.test.com/test/test.png"); }');
+        $this->csstest('#test { background: url(\'http://www.test.com/test/test.png\'); }');
+        $this->csstest('#test { background: url(\'https://www.test.com/test/test.png\'); }');
+    }
+
+    public function test_import_relative() {
+        $this->csstest('@import "test/test.png";', '@import "http://www.example.com/test/test.png";');
+        $this->csstest('@import \'test/test.png\';', '@import \'http://www.example.com/test/test.png\';');
+    }
+
+    public function test_import_absolute() {
+        $this->csstest('@import "/test/test.png";');
+        $this->csstest('@import \'/test/test.png\';');
+    }
+
+    public function test_import_with_protocol() {
+        $this->csstest('@import "http://www.test.com/test/test.png";');
+        $this->csstest('@import "https://www.test.com/test/test.png";');
+        $this->csstest('@import \'http://www.test.com/test/test.png\';');
+        $this->csstest('@import \'https://www.test.com/test/test.png\';');
+    }
+
+    public function tearDown() {
+        unlink($this->file);
+        unset($this->file);
+    }
+}
+
+//Setup VIM: ex: et ts=4 sw=4 :
diff --git a/_testing/unittests/lib/exe/js_js_compress.test.php b/_testing/unittests/lib/exe/js_js_compress.test.php
new file mode 100644
index 0000000000000000000000000000000000000000..c6b0a2d2cb7a270c41228acf9dbc67bcc3f34213
--- /dev/null
+++ b/_testing/unittests/lib/exe/js_js_compress.test.php
@@ -0,0 +1,128 @@
+<?php
+
+require_once DOKU_INC.'lib/exe/js.php';
+
+
+class js_js_compress_test extends PHPUnit_Framework_TestCase {
+
+    function test_mlcom1(){
+        $text = '/**
+                  * A multi
+                  * line *test*
+                  * check
+                  */';
+        $this->assertEquals(js_compress($text), '');
+    }
+
+    function test_mlcom2(){
+        $text = 'var foo=6;/* another comment */';
+        $this->assertEquals(js_compress($text), 'var foo=6;');
+    }
+
+    function test_mlcomcond(){
+        $text = '/*@if (@_win32)';
+        $this->assertEquals(js_compress($text), '/*@if(@_win32)');
+    }
+
+    function test_slcom1(){
+        $text = '// an comment';
+        $this->assertEquals(js_compress($text), '');
+    }
+
+    function test_slcom2(){
+        $text = 'var foo=6;// another comment ';
+        $this->assertEquals(js_compress($text), 'var foo=6;');
+    }
+
+    function test_slcom3(){
+        $text = 'var foo=6;// another comment / or something with // comments ';
+        $this->assertEquals(js_compress($text), 'var foo=6;');
+    }
+
+    function test_regex1(){
+        $text = 'foo.split( /[a-Z\/]*/ );';
+        $this->assertEquals(js_compress($text), 'foo.split(/[a-Z\/]*/);');
+    }
+
+    function test_regex_in_array(){
+        $text = '[/"/ , /"/ , /"/]';
+        $this->assertEquals(js_compress($text), '[/"/,/"/,/"/]');
+    }
+
+    function test_regex_in_hash(){
+        $text = '{ a : /"/ }';
+        $this->assertEquals(js_compress($text), '{a:/"/}');
+    }
+
+    function test_regex_preceded_by_spaces_caracters(){
+        $text = "text.replace( \t \r\n  /\"/ , ".'"//" )';
+        $this->assertEquals(js_compress($text), 'text.replace(/"/,"//")');
+    }
+
+    function test_dquot1(){
+        $text = 'var foo="Now what \\" \'do we//get /*here*/ ?";';
+        $this->assertEquals(js_compress($text), $text);
+    }
+
+    function test_dquot2(){
+        $text = 'var foo="Now what \\\\\\" \'do we//get /*here*/ ?";';
+        $this->assertEquals(js_compress($text), $text);
+    }
+
+    function test_dquotrunaway(){
+        $text = 'var foo="Now where does it end';
+        $this->assertEquals(js_compress($text), $text);
+    }
+
+    function test_squot1(){
+        $text = "var foo='Now what \\' \"do we//get /*here*/ ?';";
+        $this->assertEquals(js_compress($text), $text);
+    }
+
+    function test_squotrunaway(){
+        $text = "var foo='Now where does it end";
+        $this->assertEquals(js_compress($text), $text);
+    }
+
+    function test_nl1(){
+        $text = "var foo=6;\nvar baz=7;";
+        $this->assertEquals(js_compress($text), 'var foo=6;var baz=7;');
+    }
+
+    function test_lws1(){
+        $text = "  \t  var foo=6;";
+        $this->assertEquals(js_compress($text), 'var foo=6;');
+    }
+
+    function test_tws1(){
+        $text = "var foo=6;  \t  ";
+        $this->assertEquals(js_compress($text), 'var foo=6;');
+    }
+
+    function test_shortcond(){
+        $text = "var foo = (baz) ? 'bar' : 'bla';";
+        $this->assertEquals(js_compress($text), "var foo=(baz)?'bar':'bla';");
+
+    }
+
+    function test_complexminified(){
+        $text = 'if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class=\'test e\'></div><div class=\'test\'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;foo="text/*";bla="*/"';
+
+        $this->assertEquals(js_compress($text),$text);
+    }
+
+    /**
+     * 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->assertEquals(js_compress(file_get_contents($file)),
+                               file_get_contents(substr($file,0,-5).'out.js'), $info);
+        };
+    }
+}
+
+//Setup VIM: ex: et ts=4 :
diff --git a/_testing/unittests/lib/exe/js_js_compress/test-CommentInDoubleQuotes1-in.js b/_testing/unittests/lib/exe/js_js_compress/test-CommentInDoubleQuotes1-in.js
new file mode 100644
index 0000000000000000000000000000000000000000..771dc16407d7098bf4630b8aea2a165a98d25d04
--- /dev/null
+++ b/_testing/unittests/lib/exe/js_js_compress/test-CommentInDoubleQuotes1-in.js
@@ -0,0 +1,5 @@
+
+ var  s  =  " /* this is a comment */ " ;  
+
+
+
diff --git a/_testing/unittests/lib/exe/js_js_compress/test-CommentInDoubleQuotes1-out.js b/_testing/unittests/lib/exe/js_js_compress/test-CommentInDoubleQuotes1-out.js
new file mode 100644
index 0000000000000000000000000000000000000000..7d6a5346e02bd694d99e1a2edc5bbed4281138e9
--- /dev/null
+++ b/_testing/unittests/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/_testing/unittests/lib/exe/js_js_compress/test-CommentInDoubleQuotes2-in.js b/_testing/unittests/lib/exe/js_js_compress/test-CommentInDoubleQuotes2-in.js
new file mode 100644
index 0000000000000000000000000000000000000000..a59f1b7749301884776993ecf8a6439d18f7ac2b
--- /dev/null
+++ b/_testing/unittests/lib/exe/js_js_compress/test-CommentInDoubleQuotes2-in.js
@@ -0,0 +1,5 @@
+
+
+var  s  =  "// this is a comment ";
+
+
diff --git a/_testing/unittests/lib/exe/js_js_compress/test-CommentInDoubleQuotes2-out.js b/_testing/unittests/lib/exe/js_js_compress/test-CommentInDoubleQuotes2-out.js
new file mode 100644
index 0000000000000000000000000000000000000000..caa2fdca25197c4a7ad9b47dc5a41519a93cc0ab
--- /dev/null
+++ b/_testing/unittests/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/_testing/unittests/lib/exe/js_js_compress/test-CommentInSingleQuotes1-in.js b/_testing/unittests/lib/exe/js_js_compress/test-CommentInSingleQuotes1-in.js
new file mode 100644
index 0000000000000000000000000000000000000000..845c59bdfb6a964517d925d2443cd21f069e736a
--- /dev/null
+++ b/_testing/unittests/lib/exe/js_js_compress/test-CommentInSingleQuotes1-in.js
@@ -0,0 +1,5 @@
+
+ var  s  =  ' /* this is a comment */ ' ;  
+
+
+
diff --git a/_testing/unittests/lib/exe/js_js_compress/test-CommentInSingleQuotes1-out.js b/_testing/unittests/lib/exe/js_js_compress/test-CommentInSingleQuotes1-out.js
new file mode 100644
index 0000000000000000000000000000000000000000..b2696cb98822e61e747f726daa0361a05fee0269
--- /dev/null
+++ b/_testing/unittests/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/_testing/unittests/lib/exe/js_js_compress/test-CommentInSingleQuotes2-in.js b/_testing/unittests/lib/exe/js_js_compress/test-CommentInSingleQuotes2-in.js
new file mode 100644
index 0000000000000000000000000000000000000000..0459a4891032bbc41328037b360b0fb75e3e8a8b
--- /dev/null
+++ b/_testing/unittests/lib/exe/js_js_compress/test-CommentInSingleQuotes2-in.js
@@ -0,0 +1,5 @@
+
+
+var  s  =  '// this is a comment ';
+
+
diff --git a/_testing/unittests/lib/exe/js_js_compress/test-CommentInSingleQuotes2-out.js b/_testing/unittests/lib/exe/js_js_compress/test-CommentInSingleQuotes2-out.js
new file mode 100644
index 0000000000000000000000000000000000000000..21b6a410e8ed785aad89c961b9a3ace15f527984
--- /dev/null
+++ b/_testing/unittests/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/_testing/unittests/lib/exe/js_js_compress/test-CommentMultiline-in.js b/_testing/unittests/lib/exe/js_js_compress/test-CommentMultiline-in.js
new file mode 100644
index 0000000000000000000000000000000000000000..b9d16a7bd7d87d212dccc5bac70fc86b136e037e
--- /dev/null
+++ b/_testing/unittests/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/_testing/unittests/lib/exe/js_js_compress/test-CommentMultiline-out.js b/_testing/unittests/lib/exe/js_js_compress/test-CommentMultiline-out.js
new file mode 100644
index 0000000000000000000000000000000000000000..8eed2e57ad934198a7e37f0b6bf4f125604db459
--- /dev/null
+++ b/_testing/unittests/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/_testing/unittests/lib/exe/js_js_compress/test-CommentSingleLine-in.js b/_testing/unittests/lib/exe/js_js_compress/test-CommentSingleLine-in.js
new file mode 100644
index 0000000000000000000000000000000000000000..302d7160bdfde60e13bf967a135519c4b755da51
--- /dev/null
+++ b/_testing/unittests/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/_testing/unittests/lib/exe/js_js_compress/test-CommentSingleLine-out.js b/_testing/unittests/lib/exe/js_js_compress/test-CommentSingleLine-out.js
new file mode 100644
index 0000000000000000000000000000000000000000..8eed2e57ad934198a7e37f0b6bf4f125604db459
--- /dev/null
+++ b/_testing/unittests/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/_testing/unittests/lib/exe/js_js_compress/test-IfThenElseBraces-in.js b/_testing/unittests/lib/exe/js_js_compress/test-IfThenElseBraces-in.js
new file mode 100644
index 0000000000000000000000000000000000000000..afc824762954b17744fc047e2fea2ef6ec73b704
--- /dev/null
+++ b/_testing/unittests/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/_testing/unittests/lib/exe/js_js_compress/test-IfThenElseBraces-out.js b/_testing/unittests/lib/exe/js_js_compress/test-IfThenElseBraces-out.js
new file mode 100644
index 0000000000000000000000000000000000000000..2a982a98e939e145e5b28443b12735f05d2e233d
--- /dev/null
+++ b/_testing/unittests/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/_testing/unittests/lib/exe/js_js_compress/test-IfThenElseNoBraces-in.js b/_testing/unittests/lib/exe/js_js_compress/test-IfThenElseNoBraces-in.js
new file mode 100644
index 0000000000000000000000000000000000000000..79d10775e6ced046891d1e5ed428c419cee99aec
--- /dev/null
+++ b/_testing/unittests/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/_testing/unittests/lib/exe/js_js_compress/test-IfThenElseNoBraces-out.js b/_testing/unittests/lib/exe/js_js_compress/test-IfThenElseNoBraces-out.js
new file mode 100644
index 0000000000000000000000000000000000000000..b087c42fcf22f9789c6da06cdae18671146ddb5e
--- /dev/null
+++ b/_testing/unittests/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/_testing/unittests/lib/exe/js_js_compress/test-RegexpBackslash-in.js b/_testing/unittests/lib/exe/js_js_compress/test-RegexpBackslash-in.js
new file mode 100644
index 0000000000000000000000000000000000000000..503e072832d4fbad2d076c9bf38cf1d02d0d9b73
--- /dev/null
+++ b/_testing/unittests/lib/exe/js_js_compress/test-RegexpBackslash-in.js
@@ -0,0 +1,3 @@
+
+var  r  =  / a backslash\// ;
+
diff --git a/_testing/unittests/lib/exe/js_js_compress/test-RegexpBackslash-out.js b/_testing/unittests/lib/exe/js_js_compress/test-RegexpBackslash-out.js
new file mode 100644
index 0000000000000000000000000000000000000000..e5c83770ca266a8e3a63768a75818594f46fce67
--- /dev/null
+++ b/_testing/unittests/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/_testing/unittests/lib/exe/js_js_compress/test-RegexpSimple-in.js b/_testing/unittests/lib/exe/js_js_compress/test-RegexpSimple-in.js
new file mode 100644
index 0000000000000000000000000000000000000000..2741e74c2449da03d1707fbc08503ec6e5588e3e
--- /dev/null
+++ b/_testing/unittests/lib/exe/js_js_compress/test-RegexpSimple-in.js
@@ -0,0 +1,3 @@
+
+
+var r   =   /simple/g ;
diff --git a/_testing/unittests/lib/exe/js_js_compress/test-RegexpSimple-out.js b/_testing/unittests/lib/exe/js_js_compress/test-RegexpSimple-out.js
new file mode 100644
index 0000000000000000000000000000000000000000..bb530b0a17c4d5615dc38644e3dc510862a493bc
--- /dev/null
+++ b/_testing/unittests/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/_testing/unittests/lib/exe/js_js_compress/test-RegexpSimpleWhitespace-in.js b/_testing/unittests/lib/exe/js_js_compress/test-RegexpSimpleWhitespace-in.js
new file mode 100644
index 0000000000000000000000000000000000000000..c7dbdba3d1215e347f8989ab7c412b7ec7a5d1d8
--- /dev/null
+++ b/_testing/unittests/lib/exe/js_js_compress/test-RegexpSimpleWhitespace-in.js
@@ -0,0 +1,5 @@
+
+
+ var  r  =  / simple with whitespace /g  ;
+
+
diff --git a/_testing/unittests/lib/exe/js_js_compress/test-RegexpSimpleWhitespace-out.js b/_testing/unittests/lib/exe/js_js_compress/test-RegexpSimpleWhitespace-out.js
new file mode 100644
index 0000000000000000000000000000000000000000..5c2db510bd7a2be555a7769ccc17fdd0f6b99ffe
--- /dev/null
+++ b/_testing/unittests/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/_testing/unittests/lib/exe/js_js_compress/test-RegexpString-in.js b/_testing/unittests/lib/exe/js_js_compress/test-RegexpString-in.js
new file mode 100644
index 0000000000000000000000000000000000000000..debb983e55f3f12b96b9a508fc2c6f27b9e5b7f6
--- /dev/null
+++ b/_testing/unittests/lib/exe/js_js_compress/test-RegexpString-in.js
@@ -0,0 +1,3 @@
+
+ var  r  =  "fruit" ;
+ r.replace ( /fruit/g, "apple")  ;
diff --git a/_testing/unittests/lib/exe/js_js_compress/test-RegexpString-out.js b/_testing/unittests/lib/exe/js_js_compress/test-RegexpString-out.js
new file mode 100644
index 0000000000000000000000000000000000000000..92ffc7d47b80f2d57b80025e45fa61ddeda183c7
--- /dev/null
+++ b/_testing/unittests/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/_testing/unittests/lib/exe/js_js_compress/test-StatementDoWhile-in.js b/_testing/unittests/lib/exe/js_js_compress/test-StatementDoWhile-in.js
new file mode 100644
index 0000000000000000000000000000000000000000..0c84c66ec19fdb1e2ee98ef264f16a2d538b9804
--- /dev/null
+++ b/_testing/unittests/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/_testing/unittests/lib/exe/js_js_compress/test-StatementDoWhile-out.js b/_testing/unittests/lib/exe/js_js_compress/test-StatementDoWhile-out.js
new file mode 100644
index 0000000000000000000000000000000000000000..593e9a664a0ff1c05f784482a68016078b50dc36
--- /dev/null
+++ b/_testing/unittests/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/_testing/unittests/lib/exe/js_js_compress/test-StatementForIn-in.js b/_testing/unittests/lib/exe/js_js_compress/test-StatementForIn-in.js
new file mode 100644
index 0000000000000000000000000000000000000000..1b0aeb6ffb6d75affcc72698f2d24396fd27b938
--- /dev/null
+++ b/_testing/unittests/lib/exe/js_js_compress/test-StatementForIn-in.js
@@ -0,0 +1,2 @@
+for ( var  x  in  foo )
+   document.write(x);
diff --git a/_testing/unittests/lib/exe/js_js_compress/test-StatementForIn-out.js b/_testing/unittests/lib/exe/js_js_compress/test-StatementForIn-out.js
new file mode 100644
index 0000000000000000000000000000000000000000..95c85871e31e94b25925ff5839294fa7dddbbd1e
--- /dev/null
+++ b/_testing/unittests/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/_testing/unittests/lib/exe/js_js_compress/test-StatementNew-in.js b/_testing/unittests/lib/exe/js_js_compress/test-StatementNew-in.js
new file mode 100644
index 0000000000000000000000000000000000000000..61f357f3477d70a36412c9d19d91b9cae01ea83b
--- /dev/null
+++ b/_testing/unittests/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/_testing/unittests/lib/exe/js_js_compress/test-StatementNew-out.js b/_testing/unittests/lib/exe/js_js_compress/test-StatementNew-out.js
new file mode 100644
index 0000000000000000000000000000000000000000..0d4ff7f58450309fa5b28ba5ee3a92bccdf1e3e7
--- /dev/null
+++ b/_testing/unittests/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/_testing/unittests/lib/exe/js_js_compress/test-StatementSwitchCase-in.js b/_testing/unittests/lib/exe/js_js_compress/test-StatementSwitchCase-in.js
new file mode 100644
index 0000000000000000000000000000000000000000..39ffc12396155ff4c212ea96c7e7ca82a7276150
--- /dev/null
+++ b/_testing/unittests/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/_testing/unittests/lib/exe/js_js_compress/test-StatementSwitchCase-out.js b/_testing/unittests/lib/exe/js_js_compress/test-StatementSwitchCase-out.js
new file mode 100644
index 0000000000000000000000000000000000000000..e51c07371d050bb515482f09d5a92fc408665c4f
--- /dev/null
+++ b/_testing/unittests/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/_testing/unittests/lib/exe/js_js_compress/test-StringDoubleQuotes-in.js b/_testing/unittests/lib/exe/js_js_compress/test-StringDoubleQuotes-in.js
new file mode 100644
index 0000000000000000000000000000000000000000..57fe13b906b17bd89118bdf8973b41c88511a571
--- /dev/null
+++ b/_testing/unittests/lib/exe/js_js_compress/test-StringDoubleQuotes-in.js
@@ -0,0 +1,3 @@
+
+var  s1  =  "double \"quotes\"" ;
+var  s2  =  "'test'" ;
diff --git a/_testing/unittests/lib/exe/js_js_compress/test-StringDoubleQuotes-out.js b/_testing/unittests/lib/exe/js_js_compress/test-StringDoubleQuotes-out.js
new file mode 100644
index 0000000000000000000000000000000000000000..9f91fc83db01b8e6490e7e104a276c99f02b6a05
--- /dev/null
+++ b/_testing/unittests/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/_testing/unittests/lib/exe/js_js_compress/test-StringSingleQuotes-in.js b/_testing/unittests/lib/exe/js_js_compress/test-StringSingleQuotes-in.js
new file mode 100644
index 0000000000000000000000000000000000000000..bb5f9951ac630591bf87cb58ea12add03290bc84
--- /dev/null
+++ b/_testing/unittests/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/_testing/unittests/lib/exe/js_js_compress/test-StringSingleQuotes-out.js b/_testing/unittests/lib/exe/js_js_compress/test-StringSingleQuotes-out.js
new file mode 100644
index 0000000000000000000000000000000000000000..f38b26544644d4a17616753c174bf5da74b086d6
--- /dev/null
+++ b/_testing/unittests/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