diff options
| author | Di Peng | 2011-08-15 16:17:12 -0700 | 
|---|---|---|
| committer | Igor Minar | 2011-09-13 01:02:22 +0200 | 
| commit | a13653c81431bf51fed2a958514ebfb9aeb2dc14 (patch) | |
| tree | 3a2b81ff8661aa8b3b0d8bdbc5d01d2e54023d6f | |
| parent | 8017340cd106156e84508fa8061bd98004eff487 (diff) | |
| download | angular.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-- | .gitignore | 1 | ||||
| -rw-r--r-- | Rakefile | 64 | ||||
| -rw-r--r-- | angularFiles.js | 139 | ||||
| -rwxr-xr-x | gen_jstd_configs.js | 43 | ||||
| -rw-r--r-- | jsTestDriver-coverage.conf | 68 | ||||
| -rw-r--r-- | jsTestDriver-jquery.conf | 64 | ||||
| -rw-r--r-- | jsTestDriver-perf.conf | 50 | ||||
| -rw-r--r-- | jsTestDriver-scenario.conf | 10 | ||||
| -rw-r--r-- | jsTestDriver.conf | 63 | ||||
| -rwxr-xr-x | server.sh | 1 | ||||
| -rw-r--r-- | src/angular-bootstrap.js | 53 | 
11 files changed, 197 insertions, 359 deletions
| @@ -10,3 +10,4 @@ performance/temp*.html  *~  angular.js.tmproj  node_modules +jsTestDriver*.conf @@ -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 @@ -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 | 
