SLING-4462 Resource Editor:
o removed 'grunt-contrib-jasmine' as its phantomjs configuration is broken. See https://github.com/gruntjs/grunt-contrib-jasmine/issues/156
karma-jasmine via phantomjs is equivalent and good.
o configured the env var 'PHANTOMJS_BIN' for the 'karma-phantomjs-launcher' 
o extracted the static content folder to a variable in the gruntfile
o separated the Karma task in a desktop_build target with Firefox and Chrome that can be triggered manually and into a target that will be used be default in the build

git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1669906 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/frontend/Gruntfile.js b/frontend/Gruntfile.js
index d7db9e6..c2e1aea 100644
--- a/frontend/Gruntfile.js
+++ b/frontend/Gruntfile.js
@@ -1,5 +1,13 @@
 module.exports = function(grunt) {
+	
+	var staticContentFolder = '../src/main/resources/SLING-INF/libs/sling/resource-editor-static-content';
+	
 	grunt.initConfig({
+		env : {
+		    build : {
+		    	PHANTOMJS_BIN : 'node_modules/karma-phantomjs-launcher/node_modules/phantomjs/lib/phantom/bin/phantomjs',
+		    }
+		},
 	    less: {
 	      compileCore: {
 	        options: {
@@ -7,10 +15,10 @@
 	          sourceMap: true,
 	          outputSourceFiles: true,
 	          sourceMapURL: 'bootstrap.css.map',
-	          sourceMapFilename: '../src/main/resources/SLING-INF/libs/sling/resource-editor-static-content/css/bootstrap.css.map'
+	          sourceMapFilename: staticContentFolder+'/css/bootstrap.css.map'
 	        },
 	        src: '../src/main/less/reseditor.less',
-	        dest: '../src/main/resources/SLING-INF/libs/sling/resource-editor-static-content/css/bootstrap.css'
+	        dest: staticContentFolder+'/css/bootstrap.css'
 	      }
 	    }, 
 	    watch: {
@@ -33,7 +41,7 @@
 		                  'bootbox/bootbox.min.js',
 		                  'jstree/dist/jstree.min.js'
 		                 ], // Actual pattern(s) to match.
-		            dest: '../src/main/resources/SLING-INF/libs/sling/resource-editor-static-content/js/3rd_party',   // Destination path prefix.
+		            dest: staticContentFolder+'/js/3rd_party',   // Destination path prefix.
 		            flatten: true
 		          },
 		        ],
@@ -48,49 +56,31 @@
 	                  'select2/select2.png',
 	                  'animate.css/animate.min.css',
 	                 ], // Actual pattern(s) to match.
-	            dest: '../src/main/resources/SLING-INF/libs/sling/resource-editor-static-content/css/3rd_party',   // Destination path prefix.
+	            dest: staticContentFolder+'/css/3rd_party',   // Destination path prefix.
 	            flatten: true
 	          },
 	        ],
 	      }
 	    },
