aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDi Peng2011-08-15 16:17:12 -0700
committerIgor Minar2011-09-13 01:02:22 +0200
commita13653c81431bf51fed2a958514ebfb9aeb2dc14 (patch)
tree3a2b81ff8661aa8b3b0d8bdbc5d01d2e54023d6f
parent8017340cd106156e84508fa8061bd98004eff487 (diff)
downloadangular.js-a13653c81431bf51fed2a958514ebfb9aeb2dc14.tar.bz2
refactor(angular): externalize script load order into JSON
- move all script load order into angularFiles.js - rakefile and angular-bootstrap.js use angularFiles.js to get script orders - gen_jstd_configs.js uses angularFiles.js to generate various jstd config files - run gen_jstd_configs.js whenever we run server.sh Closes #470
-rw-r--r--.gitignore1
-rw-r--r--Rakefile64
-rw-r--r--angularFiles.js139
-rwxr-xr-xgen_jstd_configs.js43
-rw-r--r--jsTestDriver-coverage.conf68
-rw-r--r--jsTestDriver-jquery.conf64
-rw-r--r--jsTestDriver-perf.conf50
-rw-r--r--jsTestDriver-scenario.conf10
-rw-r--r--jsTestDriver.conf63
-rwxr-xr-xserver.sh1
-rw-r--r--src/angular-bootstrap.js53
11 files changed, 197 insertions, 359 deletions
diff --git a/.gitignore b/.gitignore
index 487c14ac..2a27fdd8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,3 +10,4 @@ performance/temp*.html
*~
angular.js.tmproj
node_modules
+jsTestDriver*.conf
diff --git a/Rakefile b/Rakefile
index 9e13eacb..0af6cab1 100644
--- a/Rakefile
+++ b/Rakefile
@@ -1,62 +1,8 @@
require 'yaml'
include FileUtils
-ANGULAR = [
- 'src/Angular.js',
- 'src/JSON.js',
- 'src/Compiler.js',
- 'src/Scope.js',
- 'src/Injector.js',
- 'src/parser.js',
- 'src/Resource.js',
- 'src/Browser.js',
- 'src/sanitizer.js',
- 'src/jqLite.js',
- 'src/apis.js',
- 'src/filters.js',
- 'src/formatters.js',
- 'src/validators.js',
- 'src/service/cookieStore.js',
- 'src/service/cookies.js',
- 'src/service/defer.js',
- 'src/service/document.js',
- 'src/service/exceptionHandler.js',
- 'src/service/hover.js',
- 'src/service/invalidWidgets.js',
- 'src/service/location.js',
- 'src/service/log.js',
- 'src/service/resource.js',
- 'src/service/route.js',
- 'src/service/routeParams.js',
- 'src/service/sniffer.js',
- 'src/service/window.js',
- 'src/service/xhr.bulk.js',
- 'src/service/xhr.cache.js',
- 'src/service/xhr.error.js',
- 'src/service/xhr.js',
- 'src/service/locale.js',
- 'src/directives.js',
- 'src/markups.js',
- 'src/widgets.js',
- 'src/AngularPublic.js',
-]
-
-ANGULAR_SCENARIO = [
- 'src/scenario/Scenario.js',
- 'src/scenario/Application.js',
- 'src/scenario/Describe.js',
- 'src/scenario/Future.js',
- 'src/scenario/ObjectModel.js',
- 'src/scenario/Describe.js',
- 'src/scenario/Runner.js',
- 'src/scenario/SpecRunner.js',
- 'src/scenario/dsl.js',
- 'src/scenario/matchers.js',
- 'src/scenario/output/Html.js',
- 'src/scenario/output/Json.js',
- 'src/scenario/output/Xml.js',
- 'src/scenario/output/Object.js'
-]
+content = File.open('angularFiles.js', 'r') {|f| f.read }
+files = eval(content.gsub(/angularFiles = /, '').gsub(/:/, '=>'));
BUILD_DIR = 'build'
@@ -92,8 +38,8 @@ task :compile_scenario => :init do
deps = [
'lib/jquery/jquery-1.4.2.js',
'src/scenario/angular.prefix',
- ANGULAR,
- ANGULAR_SCENARIO,
+ files['angularSrc'],
+ files['angularScenario'],
'src/scenario/angular.suffix',
]
@@ -194,7 +140,7 @@ task :compile => [:init, :compile_scenario, :compile_jstd_scenario_adapter, :gen
deps = [
'src/angular.prefix',
- ANGULAR,
+ files['angularSrc'],
'src/angular.suffix',
]
diff --git a/angularFiles.js b/angularFiles.js
new file mode 100644
index 00000000..115f0541
--- /dev/null
+++ b/angularFiles.js
@@ -0,0 +1,139 @@
+angularFiles = {
+ 'angularSrc': [
+ 'src/Angular.js',
+ 'src/JSON.js',
+ 'src/Compiler.js',
+ 'src/Scope.js',
+ 'src/Injector.js',
+ 'src/parser.js',
+ 'src/Resource.js',
+ 'src/Browser.js',
+ 'src/sanitizer.js',
+ 'src/jqLite.js',
+ 'src/apis.js',
+ 'src/filters.js',
+ 'src/formatters.js',
+ 'src/validators.js',
+ 'src/service/cookieStore.js',
+ 'src/service/cookies.js',
+ 'src/service/defer.js',
+ 'src/service/document.js',
+ 'src/service/exceptionHandler.js',
+ 'src/service/hover.js',
+ 'src/service/invalidWidgets.js',
+ 'src/service/location.js',
+ 'src/service/log.js',
+ 'src/service/resource.js',
+ 'src/service/route.js',
+ 'src/service/routeParams.js',
+ 'src/service/sniffer.js',
+ 'src/service/window.js',
+ 'src/service/xhr.bulk.js',
+ 'src/service/xhr.cache.js',
+ 'src/service/xhr.error.js',
+ 'src/service/xhr.js',
+ 'src/service/locale.js',
+ 'src/directives.js',
+ 'src/markups.js',
+ 'src/widgets.js',
+ 'src/AngularPublic.js',
+ ],
+
+ 'angularScenario': [
+ 'src/scenario/Scenario.js',
+ 'src/scenario/Application.js',
+ 'src/scenario/Describe.js',
+ 'src/scenario/Future.js',
+ 'src/scenario/ObjectModel.js',
+ 'src/scenario/Describe.js',
+ 'src/scenario/Runner.js',
+ 'src/scenario/SpecRunner.js',
+ 'src/scenario/dsl.js',
+ 'src/scenario/matchers.js',
+ 'src/scenario/output/Html.js',
+ 'src/scenario/output/Json.js',
+ 'src/scenario/output/Xml.js',
+ 'src/scenario/output/Object.js'
+ ],
+
+ 'jstd': [
+ 'lib/jasmine-1.0.1/jasmine.js',
+ 'lib/jasmine-jstd-adapter/JasmineAdapter.js',
+ 'lib/jquery/jquery-1.4.2.js',
+ 'test/jquery_remove.js',
+ '@angularSrc',
+ 'example/personalLog/*.js',
+ 'test/testabilityPatch.js',
+ 'src/scenario/Scenario.js',
+ 'src/scenario/output/*.js',
+ 'src/jstd-scenario-adapter/*.js',
+ 'src/scenario/*.js',
+ 'src/angular-mocks.js',
+ 'test/mocks.js',
+ 'test/scenario/*.js',
+ 'test/scenario/output/*.js',
+ 'test/jstd-scenario-adapter/*.js',
+ 'test/*.js',
+ 'test/service/*.js',
+ 'example/personalLog/test/*.js'
+ ],
+
+ 'jstdExclude': [
+ 'test/jquery_alias.js',
+ 'src/angular-bootstrap.js',
+ 'src/scenario/angular-bootstrap.js',
+ 'src/AngularPublic.js'
+ ],
+
+ 'jstdScenario': [
+ 'build/angular-scenario.js',
+ 'build/jstd-scenario-adapter-config.js',
+ 'build/jstd-scenario-adapter.js',
+ 'build/docs/docs-scenario.js'
+ ],
+
+ 'jstdPerf': [
+ 'lib/jasmine-1.0.1/jasmine.js',
+ 'lib/jasmine-jstd-adapter/JasmineAdapter.js',
+ 'angularSrc',
+ 'src/angular-mocks.js',
+ 'perf/data/*.js',
+ 'perf/testUtils.js',
+ 'perf/*.js'
+ ],
+
+ 'jstdPerfExclude': [
+ 'src/angular-bootstrap.js',
+ 'src/scenario/angular-bootstrap.js',
+ 'src/AngularPublic.js'
+ ],
+
+ 'jstdJquery': [
+ 'lib/jasmine-1.0.1/jasmine.js',
+ 'lib/jasmine-jstd-adapter/JasmineAdapter.js',
+ 'lib/jquery/jquery-1.4.2.js',
+ 'test/jquery_alias.js',
+ '@angularSrc',
+ 'example/personalLog/*.js',
+ 'test/testabilityPatch.js',
+ 'src/scenario/Scenario.js',
+ 'src/scenario/output/*.js',
+ 'src/jstd-scenario-adapter/*.js',
+ 'src/scenario/*.js',
+ 'src/angular-mocks.js',
+ 'test/mocks.js',
+ 'test/scenario/*.js',
+ 'test/scenario/output/*.js',
+ 'test/jstd-scenario-adapter/*.js',
+ 'test/*.js',
+ 'test/service/*.js',
+ 'example/personalLog/test/*.js'
+ ],
+
+ 'jstdJqueryExclude': [
+ 'src/angular-bootstrap.js',
+ 'src/AngularPublic.js',
+ 'src/scenario/angular-bootstrap.js',
+ 'test/jquery_remove.js'
+ ]
+}
diff --git a/gen_jstd_configs.js b/gen_jstd_configs.js
new file mode 100755
index 00000000..15d8491d
--- /dev/null
+++ b/gen_jstd_configs.js
@@ -0,0 +1,43 @@
+#!/usr/bin/env node
+/* This file reads in list of files from angularFiles.js and generate various jstd config files */
+
+var fs = require('fs'),
+ angularSrc,
+ angularScenario;
+
+fs.readFile('angularFiles.js', function(err, data) {
+ eval(data.toString());
+ var prefix = 'server: http://localhost:9876\n\n',
+ prefixScenario = 'server: http://localhost:9877\n\n';
+
+ angularSrc = angularFiles.angularSrc.join('\n- ');
+ angularScenario = angularFiles.angularScenario.join('\n- ');
+
+ fs.writeFile('./jsTestDriver.conf', prefix + combine(angularFiles.jstd,
+ angularFiles.jstdExclude));
+
+ fs.writeFile('./jsTestDriver-scenario.conf', prefixScenario +
+ combine(angularFiles.jstdScenario) +
+ '\n\nproxy:\n- {matcher: "*", server: "http://localhost:8000"}');
+
+ fs.writeFile('./jsTestDriver-perf.conf', prefix + combine(angularFiles.jstdPerf,
+ angularFiles.jstdPerfExclude));
+
+ fs.writeFile('./jsTestDriver-jquery.conf', prefix + combine(angularFiles.jstdJquery,
+ angularFiles.jstdJqueryExclude));
+
+ fs.writeFile('./jsTestDriver-coverage.conf', prefix +
+ combine(angularFiles.jstd, angularFiles.jstdExclude) +
+ '\n\nplugin:\n- name: "coverage"\n' +
+ 'jar: "lib/jstestdriver/coverage.jar"\n' +
+ 'module: "com.google.jstestdriver.coverage.CoverageModule"');
+});
+
+function combine(load, exclude) {
+ var fileList = 'load:\n- ' + load.join('\n- ');
+ if (exclude) fileList += ('\n\nexclude:\n- ' + exclude.join('\n- '));
+
+ //Replace placeholders for src list before returning
+ return fileList.replace(/@angularSrc/g, angularSrc);
+}
+
diff --git a/jsTestDriver-coverage.conf b/jsTestDriver-coverage.conf
deleted file mode 100644
index 0b8907b6..00000000
--- a/jsTestDriver-coverage.conf
+++ /dev/null
@@ -1,68 +0,0 @@
-server: http://localhost:9876
-
-load:
- - lib/jasmine-1.0.1/jasmine.js
- - lib/jasmine-jstd-adapter/JasmineAdapter.js
- - lib/jquery/jquery-1.4.2.js
- - test/jquery_remove.js
- - src/Angular.js
- - src/JSON.js
- - src/Compiler.js
- - src/Scope.js
- - src/Injector.js
- - src/parser.js
- - src/Resource.js
- - src/Browser.js
- - src/sanitizer.js
- - src/jqLite.js
- - src/apis.js
- - src/filters.js
- - src/formatters.js
- - src/validators.js
- - src/service/cookieStore.js
- - src/service/cookies.js
- - src/service/defer.js
- - src/service/document.js
- - src/service/exceptionHandler.js
- - src/service/hover.js
- - src/service/invalidWidgets.js
- - src/service/location.js
- - src/service/log.js
- - src/service/resource.js
- - src/service/route.js
- - src/service/sniffer.js
- - src/service/window.js
- - src/service/xhr.bulk.js
- - src/service/xhr.cache.js
- - src/service/xhr.error.js
- - src/service/xhr.js
- - src/service/locale.js
- - src/directives.js
- - src/markups.js
- - src/widgets.js
- - example/personalLog/*.js
- - test/testabilityPatch.js
- - src/scenario/Scenario.js
- - src/scenario/output/*.js
- - src/jstd-scenario-adapter/*.js
- - src/scenario/*.js
- - src/angular-mocks.js
- - test/mocks.js
- - test/scenario/*.js
- - test/scenario/output/*.js
- - test/jstd-scenario-adapter/*.js
- - test/*.js
- - test/service/*.js
- - example/personalLog/test/*.js
-
-exclude:
- - test/jquery_alias.js
- - src/angular-bootstrap.js
- - src/scenario/angular-bootstrap.js
- - src/AngularPublic.js
-
-plugin:
- - name: "coverage"
- jar: "lib/jstestdriver/coverage.jar"
- module: "com.google.jstestdriver.coverage.CoverageModule"
-
diff --git a/jsTestDriver-jquery.conf b/jsTestDriver-jquery.conf
deleted file mode 100644
index 7dc2b447..00000000
--- a/jsTestDriver-jquery.conf
+++ /dev/null
@@ -1,64 +0,0 @@
-server: http://localhost:9876
-
-load:
- - lib/jasmine-1.0.1/jasmine.js
- - lib/jasmine-jstd-adapter/JasmineAdapter.js
- - lib/jquery/jquery-1.4.2.js
- - test/jquery_alias.js
- - src/Angular.js
- - src/JSON.js
- - src/Compiler.js
- - src/Scope.js
- - src/Injector.js
- - src/parser.js
- - src/Resource.js
- - src/Browser.js
- - src/sanitizer.js
- - src/jqLite.js
- - src/apis.js
- - src/filters.js
- - src/formatters.js
- - src/validators.js
- - src/service/cookieStore.js
- - src/service/cookies.js
- - src/service/defer.js
- - src/service/document.js
- - src/service/exceptionHandler.js
- - src/service/hover.js
- - src/service/invalidWidgets.js
- - src/service/location.js
- - src/service/log.js
- - src/service/resource.js
- - src/service/route.js
- - src/service/routeParams.js
- - src/service/sniffer.js
- - src/service/window.js
- - src/service/xhr.bulk.js
- - src/service/xhr.cache.js
- - src/service/xhr.error.js
- - src/service/xhr.js
- - src/service/locale.js
- - src/directives.js
- - src/markups.js
- - src/widgets.js
- - example/personalLog/*.js
- - test/testabilityPatch.js
- - src/scenario/Scenario.js
- - src/scenario/output/*.js
- - src/jstd-scenario-adapter/*.js
- - src/scenario/*.js
- - src/angular-mocks.js
- - test/mocks.js
- - test/scenario/*.js
- - test/scenario/output/*.js
- - test/jstd-scenario-adapter/*.js
- - test/*.js
- - test/service/*.js
- - example/personalLog/test/*.js
-
-exclude:
- - src/angular-bootstrap.js
- - src/AngularPublic.js
- - src/scenario/angular-bootstrap.js
- - test/jquery_remove.js
-
diff --git a/jsTestDriver-perf.conf b/jsTestDriver-perf.conf
deleted file mode 100644
index 2a3dbabe..00000000
--- a/jsTestDriver-perf.conf
+++ /dev/null
@@ -1,50 +0,0 @@
-server: http://localhost:9876
-
-load:
- - lib/jasmine-1.0.1/jasmine.js
- - lib/jasmine-jstd-adapter/JasmineAdapter.js
- - src/Angular.js
- - src/JSON.js
- - src/Compiler.js
- - src/Scope.js
- - src/Injector.js
- - src/parser.js
- - src/Resource.js
- - src/Browser.js
- - src/sanitizer.js
- - src/jqLite.js
- - src/apis.js
- - src/filters.js
- - src/formatters.js
- - src/validators.js
- - src/service/cookieStore.js
- - src/service/cookies.js
- - src/service/defer.js
- - src/service/document.js
- - src/service/exceptionHandler.js
- - src/service/hover.js
- - src/service/invalidWidgets.js
- - src/service/location.js
- - src/service/log.js
- - src/service/resource.js
- - src/service/route.js
- - src/service/routeParams.js
- - src/service/sniffer.js
- - src/service/window.js
- - src/service/xhr.bulk.js
- - src/service/xhr.cache.js
- - src/service/xhr.error.js
- - src/service/xhr.js
- - src/service/locale.js
- - src/directives.js
- - src/markups.js
- - src/widgets.js
- - src/angular-mocks.js
- - perf/data/*.js
- - perf/testUtils.js
- - perf/*.js
-
-exclude:
- - src/angular-bootstrap.js
- - src/scenario/angular-bootstrap.js
- - src/AngularPublic.js
diff --git a/jsTestDriver-scenario.conf b/jsTestDriver-scenario.conf
deleted file mode 100644
index 1ad7d32f..00000000
--- a/jsTestDriver-scenario.conf
+++ /dev/null
@@ -1,10 +0,0 @@
-server: http://localhost:9877
-
-load:
- - build/angular-scenario.js
- - build/jstd-scenario-adapter-config.js
- - build/jstd-scenario-adapter.js
- - build/docs/docs-scenario.js
-
-proxy:
- - {matcher: "*", server: "http://localhost:8000"}
diff --git a/jsTestDriver.conf b/jsTestDriver.conf
deleted file mode 100644
index b2500b01..00000000
--- a/jsTestDriver.conf
+++ /dev/null
@@ -1,63 +0,0 @@
-server: http://localhost:9876
-
-load:
- - lib/jasmine-1.0.1/jasmine.js
- - lib/jasmine-jstd-adapter/JasmineAdapter.js
- - lib/jquery/jquery-1.4.2.js
- - test/jquery_remove.js
- - src/Angular.js
- - src/JSON.js
- - src/Compiler.js
- - src/Scope.js
- - src/Injector.js
- - src/parser.js
- - src/Resource.js
- - src/Browser.js
- - src/sanitizer.js
- - src/jqLite.js
- - src/apis.js
- - src/filters.js
- - src/formatters.js
- - src/validators.js
- - src/service/cookieStore.js
- - src/service/cookies.js
- - src/service/defer.js
- - src/service/document.js
- - src/service/exceptionHandler.js
- - src/service/hover.js
- - src/service/invalidWidgets.js
- - src/service/location.js
- - src/service/log.js
- - src/service/resource.js
- - src/service/route.js
- - src/service/routeParams.js
- - src/service/sniffer.js
- - src/service/window.js
- - src/service/xhr.bulk.js
- - src/service/xhr.cache.js
- - src/service/xhr.error.js
- - src/service/xhr.js
- - src/service/locale.js
- - src/directives.js
- - src/markups.js
- - src/widgets.js
- - example/personalLog/*.js
- - test/testabilityPatch.js
- - src/scenario/Scenario.js
- - src/scenario/output/*.js
- - src/jstd-scenario-adapter/*.js
- - src/scenario/*.js
- - src/angular-mocks.js
- - test/mocks.js
- - test/scenario/*.js
- - test/scenario/output/*.js
- - test/jstd-scenario-adapter/*.js
- - test/*.js
- - test/service/*.js
- - example/personalLog/test/*.js
-
-exclude:
- - test/jquery_alias.js
- - src/angular-bootstrap.js
- - src/scenario/angular-bootstrap.js
- - src/AngularPublic.js
diff --git a/server.sh b/server.sh
index ba667656..a9b9bfd6 100755
--- a/server.sh
+++ b/server.sh
@@ -1,3 +1,4 @@
#!/bin/bash
+node gen_jstd_configs.js
java -jar lib/jstestdriver/JsTestDriver.jar --port 9876 --browserTimeout 90000
diff --git a/src/angular-bootstrap.js b/src/angular-bootstrap.js
index 9f08ff94..71770725 100644
--- a/src/angular-bootstrap.js
+++ b/src/angular-bootstrap.js
@@ -64,7 +64,10 @@
}
};
- function addScripts(){
+ window.addScripts = function(scripts) {
+ delete window.addScripts;
+ delete window.angularFiles;
+
var prop, i;
// initialize the window property cache
@@ -75,8 +78,8 @@
}
// load the js scripts
- for (i in Array.prototype.slice.call(arguments, 0)) {
- var file = arguments[i];
+ for (i in scripts) {
+ var file = scripts[i].replace(/src\//, '');
document.write('<script type="text/javascript" src="' + serverPath + file + '" ' +
'onload="angularClobberTest(\'' + file + '\')"></script>');
}
@@ -89,48 +92,8 @@
addCss('angular.css');
- addScripts('Angular.js',
- 'JSON.js',
- 'Compiler.js',
- 'Scope.js',
- 'Injector.js',
- 'jqLite.js',
- 'parser.js',
- 'Resource.js',
- 'Browser.js',
- 'sanitizer.js',
- 'AngularPublic.js',
-
- // Extension points
-
- 'service/cookieStore.js',
- 'service/cookies.js',
- 'service/defer.js',
- 'service/document.js',
- 'service/exceptionHandler.js',
- 'service/hover.js',
- 'service/invalidWidgets.js',
- 'service/location.js',
- 'service/log.js',
- 'service/resource.js',
- 'service/route.js',
- 'service/routeParams.js',
- 'service/sniffer.js',
- 'service/window.js',
- 'service/xhr.bulk.js',
- 'service/xhr.cache.js',
- 'service/xhr.error.js',
- 'service/xhr.js',
- 'service/locale.js',
-
- 'apis.js',
- 'filters.js',
- 'formatters.js',
- 'validators.js',
- 'directives.js',
- 'markups.js',
- 'widgets.js');
-
+ document.write('<script type="text/javascript" src="' + serverPath + '../angularFiles.js' + '" ' +
+ 'onload="addScripts(angularFiles.angularSrc)"></script>');
function onLoadListener(){
// empty the cache to prevent mem leaks