From 337fd11a05dc188cfc2162cf47c1cf3c667c4647 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Sun, 3 Mar 2013 19:38:25 +0100 Subject: [PATCH 1/3] Load the examples using PhantomJS This commit adds a check-examples target to check that the hosted examples load without errors. --- bin/check-example.js | 30 ++++++++++++++++++++++++++++++ build.py | 13 ++++++++++++- build/ol-simple.json | 10 ++++++++++ build/ol-whitespace.json | 11 +++++++++++ 4 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 bin/check-example.js diff --git a/bin/check-example.js b/bin/check-example.js new file mode 100644 index 0000000000..7995118519 --- /dev/null +++ b/bin/check-example.js @@ -0,0 +1,30 @@ +// +// A PhantomJS script used to check that the hosted examples load +// without errors. This script is executed by the build tool's +// check-examples target. +// +var args = require('system').args; +if (args.length != 2) { + phantom.exit(2); +} +var examplePath = args[1]; +var page = require('webpage').create(); +page.onError = function(msg, trace) { + var msgStack = ['JavaScript ERROR: ' + msg]; + if (trace) { + msgStack.push('TRACE:'); + trace.forEach(function(t) { + msgStack.push(' -> ' + t.file + ': ' + t.line + (t.function ? ' (in function "' + t.function + '")' : '')); + }); + } + console.error(msgStack.join('\n')); + phantom.exit(1); +}; +page.open(examplePath, function(s) { + var exitCode = 0; + if (s != 'success') { + exitCode = 1; + console.error('PAGE LOAD ERROR'); + } + phantom.exit(exitCode); +}); diff --git a/build.py b/build.py index 3305910d45..61fd01419a 100755 --- a/build.py +++ b/build.py @@ -95,7 +95,7 @@ def report_sizes(t): virtual('all', 'build-all', 'build', 'examples', 'precommit') -virtual('precommit', 'lint', 'build-all', 'test', 'build', 'build-examples', 'doc') +virtual('precommit', 'lint', 'build-all', 'test', 'build', 'build-examples', 'check-examples', 'doc') virtual('build', 'build/ol.css', 'build/ol.js', 'build/ol-simple.js', 'build/ol-whitespace.js') @@ -356,6 +356,17 @@ def hostexamples(t): t.cp('examples/example-list.js', 'examples/example-list.xml', 'examples/Jugl.js', 'build/gh-pages/%(BRANCH)s/examples/') +@target('check-examples', 'hostexamples', phony=True) +def check_examples(t): + directory = 'build/gh-pages/%(BRANCH)s/' + examples = ['build/gh-pages/%(BRANCH)s/' + e for e in EXAMPLES] + all_examples = examples + \ + [e + '?mode=simple' for e in examples] + \ + [e + '?mode=whitespace' for e in examples] + for example in all_examples: + t.run('%(PHANTOMJS)s', 'bin/check-example.js', example) + + @target(PROJ4JS, PROJ4JS_ZIP) def proj4js(t): from zipfile import ZipFile diff --git a/build/ol-simple.json b/build/ol-simple.json index 27a982ee23..63fd1b7108 100644 --- a/build/ol-simple.json +++ b/build/ol-simple.json @@ -1,5 +1,15 @@ { + // If ambiguate-properties and disambiguate-properties are set to true + // we get function names like "ol_control_Control_prototype$setMap" in + // the compiled code when using the SIMPLE compilation. It looks like + // "ambiguate-properties" and "disambiguate-properties" are only + // appropriate for ADVANCED compilation. + + "ambiguate-properties": false, + + "disambiguate-properties": false, + "id": "ol-simple", "externs": [ diff --git a/build/ol-whitespace.json b/build/ol-whitespace.json index 83294ee47c..95fd632611 100644 --- a/build/ol-whitespace.json +++ b/build/ol-whitespace.json @@ -2,6 +2,17 @@ "id": "ol-whitespace", + // If ambiguate-properties and disambiguate-properties are set to true + // we get function names like "ol_control_Control_prototype$setMap" in + // the compiled code when using the SIMPLE compilation. It looks like + // "ambiguate-properties" and "disambiguate-properties" are only + // appropriate for ADVANCED compilation. To be sure we also don't + // set them for WHITESPACE. + + "ambiguate-properties": false, + + "disambiguate-properties": false, + "externs": [ "externs/bingmaps.js", "externs/proj4js.js", From 5202281ce8d05cd97ef25bf664863ec9c8a91197 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Sun, 3 Mar 2013 19:41:10 +0100 Subject: [PATCH 2/3] Remove references to goog in epsg-4326 example --- examples/epsg-4326.js | 8 -------- 1 file changed, 8 deletions(-) diff --git a/examples/epsg-4326.js b/examples/epsg-4326.js index 27fc69913b..9acf4517f8 100644 --- a/examples/epsg-4326.js +++ b/examples/epsg-4326.js @@ -1,6 +1,3 @@ -goog.require('goog.debug.Console'); -goog.require('goog.debug.Logger'); -goog.require('goog.debug.Logger.Level'); goog.require('ol.Collection'); goog.require('ol.Coordinate'); goog.require('ol.Map'); @@ -11,11 +8,6 @@ goog.require('ol.projection'); goog.require('ol.source.TiledWMS'); -if (goog.DEBUG) { - goog.debug.Console.autoInstall(); - goog.debug.Logger.getLogger('ol').setLevel(goog.debug.Logger.Level.INFO); -} - var epsg4326 = ol.projection.getFromCode('EPSG:4326'); // We give the single image source a set of resolutions. This prevents the From 26cf882d68afc3c724f12a2f73c489049ebbc0d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Sun, 3 Mar 2013 19:42:25 +0100 Subject: [PATCH 3/3] Make createLayerRenderer always return a renderer --- src/ol/renderer/maprenderer.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/ol/renderer/maprenderer.js b/src/ol/renderer/maprenderer.js index d3cceb36d1..dfd69e5464 100644 --- a/src/ol/renderer/maprenderer.js +++ b/src/ol/renderer/maprenderer.js @@ -119,7 +119,9 @@ ol.renderer.Map.prototype.calculateMatrices2D = function(frameState) { * @protected * @return {ol.renderer.Layer} layerRenderer Layer renderer. */ -ol.renderer.Map.prototype.createLayerRenderer = goog.functions.NULL; +ol.renderer.Map.prototype.createLayerRenderer = function(layer) { + return new ol.renderer.Layer(this, layer); +}; /**