-	    jasmine: {
-	        main: {
-	          src: ['../src/main/resources/SLING-INF/libs/sling/resource-editor-static-content/js/jquery.min.js',
-	                '../src/main/resources/SLING-INF/libs/sling/resource-editor-static-content/js/**/*.js'],
-	          options: {
-	            specs: '../src/test/javascript/spec/*spec.js',
-	            helpers: '../src/test/javascript/spec/*Helper.js',
-	            version: '2.2.1',
-	            summary: true
-	          }
-	        }
-	    },
 	    karma: {
 	    	options: {
 	    	    runnerPort: 9999,
 	    	    singleRun: true,
-	    	    browsers: ['PhantomJS'],
-	    	    plugins : ['karma-jasmine', 'karma-phantomjs-launcher'],
-	    	    frameworks: ['jasmine']
+	    	    browsers: ['Chrome', 'Firefox', 'PhantomJS'],
+	    	    plugins : ['karma-jasmine', 'karma-phantomjs-launcher', 'karma-chrome-launcher', 'karma-firefox-launcher', 'karma-ie-launcher'],
+	    	    frameworks: ['jasmine'],
+			    files: ['../src/test/javascript/spec/*spec.js',
+			            staticContentFolder+'/js/3rd_party/jquery.min.js',
+			            staticContentFolder+'/js/**/*.js'
+			           ]
+	    	},  
+	    	desktop_build: {
+	    	    singleRun: true,
+	    	    browsers: ['Chrome', 'Firefox']
 	    	},
 	    	build: {
 	    	    singleRun: true,
-	    	    files: [
-	    	            { src: ['../src/main/resources/SLING-INF/libs/sling/resource-editor-static-content/js/3rd_party/jquery.min.js']},
-	    	            { src: ['../src/test/javascript/spec/*spec.js']},
-	    	            { src: ['../src/main/resources/SLING-INF/libs/sling/resource-editor-static-content/js/**/*.js']}
-	    	          ]
-	    	},
-	    	local_build: {
-	    	    singleRun: true,
-	    	    browsers: ['Chrome', 'Firefox', 'PhantomJS'],
-	    	    plugins : ['karma-jasmine', 'karma-phantomjs-launcher', 'karma-chrome-launcher', 'karma-firefox-launcher', 'karma-ie-launcher'],
-	    	    files: [
-	    	            { src: ['../src/test/javascript/spec/*spec.js']},
-	    	            { src: ['../src/main/resources/SLING-INF/libs/sling/resource-editor-static-content/js/3rd_party/jquery.min.js']},
-	    	            { src: ['../src/main/resources/SLING-INF/libs/sling/resource-editor-static-content/js/**/*.js']}
-	    	          ]
+	    	    browsers: ['PhantomJS']
 	    	},
 	    	watch: {
 	    	    reporters: 'dots',
@@ -101,9 +91,6 @@
 	    },
         webdriver: {
             options: {
-//                desiredCapabilities: {
-//                    browserName: 'chrome'
-//                }
             },
             chrome: {
                 tests: ['../src/test/javascript/e2e/spec/**/*spec.js'],
@@ -129,11 +116,11 @@
     // These plugins provide necessary tasks.
     require('load-grunt-tasks')(grunt, { scope: 'devDependencies' });
 
-//	grunt.registerTask('build', ['less', 'copy', 'jasmine', 'karma:build']);
-	grunt.registerTask('build', ['less', 'copy', 'karma:build']);
+	grunt.registerTask('setup', ['env:build']);
+	grunt.registerTask('build', ['setup', 'less', 'copy', 'karma:build']);
 
 	grunt.registerTask('default', ['build']);
 	
 
-    grunt.registerTask('local_build', ['less', 'copy', 'karma:local_build', 'webdriver:chrome', 'webdriver:firefox', 'build']);
+    grunt.registerTask('desktop_build', ['setup', 'less', 'copy', 'karma:desktop_build', 'webdriver:chrome', 'webdriver:firefox']);
 };
\ No newline at end of file
diff --git a/frontend/package.json b/frontend/package.json
index d537f1f..eddceae 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -17,14 +17,13 @@
     "grunt": "0.4.5",
     "load-grunt-tasks": "2.0.0",
     "grunt-cli": "0.1.13",
+    "grunt-env": "0.4.4",
     "grunt-contrib-less": "1.0.0",
     "grunt-contrib-copy": "0.8.0",
     "grunt-contrib-watch": "0.6.1",
-    "jasmine":"2.2.1",
-    "grunt-contrib-jasmine":"0.8.2",
     "grunt-karma": "0.10.1",
-    "karma-phantomjs-launcher": "0.1.2",
     "karma-jasmine": "0.3.5",
+    "karma-phantomjs-launcher": "~0.1.4",
     "karma-chrome-launcher": "0.1.7",
     "karma-firefox-launcher": "0.1.4",
     "karma-ie-launcher": "0.1.5",
diff --git a/pom.xml b/pom.xml
index fc59a58..1b5e409 100644
--- a/pom.xml
+++ b/pom.xml
@@ -35,6 +35,9 @@
 			<resource>
 				<directory>src/main/resources</directory>
 			</resource>
+			<resource>
+				<directory>src/test/javascript</directory>
+			</resource>
 		</resources>
 		<plugins>
 			<plugin>