From 82b80188e87ffb624a05f9658c431b8fd9fa0388 Mon Sep 17 00:00:00 2001 From: Stephen Davies Date: Mon, 16 Sep 2019 16:29:31 +1000 Subject: [PATCH 1/4] Fix double counting of createImageBitmap requests in RequestScheduler --- Source/Core/Resource.js | 32 ++++++++++++++----- ...ArcGISTiledElevationTerrainProviderSpec.js | 2 +- Specs/Core/VRTheWorldTerrainProviderSpec.js | 6 ++-- .../ArcGisMapServerImageryProviderSpec.js | 19 ++++++----- Specs/Scene/BingMapsImageryProviderSpec.js | 6 ++-- ...oogleEarthEnterpriseImageryProviderSpec.js | 3 +- .../GoogleEarthEnterpriseMapsProviderSpec.js | 6 ++-- Specs/Scene/ImageryLayerSpec.js | 6 ++-- Specs/Scene/MapboxImageryProviderSpec.js | 2 +- Specs/Scene/MapboxStyleImageryProviderSpec.js | 2 +- Specs/Scene/SingleTileImageryProviderSpec.js | 2 +- Specs/Scene/UrlTemplateImageryProviderSpec.js | 2 +- .../Scene/WebMapServiceImageryProviderSpec.js | 10 +++--- .../WebMapTileServiceImageryProviderSpec.js | 16 +++++----- .../createOpenStreetMapImageryProviderSpec.js | 2 +- ...createTileMapServiceImageryProviderSpec.js | 2 +- 16 files changed, 71 insertions(+), 47 deletions(-) diff --git a/Source/Core/Resource.js b/Source/Core/Resource.js index f4c4aa0f8a55..6f62099d58bd 100644 --- a/Source/Core/Resource.js +++ b/Source/Core/Resource.js @@ -972,7 +972,6 @@ define([ var request = resource.request; request.url = resource.url; request.requestFunction = function() { - var url = resource.url; var crossOrigin = false; // data URIs can't have crossorigin set. @@ -981,7 +980,7 @@ define([ } var deferred = when.defer(); - Resource._Implementations.createImage(url, crossOrigin, deferred, flipY, preferImageBitmap); + Resource._Implementations.createImage(request, crossOrigin, deferred, flipY, preferImageBitmap); return deferred.promise; }; @@ -1851,7 +1850,8 @@ define([ image.src = url; } - Resource._Implementations.createImage = function(url, crossOrigin, deferred, flipY, preferImageBitmap) { + Resource._Implementations.createImage = function(request, crossOrigin, deferred, flipY, preferImageBitmap) { + var url = request.url; // Passing an Image to createImageBitmap will force it to run on the main thread // since DOM elements don't exist on workers. We convert it to a blob so it's non-blocking. // See: @@ -1865,11 +1865,27 @@ define([ loadImageElement(url, crossOrigin, deferred); return; } - - return Resource.fetchBlob({ - url: url - }) - .then(function(blob) { + var responseType = "blob"; + var method = "GET"; + var xhrDeferred = when.defer(); + var xhr = Resource._Implementations.loadWithXhr( + url, + responseType, + method, + undefined, + undefined, + xhrDeferred, + undefined, + undefined, + undefined + ); + + if (defined(xhr) && defined(xhr.abort)) { + request.cancelFunction = function() { + xhr.abort(); + }; + } + return xhrDeferred.promise.then(function(blob) { if (!defined(blob)) { deferred.reject(new RuntimeError('Successfully retrieved ' + url + ' but it contained no content.')); return; diff --git a/Specs/Core/ArcGISTiledElevationTerrainProviderSpec.js b/Specs/Core/ArcGISTiledElevationTerrainProviderSpec.js index f70c450e1ccf..b1b1abc8818a 100644 --- a/Specs/Core/ArcGISTiledElevationTerrainProviderSpec.js +++ b/Specs/Core/ArcGISTiledElevationTerrainProviderSpec.js @@ -448,7 +448,7 @@ describe('requestTileGeometry', function() { var deferreds = []; - Resource._Implementations.createImage = function(url, crossOrigin, deferred) { + Resource._Implementations.createImage = function(request, crossOrigin, deferred) { // Do nothing, so requests never complete deferreds.push(deferred); }; diff --git a/Specs/Core/VRTheWorldTerrainProviderSpec.js b/Specs/Core/VRTheWorldTerrainProviderSpec.js index a9944fa99ef8..20d58c33c7c9 100644 --- a/Specs/Core/VRTheWorldTerrainProviderSpec.js +++ b/Specs/Core/VRTheWorldTerrainProviderSpec.js @@ -244,8 +244,8 @@ describe('Core/VRTheWorldTerrainProvider', function() { it('provides HeightmapTerrainData', function() { var baseUrl = 'made/up/url'; - Resource._Implementations.createImage = function(url, crossOrigin, deferred) { - expect(url.indexOf('.tif?cesium=true')).toBeGreaterThanOrEqualTo(0); + Resource._Implementations.createImage = function(request, crossOrigin, deferred) { + expect(request.url.indexOf('.tif?cesium=true')).toBeGreaterThanOrEqualTo(0); // Just return any old image. Resource._DefaultImplementations.createImage(imageUrl, crossOrigin, deferred); @@ -270,7 +270,7 @@ describe('Core/VRTheWorldTerrainProvider', function() { var deferreds = []; - Resource._Implementations.createImage = function(url, crossOrigin, deferred) { + Resource._Implementations.createImage = function(request, crossOrigin, deferred) { // Do nothing, so requests never complete deferreds.push(deferred); }; diff --git a/Specs/Scene/ArcGisMapServerImageryProviderSpec.js b/Specs/Scene/ArcGisMapServerImageryProviderSpec.js index 185fed453441..886cc209f23d 100644 --- a/Specs/Scene/ArcGisMapServerImageryProviderSpec.js +++ b/Specs/Scene/ArcGisMapServerImageryProviderSpec.js @@ -217,7 +217,8 @@ describe('Scene/ArcGisMapServerImageryProvider', function() { expect(provider.usingPrecachedTiles).toEqual(true); expect(provider.hasAlphaChannel).toBeDefined(); - Resource._Implementations.createImage = function(url, crossOrigin, deferred) { + Resource._Implementations.createImage = function(request, crossOrigin, deferred) { + var url = request.url; if (/^blob:/.test(url)) { Resource._DefaultImplementations.createImage(url, crossOrigin, deferred); } else { @@ -293,7 +294,8 @@ describe('Scene/ArcGisMapServerImageryProvider', function() { expect(provider.rectangle).toEqual(new GeographicTilingScheme().rectangle); expect(provider.usingPrecachedTiles).toEqual(true); - Resource._Implementations.createImage = function(url, crossOrigin, deferred) { + Resource._Implementations.createImage = function(request, crossOrigin, deferred) { + var url = request.url; if (/^blob:/.test(url) || supportsImageBitmapOptions) { // If ImageBitmap is supported, we expect a loadWithXhr request to fetch it as a blob. Resource._DefaultImplementations.createImage(url, crossOrigin, deferred, true, true); @@ -345,8 +347,8 @@ describe('Scene/ArcGisMapServerImageryProvider', function() { expect(provider.usingPrecachedTiles).toEqual(false); expect(provider.enablePickFeatures).toBe(true); - Resource._Implementations.createImage = function(url, crossOrigin, deferred) { - var uri = new Uri(url); + Resource._Implementations.createImage = function(request, crossOrigin, deferred) { + var uri = new Uri(request.url); var params = queryToObject(uri.query); var uriWithoutQuery = new Uri(uri); @@ -407,8 +409,8 @@ describe('Scene/ArcGisMapServerImageryProvider', function() { expect(provider.enablePickFeatures).toBe(false); expect(provider.layers).toEqual('foo,bar'); - Resource._Implementations.createImage = function(url, crossOrigin, deferred) { - var uri = new Uri(url); + Resource._Implementations.createImage = function(request, crossOrigin, deferred) { + var uri = new Uri(request.url); var params = queryToObject(uri.query); var uriWithoutQuery = new Uri(uri); @@ -466,7 +468,8 @@ describe('Scene/ArcGisMapServerImageryProvider', function() { expect(provider.usingPrecachedTiles).toEqual(true); expect(provider.hasAlphaChannel).toBeDefined(); - Resource._Implementations.createImage = function(url, crossOrigin, deferred) { + Resource._Implementations.createImage = function(request, crossOrigin, deferred) { + var url = request.url; if (/^blob:/.test(url) || supportsImageBitmapOptions) { // If ImageBitmap is supported, we expect a loadWithXhr request to fetch it as a blob. Resource._DefaultImplementations.createImage(url, crossOrigin, deferred, true, true); @@ -597,7 +600,7 @@ describe('Scene/ArcGisMapServerImageryProvider', function() { }, 1); }); - Resource._Implementations.createImage = function(url, crossOrigin, deferred) { + Resource._Implementations.createImage = function(request, crossOrigin, deferred) { if (tries === 2) { // Succeed after 2 tries Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); diff --git a/Specs/Scene/BingMapsImageryProviderSpec.js b/Specs/Scene/BingMapsImageryProviderSpec.js index 0e1ab9e3fdc3..79d5a47f918d 100644 --- a/Specs/Scene/BingMapsImageryProviderSpec.js +++ b/Specs/Scene/BingMapsImageryProviderSpec.js @@ -185,7 +185,8 @@ describe('Scene/BingMapsImageryProvider', function() { } function installFakeImageRequest(expectedUrl, expectedParams, proxy) { - Resource._Implementations.createImage = function(url, crossOrigin, deferred) { + Resource._Implementations.createImage = function(request, crossOrigin, deferred) { + var url = request.url; if (/^blob:/.test(url) || supportsImageBitmapOptions) { // If ImageBitmap is supported, we expect a loadWithXhr request to fetch it as a blob. Resource._DefaultImplementations.createImage(url, crossOrigin, deferred, true, true); @@ -507,7 +508,8 @@ describe('Scene/BingMapsImageryProvider', function() { }, 1); }); - Resource._Implementations.createImage = function(url, crossOrigin, deferred) { + Resource._Implementations.createImage = function(request, crossOrigin, deferred) { + var url = request.url; if (/^blob:/.test(url)) { // load blob url normally Resource._DefaultImplementations.createImage(url, crossOrigin, deferred); diff --git a/Specs/Scene/GoogleEarthEnterpriseImageryProviderSpec.js b/Specs/Scene/GoogleEarthEnterpriseImageryProviderSpec.js index 4103662be485..77ca9c97f3df 100644 --- a/Specs/Scene/GoogleEarthEnterpriseImageryProviderSpec.js +++ b/Specs/Scene/GoogleEarthEnterpriseImageryProviderSpec.js @@ -92,7 +92,8 @@ describe('Scene/GoogleEarthEnterpriseImageryProvider', function() { } function installFakeImageRequest(expectedUrl, proxy) { - Resource._Implementations.createImage = function(url, crossOrigin, deferred) { + Resource._Implementations.createImage = function(request, crossOrigin, deferred) { + var url = request.url; if (/^blob:/.test(url) || supportsImageBitmapOptions) { // load blob url normally Resource._DefaultImplementations.createImage(url, crossOrigin, deferred, true, true); diff --git a/Specs/Scene/GoogleEarthEnterpriseMapsProviderSpec.js b/Specs/Scene/GoogleEarthEnterpriseMapsProviderSpec.js index b9e51188eb39..179489df3a34 100644 --- a/Specs/Scene/GoogleEarthEnterpriseMapsProviderSpec.js +++ b/Specs/Scene/GoogleEarthEnterpriseMapsProviderSpec.js @@ -183,7 +183,8 @@ describe('Scene/GoogleEarthEnterpriseMapsProvider', function() { expect(provider.rectangle).toEqual(new WebMercatorTilingScheme().rectangle); expect(provider.credit).toBeInstanceOf(Object); - Resource._Implementations.createImage = function(url, crossOrigin, deferred) { + Resource._Implementations.createImage = function(request, crossOrigin, deferred) { + var url = request.url; if (/^blob:/.test(url) || supportsImageBitmapOptions) { // If ImageBitmap is supported, we expect a loadWithXhr request to fetch it as a blob. Resource._DefaultImplementations.createImage(url, crossOrigin, deferred, true, true); @@ -301,7 +302,8 @@ describe('Scene/GoogleEarthEnterpriseMapsProvider', function() { }, 1); }); - Resource._Implementations.createImage = function(url, crossOrigin, deferred) { + Resource._Implementations.createImage = function(request, crossOrigin, deferred) { + var url = request.url; if (/^blob:/.test(url) || supportsImageBitmapOptions) { // If ImageBitmap is supported, we expect a loadWithXhr request to fetch it as a blob. Resource._DefaultImplementations.createImage(url, crossOrigin, deferred, true, true); diff --git a/Specs/Scene/ImageryLayerSpec.js b/Specs/Scene/ImageryLayerSpec.js index 11f7c40bc251..d2597e57daff 100644 --- a/Specs/Scene/ImageryLayerSpec.js +++ b/Specs/Scene/ImageryLayerSpec.js @@ -82,7 +82,7 @@ describe('Scene/ImageryLayer', function() { }; it('discards tiles when the ImageryProviders discard policy says to do so', function() { - Resource._Implementations.createImage = function(url, crossOrigin, deferred) { + Resource._Implementations.createImage = function(request, crossOrigin, deferred) { Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); }; @@ -146,7 +146,7 @@ describe('Scene/ImageryLayer', function() { }); }; - Resource._Implementations.createImage = function(url, crossOrigin, deferred) { + Resource._Implementations.createImage = function(request, crossOrigin, deferred) { Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); }; @@ -287,7 +287,7 @@ describe('Scene/ImageryLayer', function() { }); it('assigns texture property when reprojection is skipped because the tile is very small', function() { - Resource._Implementations.createImage = function(url, crossOrigin, deferred) { + Resource._Implementations.createImage = function(request, crossOrigin, deferred) { Resource._DefaultImplementations.createImage('Data/Images/Red256x256.png', crossOrigin, deferred); }; diff --git a/Specs/Scene/MapboxImageryProviderSpec.js b/Specs/Scene/MapboxImageryProviderSpec.js index 9669b1902215..c913aa13147b 100644 --- a/Specs/Scene/MapboxImageryProviderSpec.js +++ b/Specs/Scene/MapboxImageryProviderSpec.js @@ -252,7 +252,7 @@ describe('Scene/MapboxImageryProvider', function() { }, 1); }); - Resource._Implementations.createImage = function(url, crossOrigin, deferred) { + Resource._Implementations.createImage = function(request, crossOrigin, deferred) { if (tries === 2) { // Succeed after 2 tries Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); diff --git a/Specs/Scene/MapboxStyleImageryProviderSpec.js b/Specs/Scene/MapboxStyleImageryProviderSpec.js index 3f09aafb6d5f..eb689d525b76 100644 --- a/Specs/Scene/MapboxStyleImageryProviderSpec.js +++ b/Specs/Scene/MapboxStyleImageryProviderSpec.js @@ -250,7 +250,7 @@ describe('Scene/MapboxStyleImageryProvider', function() { }, 1); }); - Resource._Implementations.createImage = function(url, crossOrigin, deferred) { + Resource._Implementations.createImage = function(request, crossOrigin, deferred) { if (tries === 2) { // Succeed after 2 tries Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); diff --git a/Specs/Scene/SingleTileImageryProviderSpec.js b/Specs/Scene/SingleTileImageryProviderSpec.js index b4639e543455..25d3aae6589a 100644 --- a/Specs/Scene/SingleTileImageryProviderSpec.js +++ b/Specs/Scene/SingleTileImageryProviderSpec.js @@ -196,7 +196,7 @@ describe('Scene/SingleTileImageryProvider', function() { } }); - Resource._Implementations.createImage = function(url, crossOrigin, deferred) { + Resource._Implementations.createImage = function(request, crossOrigin, deferred) { if (tries === 2) { // Succeed after 2 tries Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); diff --git a/Specs/Scene/UrlTemplateImageryProviderSpec.js b/Specs/Scene/UrlTemplateImageryProviderSpec.js index c4a467ad10e1..a9fb0d57ecc8 100644 --- a/Specs/Scene/UrlTemplateImageryProviderSpec.js +++ b/Specs/Scene/UrlTemplateImageryProviderSpec.js @@ -205,7 +205,7 @@ describe('Scene/UrlTemplateImageryProvider', function() { }, 1); }); - Resource._Implementations.createImage = function(url, crossOrigin, deferred) { + Resource._Implementations.createImage = function(request, crossOrigin, deferred) { if (tries === 2) { // Succeed after 2 tries Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); diff --git a/Specs/Scene/WebMapServiceImageryProviderSpec.js b/Specs/Scene/WebMapServiceImageryProviderSpec.js index ca25825a2735..b92c5d30332a 100644 --- a/Specs/Scene/WebMapServiceImageryProviderSpec.js +++ b/Specs/Scene/WebMapServiceImageryProviderSpec.js @@ -804,7 +804,7 @@ describe('Scene/WebMapServiceImageryProvider', function() { }, 1); }); - Resource._Implementations.createImage = function(url, crossOrigin, deferred) { + Resource._Implementations.createImage = function(request, crossOrigin, deferred) { if (tries === 2) { // Succeed after 2 tries Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); @@ -1227,7 +1227,7 @@ describe('Scene/WebMapServiceImageryProvider', function() { times : times }); - Resource._Implementations.createImage = function(url, crossOrigin, deferred) { + Resource._Implementations.createImage = function(request, crossOrigin, deferred) { Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); }; @@ -1278,7 +1278,7 @@ describe('Scene/WebMapServiceImageryProvider', function() { times : times }); - Resource._Implementations.createImage = function(url, crossOrigin, deferred) { + Resource._Implementations.createImage = function(request, crossOrigin, deferred) { Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); }; @@ -1327,7 +1327,7 @@ describe('Scene/WebMapServiceImageryProvider', function() { shouldAnimate : true }); - Resource._Implementations.createImage = function(url, crossOrigin, deferred) { + Resource._Implementations.createImage = function(request, crossOrigin, deferred) { Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); }; @@ -1381,7 +1381,7 @@ describe('Scene/WebMapServiceImageryProvider', function() { shouldAnimate : false }); - Resource._Implementations.createImage = function(url, crossOrigin, deferred) { + Resource._Implementations.createImage = function(request, crossOrigin, deferred) { Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); }; diff --git a/Specs/Scene/WebMapTileServiceImageryProviderSpec.js b/Specs/Scene/WebMapTileServiceImageryProviderSpec.js index 2e2eb911397b..8701a4caef77 100644 --- a/Specs/Scene/WebMapTileServiceImageryProviderSpec.js +++ b/Specs/Scene/WebMapTileServiceImageryProviderSpec.js @@ -393,7 +393,7 @@ describe('Scene/WebMapTileServiceImageryProvider', function() { }, 1); }); - Resource._Implementations.createImage = function(url, crossOrigin, deferred) { + Resource._Implementations.createImage = function(request, crossOrigin, deferred) { if (tries === 2) { // Succeed after 2 tries Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); @@ -446,7 +446,7 @@ describe('Scene/WebMapTileServiceImageryProvider', function() { times : times }); - Resource._Implementations.createImage = function(url, crossOrigin, deferred) { + Resource._Implementations.createImage = function(request, crossOrigin, deferred) { Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); }; @@ -498,7 +498,7 @@ describe('Scene/WebMapTileServiceImageryProvider', function() { times : times }); - Resource._Implementations.createImage = function(url, crossOrigin, deferred) { + Resource._Implementations.createImage = function(request, crossOrigin, deferred) { Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); }; @@ -547,7 +547,7 @@ describe('Scene/WebMapTileServiceImageryProvider', function() { shouldAnimate : true }); - Resource._Implementations.createImage = function(url, crossOrigin, deferred) { + Resource._Implementations.createImage = function(request, crossOrigin, deferred) { Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); }; @@ -588,8 +588,8 @@ describe('Scene/WebMapTileServiceImageryProvider', function() { it('dimensions work with RESTful requests', function() { var lastUrl; - Resource._Implementations.createImage = function(url, crossOrigin, deferred) { - lastUrl = url; + Resource._Implementations.createImage = function(request, crossOrigin, deferred) { + lastUrl = request.url; Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); }; @@ -627,8 +627,8 @@ describe('Scene/WebMapTileServiceImageryProvider', function() { it('dimensions work with KVP requests', function() { var lastUrl; - Resource._Implementations.createImage = function(url, crossOrigin, deferred) { - lastUrl = url; + Resource._Implementations.createImage = function(request, crossOrigin, deferred) { + lastUrl = request.url; Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); }; diff --git a/Specs/Scene/createOpenStreetMapImageryProviderSpec.js b/Specs/Scene/createOpenStreetMapImageryProviderSpec.js index eb393296c072..09e7a8102493 100644 --- a/Specs/Scene/createOpenStreetMapImageryProviderSpec.js +++ b/Specs/Scene/createOpenStreetMapImageryProviderSpec.js @@ -235,7 +235,7 @@ describe('Scene/createOpenStreetMapImageryProvider', function() { }, 1); }); - Resource._Implementations.createImage = function(url, crossOrigin, deferred) { + Resource._Implementations.createImage = function(request, crossOrigin, deferred) { if (tries === 2) { // Succeed after 2 tries Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); diff --git a/Specs/Scene/createTileMapServiceImageryProviderSpec.js b/Specs/Scene/createTileMapServiceImageryProviderSpec.js index ad25ca01bccc..7e7ec9db9104 100644 --- a/Specs/Scene/createTileMapServiceImageryProviderSpec.js +++ b/Specs/Scene/createTileMapServiceImageryProviderSpec.js @@ -401,7 +401,7 @@ describe('Scene/createTileMapServiceImageryProvider', function() { }, 1); }); - Resource._Implementations.createImage = function(url, crossOrigin, deferred) { + Resource._Implementations.createImage = function(request, crossOrigin, deferred) { if (tries === 2) { // Succeed after 2 tries Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); From 92e940a621a4f116136fcab43d2a1358a0b6f80f Mon Sep 17 00:00:00 2001 From: Stephen Davies Date: Mon, 16 Sep 2019 17:02:16 +1000 Subject: [PATCH 2/4] Add changelog entry and add myself to contributors --- CHANGES.md | 5 +++++ CONTRIBUTORS.md | 1 + 2 files changed, 6 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index c682e4581a26..ff54627703b8 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,6 +1,11 @@ Change Log ========== +### next + +##### Fixes :wrench: +* Fixed issue where `RequestScheduler` double-counted image requests made via `createImageBitmap`. [#8162](https://github.com/AnalyticalGraphicsInc/cesium/issues/8162) + ### 1.61 - 2019-09-03 ##### Additions :tada: diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 0678f817078c..dedaa58d1d7d 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -57,6 +57,7 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for details on how to contribute to Cesiu * [Arthur Street](https://github.com/RacingTadpole) * [Alex Gilleran](https://github.com/AlexGilleran) * [Emma Krantz](https://github.com/KeyboardSounds) + * [Stephen Davies](https://github.com/steve9164) * [EU Edge](http://euedge.com/) * [Ákos Maróy](https://github.com/akosmaroy) * [Raytheon Intelligence and Information Systems](http://www.raytheon.com/) From c7d6917d5e3667aab464dd5b0bba52ec87ea6309 Mon Sep 17 00:00:00 2001 From: Stephen Davies Date: Mon, 16 Sep 2019 17:08:15 +1000 Subject: [PATCH 3/4] Use single-quoted strings --- Source/Core/Resource.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Core/Resource.js b/Source/Core/Resource.js index 6f62099d58bd..ae12bcd3c259 100644 --- a/Source/Core/Resource.js +++ b/Source/Core/Resource.js @@ -1865,8 +1865,8 @@ define([ loadImageElement(url, crossOrigin, deferred); return; } - var responseType = "blob"; - var method = "GET"; + var responseType = 'blob'; + var method = 'GET'; var xhrDeferred = when.defer(); var xhr = Resource._Implementations.loadWithXhr( url, From f31954ed57f6140452e74a897e0096a0793f4e74 Mon Sep 17 00:00:00 2001 From: Stephen Davies Date: Fri, 27 Sep 2019 09:53:24 +1000 Subject: [PATCH 4/4] Update tests for new Resource createImage function signature --- Specs/Core/VRTheWorldTerrainProviderSpec.js | 2 +- .../ArcGisMapServerImageryProviderSpec.js | 20 +-- Specs/Scene/BingMapsImageryProviderSpec.js | 8 +- .../DiscardMissingTileImagePolicySpec.js | 7 +- ...oogleEarthEnterpriseImageryProviderSpec.js | 6 +- .../GoogleEarthEnterpriseMapsProviderSpec.js | 10 +- Specs/Scene/ImageryLayerSpec.js | 8 +- Specs/Scene/IonImageryProviderSpec.js | 2 +- Specs/Scene/MapboxImageryProviderSpec.js | 38 +++--- Specs/Scene/MapboxStyleImageryProviderSpec.js | 50 ++++---- .../Scene/OpenStreetMapImageryProviderSpec.js | 32 ++--- Specs/Scene/SingleTileImageryProviderSpec.js | 9 +- .../TileMapServiceImageryProviderSpec.js | 34 ++--- Specs/Scene/TimeDynamicPointCloudSpec.js | 2 +- Specs/Scene/UrlTemplateImageryProviderSpec.js | 116 +++++++++--------- .../Scene/WebMapServiceImageryProviderSpec.js | 86 ++++++------- .../WebMapTileServiceImageryProviderSpec.js | 22 ++-- 17 files changed, 238 insertions(+), 214 deletions(-) diff --git a/Specs/Core/VRTheWorldTerrainProviderSpec.js b/Specs/Core/VRTheWorldTerrainProviderSpec.js index f5624d150ae3..32b19073eae8 100644 --- a/Specs/Core/VRTheWorldTerrainProviderSpec.js +++ b/Specs/Core/VRTheWorldTerrainProviderSpec.js @@ -248,7 +248,7 @@ describe('Core/VRTheWorldTerrainProvider', function() { expect(request.url.indexOf('.tif?cesium=true')).toBeGreaterThanOrEqualTo(0); // Just return any old image. - Resource._DefaultImplementations.createImage(imageUrl, crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: imageUrl}), crossOrigin, deferred); }; var terrainProvider = new VRTheWorldTerrainProvider({ diff --git a/Specs/Scene/ArcGisMapServerImageryProviderSpec.js b/Specs/Scene/ArcGisMapServerImageryProviderSpec.js index 1a0450babeb7..902682af1546 100644 --- a/Specs/Scene/ArcGisMapServerImageryProviderSpec.js +++ b/Specs/Scene/ArcGisMapServerImageryProviderSpec.js @@ -9,6 +9,7 @@ define([ 'Core/objectToQuery', 'Core/queryToObject', 'Core/Rectangle', + 'Core/Request', 'Core/RequestScheduler', 'Core/Resource', 'Core/WebMercatorProjection', @@ -33,6 +34,7 @@ define([ objectToQuery, queryToObject, Rectangle, + Request, RequestScheduler, Resource, WebMercatorProjection, @@ -218,12 +220,12 @@ describe('Scene/ArcGisMapServerImageryProvider', function() { Resource._Implementations.createImage = function(request, crossOrigin, deferred) { var url = request.url; if (/^blob:/.test(url)) { - Resource._DefaultImplementations.createImage(url, crossOrigin, deferred); + Resource._DefaultImplementations.createImage(request, crossOrigin, deferred); } else { expect(url).toEqual(getAbsoluteUri(baseUrl + 'tile/0/0/0')); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); } }; @@ -296,12 +298,12 @@ describe('Scene/ArcGisMapServerImageryProvider', function() { var url = request.url; if (/^blob:/.test(url) || supportsImageBitmapOptions) { // If ImageBitmap is supported, we expect a loadWithXhr request to fetch it as a blob. - Resource._DefaultImplementations.createImage(url, crossOrigin, deferred, true, true); + Resource._DefaultImplementations.createImage(request, crossOrigin, deferred, true, true); } else { expect(url).toEqual(getAbsoluteUri(baseUrl + 'tile/0/0/0')); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); } }; @@ -362,7 +364,7 @@ describe('Scene/ArcGisMapServerImageryProvider', function() { expect(params.size).toEqual('256,256'); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }; return provider.requestImage(0, 0, 0).then(function(image) { @@ -426,7 +428,7 @@ describe('Scene/ArcGisMapServerImageryProvider', function() { expect(params.token).toEqual(token); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }; return provider.requestImage(0, 0, 0).then(function(image) { @@ -470,12 +472,12 @@ describe('Scene/ArcGisMapServerImageryProvider', function() { var url = request.url; if (/^blob:/.test(url) || supportsImageBitmapOptions) { // If ImageBitmap is supported, we expect a loadWithXhr request to fetch it as a blob. - Resource._DefaultImplementations.createImage(url, crossOrigin, deferred, true, true); + Resource._DefaultImplementations.createImage(request, crossOrigin, deferred, true, true); } else { expect(url).toEqual(expectedTileUrl); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); } }; @@ -601,7 +603,7 @@ describe('Scene/ArcGisMapServerImageryProvider', function() { Resource._Implementations.createImage = function(request, crossOrigin, deferred) { if (tries === 2) { // Succeed after 2 tries - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); } else { // fail setTimeout(function() { diff --git a/Specs/Scene/BingMapsImageryProviderSpec.js b/Specs/Scene/BingMapsImageryProviderSpec.js index e52bc34a9f7a..197994855e02 100644 --- a/Specs/Scene/BingMapsImageryProviderSpec.js +++ b/Specs/Scene/BingMapsImageryProviderSpec.js @@ -189,7 +189,7 @@ describe('Scene/BingMapsImageryProvider', function() { var url = request.url; if (/^blob:/.test(url) || supportsImageBitmapOptions) { // If ImageBitmap is supported, we expect a loadWithXhr request to fetch it as a blob. - Resource._DefaultImplementations.createImage(url, crossOrigin, deferred, true, true); + Resource._DefaultImplementations.createImage(request, crossOrigin, deferred, true, true); } else { if (defined(expectedUrl)) { var uri = new Uri(url); @@ -207,7 +207,7 @@ describe('Scene/BingMapsImageryProvider', function() { } } // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); } }; @@ -512,10 +512,10 @@ describe('Scene/BingMapsImageryProvider', function() { var url = request.url; if (/^blob:/.test(url)) { // load blob url normally - Resource._DefaultImplementations.createImage(url, crossOrigin, deferred); + Resource._DefaultImplementations.createImage(request, crossOrigin, deferred); } else if (tries === 2) { // Succeed after 2 tries - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); } else { // fail setTimeout(function() { diff --git a/Specs/Scene/DiscardMissingTileImagePolicySpec.js b/Specs/Scene/DiscardMissingTileImagePolicySpec.js index 5f74c9b9007e..eb8d966bfd6b 100644 --- a/Specs/Scene/DiscardMissingTileImagePolicySpec.js +++ b/Specs/Scene/DiscardMissingTileImagePolicySpec.js @@ -52,12 +52,13 @@ describe('Scene/DiscardMissingTileImagePolicy', function() { var missingImageUrl = 'http://some.host.invalid/missingImage.png'; spyOn(Resource, 'createImageBitmapFromBlob').and.callThrough(); - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + var url = request.url; if (/^blob:/.test(url)) { - Resource._DefaultImplementations.createImage(url, crossOrigin, deferred); + Resource._DefaultImplementations.createImage(request, crossOrigin, deferred); } else { expect(url).toEqual(missingImageUrl); - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); } }); diff --git a/Specs/Scene/GoogleEarthEnterpriseImageryProviderSpec.js b/Specs/Scene/GoogleEarthEnterpriseImageryProviderSpec.js index f1c7fc1dc295..3eb1edd76552 100644 --- a/Specs/Scene/GoogleEarthEnterpriseImageryProviderSpec.js +++ b/Specs/Scene/GoogleEarthEnterpriseImageryProviderSpec.js @@ -6,6 +6,7 @@ define([ 'Core/GoogleEarthEnterpriseMetadata', 'Core/GoogleEarthEnterpriseTileInformation', 'Core/Rectangle', + 'Core/Request', 'Core/RequestScheduler', 'Core/Resource', 'Scene/DiscardMissingTileImagePolicy', @@ -25,6 +26,7 @@ define([ GoogleEarthEnterpriseMetadata, GoogleEarthEnterpriseTileInformation, Rectangle, + Request, RequestScheduler, Resource, DiscardMissingTileImagePolicy, @@ -94,7 +96,7 @@ describe('Scene/GoogleEarthEnterpriseImageryProvider', function() { var url = request.url; if (/^blob:/.test(url) || supportsImageBitmapOptions) { // load blob url normally - Resource._DefaultImplementations.createImage(url, crossOrigin, deferred, true, true); + Resource._DefaultImplementations.createImage(request, crossOrigin, deferred, true, true); } else { if (proxy) { var uri = new Uri(url); @@ -104,7 +106,7 @@ describe('Scene/GoogleEarthEnterpriseImageryProvider', function() { expect(url).toEqual(expectedUrl); } // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); } }; diff --git a/Specs/Scene/GoogleEarthEnterpriseMapsProviderSpec.js b/Specs/Scene/GoogleEarthEnterpriseMapsProviderSpec.js index 929277390c2a..b34b0ea9bad7 100644 --- a/Specs/Scene/GoogleEarthEnterpriseMapsProviderSpec.js +++ b/Specs/Scene/GoogleEarthEnterpriseMapsProviderSpec.js @@ -1,6 +1,7 @@ define([ 'Core/GeographicTilingScheme', 'Core/Rectangle', + 'Core/Request', 'Core/RequestScheduler', 'Core/Resource', 'Core/WebMercatorTilingScheme', @@ -13,6 +14,7 @@ define([ ], function( GeographicTilingScheme, Rectangle, + Request, RequestScheduler, Resource, WebMercatorTilingScheme, @@ -185,12 +187,12 @@ describe('Scene/GoogleEarthEnterpriseMapsProvider', function() { var url = request.url; if (/^blob:/.test(url) || supportsImageBitmapOptions) { // If ImageBitmap is supported, we expect a loadWithXhr request to fetch it as a blob. - Resource._DefaultImplementations.createImage(url, crossOrigin, deferred, true, true); + Resource._DefaultImplementations.createImage(request, crossOrigin, deferred, true, true); } else { expect(url).toEqual('http://example.invalid/query?request=ImageryMaps&channel=1234&version=1&x=0&y=0&z=1'); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); } }; @@ -304,10 +306,10 @@ describe('Scene/GoogleEarthEnterpriseMapsProvider', function() { var url = request.url; if (/^blob:/.test(url) || supportsImageBitmapOptions) { // If ImageBitmap is supported, we expect a loadWithXhr request to fetch it as a blob. - Resource._DefaultImplementations.createImage(url, crossOrigin, deferred, true, true); + Resource._DefaultImplementations.createImage(request, crossOrigin, deferred, true, true); } else if (tries === 2) { // Succeed after 2 tries - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); } else { // fail setTimeout(function() { diff --git a/Specs/Scene/ImageryLayerSpec.js b/Specs/Scene/ImageryLayerSpec.js index d40fe75e4100..51f17b0bb55b 100644 --- a/Specs/Scene/ImageryLayerSpec.js +++ b/Specs/Scene/ImageryLayerSpec.js @@ -1,6 +1,7 @@ define([ 'Core/EllipsoidTerrainProvider', 'Core/Rectangle', + 'Core/Request', 'Core/RequestScheduler', 'Core/Resource', 'Renderer/ComputeEngine', @@ -24,6 +25,7 @@ define([ ], function( EllipsoidTerrainProvider, Rectangle, + Request, RequestScheduler, Resource, ComputeEngine, @@ -83,7 +85,7 @@ describe('Scene/ImageryLayer', function() { it('discards tiles when the ImageryProviders discard policy says to do so', function() { Resource._Implementations.createImage = function(request, crossOrigin, deferred) { - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }; Resource._Implementations.loadWithXhr = function(url, responseType, method, data, headers, deferred, overrideMimeType) { @@ -147,7 +149,7 @@ describe('Scene/ImageryLayer', function() { }; Resource._Implementations.createImage = function(request, crossOrigin, deferred) { - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }; Resource._Implementations.loadWithXhr = function(url, responseType, method, data, headers, deferred, overrideMimeType) { @@ -288,7 +290,7 @@ describe('Scene/ImageryLayer', function() { it('assigns texture property when reprojection is skipped because the tile is very small', function() { Resource._Implementations.createImage = function(request, crossOrigin, deferred) { - Resource._DefaultImplementations.createImage('Data/Images/Red256x256.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red256x256.png'}), crossOrigin, deferred); }; var provider = new UrlTemplateImageryProvider({ diff --git a/Specs/Scene/IonImageryProviderSpec.js b/Specs/Scene/IonImageryProviderSpec.js index 1db014c230d5..2aa24178119a 100644 --- a/Specs/Scene/IonImageryProviderSpec.js +++ b/Specs/Scene/IonImageryProviderSpec.js @@ -270,7 +270,7 @@ describe('Scene/IonImageryProvider', function() { }); it('createImageryProvider works with SINGLE_TILE', function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { deferred.resolve({}); }); diff --git a/Specs/Scene/MapboxImageryProviderSpec.js b/Specs/Scene/MapboxImageryProviderSpec.js index 68a8a46c9872..307d5961e35e 100644 --- a/Specs/Scene/MapboxImageryProviderSpec.js +++ b/Specs/Scene/MapboxImageryProviderSpec.js @@ -2,6 +2,7 @@ define([ 'Core/MapboxApi', 'Core/Math', 'Core/Rectangle', + 'Core/Request', 'Core/RequestScheduler', 'Core/Resource', 'Core/WebMercatorTilingScheme', @@ -15,6 +16,7 @@ define([ MapboxApi, CesiumMath, Rectangle, + Request, RequestScheduler, Resource, WebMercatorTilingScheme, @@ -96,11 +98,11 @@ describe('Scene/MapboxImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(url).not.toContain('//'); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(request.url).not.toContain('//'); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0).then(function(image) { @@ -119,11 +121,11 @@ describe('Scene/MapboxImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(url).toContain('made/up/mapbox/server/'); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(request.url).toContain('made/up/mapbox/server/'); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0).then(function(image) { @@ -150,9 +152,9 @@ describe('Scene/MapboxImageryProvider', function() { expect(provider.tilingScheme).toBeInstanceOf(WebMercatorTilingScheme); expect(provider.rectangle).toEqual(new WebMercatorTilingScheme().rectangle); - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0).then(function(image) { @@ -180,11 +182,11 @@ describe('Scene/MapboxImageryProvider', function() { expect(provider.rectangle).toEqualEpsilon(rectangle, CesiumMath.EPSILON14); expect(provider.tileDiscardPolicy).toBeUndefined(); - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(url).toContain('/0/0/0'); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(request.url).toContain('/0/0/0'); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0).then(function(image) { @@ -253,7 +255,7 @@ describe('Scene/MapboxImageryProvider', function() { Resource._Implementations.createImage = function(request, crossOrigin, deferred) { if (tries === 2) { // Succeed after 2 tries - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); } else { // fail setTimeout(function() { @@ -290,11 +292,11 @@ describe('Scene/MapboxImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(/made\/up\/mapbox\/server\/test-id\/0\/0\/0@2x\.png\?access_token=/.test(url)).toBe(true); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(/made\/up\/mapbox\/server\/test-id\/0\/0\/0@2x\.png\?access_token=/.test(request.url)).toBe(true); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0).then(function(image) { @@ -313,11 +315,11 @@ describe('Scene/MapboxImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(/made\/up\/mapbox\/server\/test-id\/0\/0\/0\.png\?access_token=/.test(url)).toBe(true); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(/made\/up\/mapbox\/server\/test-id\/0\/0\/0\.png\?access_token=/.test(request.url)).toBe(true); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0).then(function(image) { diff --git a/Specs/Scene/MapboxStyleImageryProviderSpec.js b/Specs/Scene/MapboxStyleImageryProviderSpec.js index ce53e163d618..070bd2e4f604 100644 --- a/Specs/Scene/MapboxStyleImageryProviderSpec.js +++ b/Specs/Scene/MapboxStyleImageryProviderSpec.js @@ -2,6 +2,7 @@ define([ 'Core/MapboxApi', 'Core/Math', 'Core/Rectangle', + 'Core/Request', 'Core/RequestScheduler', 'Core/Resource', 'Core/WebMercatorTilingScheme', @@ -15,6 +16,7 @@ define([ MapboxApi, CesiumMath, Rectangle, + Request, RequestScheduler, Resource, WebMercatorTilingScheme, @@ -96,11 +98,11 @@ describe('Scene/MapboxStyleImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(url).not.toContain('//'); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(request.url).not.toContain('//'); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0).then(function(image) { @@ -119,11 +121,11 @@ describe('Scene/MapboxStyleImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(url).toContain('made/up/mapbox/server/'); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(request.url).toContain('made/up/mapbox/server/'); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0).then(function(image) { @@ -150,9 +152,9 @@ describe('Scene/MapboxStyleImageryProvider', function() { expect(provider.tilingScheme).toBeInstanceOf(WebMercatorTilingScheme); expect(provider.rectangle).toEqual(new WebMercatorTilingScheme().rectangle); - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0).then(function(image) { @@ -180,11 +182,11 @@ describe('Scene/MapboxStyleImageryProvider', function() { expect(provider.rectangle).toEqualEpsilon(rectangle, CesiumMath.EPSILON14); expect(provider.tileDiscardPolicy).toBeUndefined(); - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(url).toContain('/0/0/0'); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(request.url).toContain('/0/0/0'); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0).then(function(image) { @@ -253,7 +255,7 @@ describe('Scene/MapboxStyleImageryProvider', function() { Resource._Implementations.createImage = function(request, crossOrigin, deferred) { if (tries === 2) { // Succeed after 2 tries - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); } else { // fail setTimeout(function() { @@ -289,11 +291,11 @@ describe('Scene/MapboxStyleImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(url).toContain('http://fake.map.com'); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(request.url).toContain('http://fake.map.com'); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0); @@ -309,11 +311,11 @@ describe('Scene/MapboxStyleImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(url).toContain('https://api.mapbox.com/styles/v1/fakeUsername'); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(request.url).toContain('https://api.mapbox.com/styles/v1/fakeUsername'); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0); @@ -329,11 +331,11 @@ describe('Scene/MapboxStyleImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(url).toContain('https://api.mapbox.com/styles/v1/mapbox/test-id/tiles/256'); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(request.url).toContain('https://api.mapbox.com/styles/v1/mapbox/test-id/tiles/256'); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0); @@ -349,11 +351,11 @@ describe('Scene/MapboxStyleImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(url).toContain('https://api.mapbox.com/styles/v1/mapbox/test-id/tiles/512/0/0/0@2x'); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(request.url).toContain('https://api.mapbox.com/styles/v1/mapbox/test-id/tiles/512/0/0/0@2x'); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0); diff --git a/Specs/Scene/OpenStreetMapImageryProviderSpec.js b/Specs/Scene/OpenStreetMapImageryProviderSpec.js index a8877590c91a..9132bc1b4327 100644 --- a/Specs/Scene/OpenStreetMapImageryProviderSpec.js +++ b/Specs/Scene/OpenStreetMapImageryProviderSpec.js @@ -3,6 +3,7 @@ define([ 'Core/DefaultProxy', 'Core/Math', 'Core/Rectangle', + 'Core/Request', 'Core/RequestScheduler', 'Core/Resource', 'Core/WebMercatorTilingScheme', @@ -17,6 +18,7 @@ define([ DefaultProxy, CesiumMath, Rectangle, + Request, RequestScheduler, Resource, WebMercatorTilingScheme, @@ -67,11 +69,11 @@ describe('Scene/createOpenStreetMapImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(url).not.toContain('//'); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(request.url).not.toContain('//'); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0).then(function(image) { @@ -89,11 +91,11 @@ describe('Scene/createOpenStreetMapImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(url).not.toContain('//'); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(request.url).not.toContain('//'); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0).then(function(image) { @@ -111,11 +113,11 @@ describe('Scene/createOpenStreetMapImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(url).toContain('made/up/osm/server/'); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(request.url).toContain('made/up/osm/server/'); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0).then(function(image) { @@ -141,9 +143,9 @@ describe('Scene/createOpenStreetMapImageryProvider', function() { expect(provider.tilingScheme).toBeInstanceOf(WebMercatorTilingScheme); expect(provider.rectangle).toEqual(new WebMercatorTilingScheme().rectangle); - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0).then(function(image) { @@ -188,11 +190,11 @@ describe('Scene/createOpenStreetMapImageryProvider', function() { expect(provider.rectangle.north).toBeCloseTo(rectangle.north, CesiumMath.EPSILON10); expect(provider.tileDiscardPolicy).toBeUndefined(); - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(url).toContain('/0/0/0'); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(request.url).toContain('/0/0/0'); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0).then(function(image) { @@ -240,7 +242,7 @@ describe('Scene/createOpenStreetMapImageryProvider', function() { Resource._Implementations.createImage = function(request, crossOrigin, deferred) { if (tries === 2) { // Succeed after 2 tries - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); } else { // fail setTimeout(function() { diff --git a/Specs/Scene/SingleTileImageryProviderSpec.js b/Specs/Scene/SingleTileImageryProviderSpec.js index 9bf84204efee..30bede067a61 100644 --- a/Specs/Scene/SingleTileImageryProviderSpec.js +++ b/Specs/Scene/SingleTileImageryProviderSpec.js @@ -2,6 +2,7 @@ define([ 'Core/Ellipsoid', 'Core/GeographicTilingScheme', 'Core/Rectangle', + 'Core/Request', 'Core/Resource', 'Scene/Imagery', 'Scene/ImageryLayer', @@ -14,6 +15,7 @@ define([ Ellipsoid, GeographicTilingScheme, Rectangle, + Request, Resource, Imagery, ImageryLayer, @@ -135,9 +137,10 @@ describe('Scene/SingleTileImageryProvider', function() { it('requests the single image immediately upon construction', function() { var imageUrl = 'Data/Images/Red16x16.png'; - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + var url = request.url; expect(url).toEqual(imageUrl); - Resource._DefaultImplementations.createImage(url, crossOrigin, deferred); + Resource._DefaultImplementations.createImage(request, crossOrigin, deferred); }); var provider = new SingleTileImageryProvider({ @@ -197,7 +200,7 @@ describe('Scene/SingleTileImageryProvider', function() { Resource._Implementations.createImage = function(request, crossOrigin, deferred) { if (tries === 2) { // Succeed after 2 tries - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); } else { // fail setTimeout(function() { diff --git a/Specs/Scene/TileMapServiceImageryProviderSpec.js b/Specs/Scene/TileMapServiceImageryProviderSpec.js index 1747a54c7f25..8b0af06e541f 100644 --- a/Specs/Scene/TileMapServiceImageryProviderSpec.js +++ b/Specs/Scene/TileMapServiceImageryProviderSpec.js @@ -7,6 +7,7 @@ define([ 'Core/getAbsoluteUri', 'Core/Math', 'Core/Rectangle', + 'Core/Request', 'Core/RequestScheduler', 'Core/Resource', 'Core/WebMercatorProjection', @@ -26,6 +27,7 @@ define([ getAbsoluteUri, CesiumMath, Rectangle, + Request, RequestScheduler, Resource, WebMercatorProjection, @@ -206,11 +208,11 @@ describe('Scene/TileMapServiceImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(url).toStartWith(getAbsoluteUri(baseUrl)); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(request.url).toStartWith(getAbsoluteUri(baseUrl)); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0).then(function(image) { @@ -228,11 +230,11 @@ describe('Scene/TileMapServiceImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(url).toContain('made/up/tms/server/'); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(request.url).toContain('made/up/tms/server/'); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0).then(function(image) { @@ -251,11 +253,11 @@ describe('Scene/TileMapServiceImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(url).toStartWith(getAbsoluteUri(baseUrl)); - expect(url).toContain('?a=some&b=query'); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(request.url).toStartWith(getAbsoluteUri(baseUrl)); + expect(request.url).toContain('?a=some&b=query'); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0).then(function(image) { @@ -280,9 +282,9 @@ describe('Scene/TileMapServiceImageryProvider', function() { expect(provider.tilingScheme).toBeInstanceOf(WebMercatorTilingScheme); expect(provider.rectangle).toEqual(new WebMercatorTilingScheme().rectangle); - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0).then(function(image) { @@ -353,11 +355,11 @@ describe('Scene/TileMapServiceImageryProvider', function() { expect(provider.rectangle.south).toEqualEpsilon(rectangle.south, CesiumMath.EPSILON14); expect(provider.tileDiscardPolicy).toBeUndefined(); - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(url).toContain('/0/0/0'); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(request.url).toContain('/0/0/0'); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0).then(function(image) { @@ -402,7 +404,7 @@ describe('Scene/TileMapServiceImageryProvider', function() { Resource._Implementations.createImage = function(request, crossOrigin, deferred) { if (tries === 2) { // Succeed after 2 tries - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); } else { // fail setTimeout(function() { diff --git a/Specs/Scene/TimeDynamicPointCloudSpec.js b/Specs/Scene/TimeDynamicPointCloudSpec.js index 89c993077793..f7f2b1590e5d 100644 --- a/Specs/Scene/TimeDynamicPointCloudSpec.js +++ b/Specs/Scene/TimeDynamicPointCloudSpec.js @@ -699,7 +699,7 @@ describe('Scene/TimeDynamicPointCloud', function() { it('frame failed event is raised from request failure', function() { var pointCloud = createTimeDynamicPointCloud(); - spyOn(Resource._Implementations, 'loadWithXhr').and.callFake(function(url, responseType, method, data, headers, deferred, overrideMimeType) { + spyOn(Resource._Implementations, 'loadWithXhr').and.callFake(function(request, responseType, method, data, headers, deferred, overrideMimeType) { deferred.reject('404'); }); var spyUpdate = jasmine.createSpy('listener'); diff --git a/Specs/Scene/UrlTemplateImageryProviderSpec.js b/Specs/Scene/UrlTemplateImageryProviderSpec.js index 8aaf61f9c749..c9884d59b6be 100644 --- a/Specs/Scene/UrlTemplateImageryProviderSpec.js +++ b/Specs/Scene/UrlTemplateImageryProviderSpec.js @@ -3,6 +3,7 @@ define([ 'Core/GeographicTilingScheme', 'Core/Math', 'Core/Rectangle', + 'Core/Request', 'Core/RequestScheduler', 'Core/Resource', 'Core/WebMercatorProjection', @@ -20,6 +21,7 @@ define([ GeographicTilingScheme, CesiumMath, Rectangle, + Request, RequestScheduler, Resource, WebMercatorProjection, @@ -110,9 +112,9 @@ describe('Scene/UrlTemplateImageryProvider', function() { expect(provider.tilingScheme).toBeInstanceOf(WebMercatorTilingScheme); expect(provider.rectangle).toEqual(new WebMercatorTilingScheme().rectangle); - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0).then(function(image) { @@ -155,11 +157,11 @@ describe('Scene/UrlTemplateImageryProvider', function() { expect(provider.rectangle).toEqualEpsilon(rectangle, CesiumMath.EPSILON14); expect(provider.tileDiscardPolicy).toBeUndefined(); - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(url).toContain('/0/0/0'); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(request.url).toContain('/0/0/0'); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0).then(function(image) { @@ -206,7 +208,7 @@ describe('Scene/UrlTemplateImageryProvider', function() { Resource._Implementations.createImage = function(request, crossOrigin, deferred) { if (tries === 2) { // Succeed after 2 tries - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); } else { // fail setTimeout(function() { @@ -243,11 +245,11 @@ describe('Scene/UrlTemplateImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(url).toEqual('made/up/tms/server/2/3/2/1/4/3.PNG'); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(request.url).toEqual('made/up/tms/server/2/3/2/1/4/3.PNG'); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(3, 1, 2).then(function(image) { @@ -272,11 +274,11 @@ describe('Scene/UrlTemplateImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(url).toEqual('made/up/tms/server/0002/3/2/0001/4/0003.PNG'); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(request.url).toEqual('made/up/tms/server/0002/3/2/0001/4/0003.PNG'); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(3, 1, 2).then(function(image) { @@ -301,11 +303,11 @@ describe('Scene/UrlTemplateImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(url).toEqual('made/up/tms/server/2/0003/0002/1/0004/3.PNG'); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(request.url).toEqual('made/up/tms/server/2/0003/0002/1/0004/3.PNG'); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(3, 1, 2).then(function(image) { @@ -330,11 +332,11 @@ describe('Scene/UrlTemplateImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(url).toEqual('made/up/tms/server/0005/0/21/0010/51/0012.PNG'); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(request.url).toEqual('made/up/tms/server/0005/0/21/0010/51/0012.PNG'); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(12, 10, 5).then(function(image) { @@ -353,11 +355,11 @@ describe('Scene/UrlTemplateImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(url).toEqualEpsilon(45.0, CesiumMath.EPSILON11); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(request.url).toEqualEpsilon(45.0, CesiumMath.EPSILON11); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(3, 1, 2).then(function(image) { @@ -376,11 +378,11 @@ describe('Scene/UrlTemplateImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(url).toEqualEpsilon(0.0, CesiumMath.EPSILON11); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(request.url).toEqualEpsilon(0.0, CesiumMath.EPSILON11); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(3, 1, 2).then(function(image) { @@ -399,11 +401,11 @@ describe('Scene/UrlTemplateImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(url).toEqualEpsilon(0.0, CesiumMath.EPSILON11); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(request.url).toEqualEpsilon(0.0, CesiumMath.EPSILON11); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(3, 1, 2).then(function(image) { @@ -422,11 +424,11 @@ describe('Scene/UrlTemplateImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(url).toEqualEpsilon(-45.0, CesiumMath.EPSILON11); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(request.url).toEqualEpsilon(-45.0, CesiumMath.EPSILON11); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(3, 1, 2).then(function(image) { @@ -445,11 +447,11 @@ describe('Scene/UrlTemplateImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(url).toEqualEpsilon(Math.PI * Ellipsoid.WGS84.maximumRadius / 2.0, CesiumMath.EPSILON11); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(request.url).toEqualEpsilon(Math.PI * Ellipsoid.WGS84.maximumRadius / 2.0, CesiumMath.EPSILON11); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(3, 1, 2).then(function(image) { @@ -467,11 +469,11 @@ describe('Scene/UrlTemplateImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(url).toEqualEpsilon(Math.PI * Ellipsoid.WGS84.maximumRadius / 2.0, CesiumMath.EPSILON11); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(request.url).toEqualEpsilon(Math.PI * Ellipsoid.WGS84.maximumRadius / 2.0, CesiumMath.EPSILON11); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(3, 0, 2).then(function(image) { @@ -489,11 +491,11 @@ describe('Scene/UrlTemplateImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(url).toEqualEpsilon(-Math.PI * Ellipsoid.WGS84.maximumRadius / 2.0, CesiumMath.EPSILON11); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(request.url).toEqualEpsilon(-Math.PI * Ellipsoid.WGS84.maximumRadius / 2.0, CesiumMath.EPSILON11); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 1, 2).then(function(image) { @@ -511,11 +513,11 @@ describe('Scene/UrlTemplateImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(url).toEqualEpsilon(-Math.PI * Ellipsoid.WGS84.maximumRadius / 2.0, CesiumMath.EPSILON11); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(request.url).toEqualEpsilon(-Math.PI * Ellipsoid.WGS84.maximumRadius / 2.0, CesiumMath.EPSILON11); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(1, 1, 2).then(function(image) { @@ -533,8 +535,8 @@ describe('Scene/UrlTemplateImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(url).toEqual( + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(request.url).toEqual( '-90 ' + (-Math.PI * Ellipsoid.WGS84.maximumRadius / 2.0) + ' ' + '0 ' + @@ -545,7 +547,7 @@ describe('Scene/UrlTemplateImageryProvider', function() { (Math.PI * Ellipsoid.WGS84.maximumRadius / 2.0)); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(1, 1, 2).then(function(image) { @@ -563,11 +565,11 @@ describe('Scene/UrlTemplateImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(['a', 'b', 'c'].indexOf(url)).toBeGreaterThanOrEqualTo(0); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(['a', 'b', 'c'].indexOf(request.url)).toBeGreaterThanOrEqualTo(0); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(3, 1, 2).then(function(image) { @@ -586,11 +588,11 @@ describe('Scene/UrlTemplateImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(['1', '2', '3'].indexOf(url)).toBeGreaterThanOrEqualTo(0); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(['1', '2', '3'].indexOf(request.url)).toBeGreaterThanOrEqualTo(0); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(3, 1, 2).then(function(image) { @@ -609,11 +611,11 @@ describe('Scene/UrlTemplateImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(['foo', 'bar'].indexOf(url)).toBeGreaterThanOrEqualTo(0); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(['foo', 'bar'].indexOf(request.url)).toBeGreaterThanOrEqualTo(0); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(3, 1, 2).then(function(image) { @@ -637,11 +639,11 @@ describe('Scene/UrlTemplateImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - expect(url).toEqual('made/up/tms/server/foo/bar/2/1/3.PNG'); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + expect(request.url).toEqual('made/up/tms/server/foo/bar/2/1/3.PNG'); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(3, 1, 2).then(function(image) { diff --git a/Specs/Scene/WebMapServiceImageryProviderSpec.js b/Specs/Scene/WebMapServiceImageryProviderSpec.js index 8d52548b8339..ab37485b64e9 100644 --- a/Specs/Scene/WebMapServiceImageryProviderSpec.js +++ b/Specs/Scene/WebMapServiceImageryProviderSpec.js @@ -153,8 +153,8 @@ describe('Scene/WebMapServiceImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - var uri = new Uri(url); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + var uri = new Uri(request.url); var params = queryToObject(uri.query); expect(params.something).toEqual('foo'); expect(params.another).toEqual('false'); @@ -184,8 +184,8 @@ describe('Scene/WebMapServiceImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - var uri = new Uri(url); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + var uri = new Uri(request.url); var params = queryToObject(uri.query); expect(params.crs).toEqual('CRS:27'); expect(params.version).toEqual('1.3.0'); @@ -214,8 +214,8 @@ describe('Scene/WebMapServiceImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - var uri = new Uri(url); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + var uri = new Uri(request.url); var params = queryToObject(uri.query); expect(params.srs).toEqual('EPSG:4326'); expect(params.version).toEqual('1.1.0'); @@ -244,8 +244,8 @@ describe('Scene/WebMapServiceImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - var uri = new Uri(url); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + var uri = new Uri(request.url); var params = queryToObject(uri.query); expect(params.srs).toEqual('IAU2000:30118'); expect(params.version).toEqual('1.1.0'); @@ -296,8 +296,8 @@ describe('Scene/WebMapServiceImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - var questionMarkCount = url.match(/\?/g).length; + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + var questionMarkCount = request.url.match(/\?/g).length; expect(questionMarkCount).toEqual(1); // Don't need to actually load image, but satisfy the request. @@ -319,7 +319,8 @@ describe('Scene/WebMapServiceImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + var url = request.url; var questionMarkCount = url.match(/\?/g).length; expect(questionMarkCount).toEqual(1); expect(url).not.toContain('&&'); @@ -343,7 +344,8 @@ describe('Scene/WebMapServiceImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + var url = request.url; var questionMarkCount = url.match(/\?/g).length; expect(questionMarkCount).toEqual(1); @@ -371,8 +373,8 @@ describe('Scene/WebMapServiceImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + var url = request.url; var uri = new Uri(url); var params = queryToObject(uri.query); expect(params.version).toEqual('1.1.1'); @@ -405,9 +407,9 @@ describe('Scene/WebMapServiceImageryProvider', function() { expect(provider.tilingScheme).toBeInstanceOf(GeographicTilingScheme); expect(provider.rectangle).toEqual(new GeographicTilingScheme().rectangle); - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0).then(function(image) { @@ -437,8 +439,8 @@ describe('Scene/WebMapServiceImageryProvider', function() { expect(provider.tilingScheme).toBeInstanceOf(WebMercatorTilingScheme); expect(provider.rectangle).toEqual(new WebMercatorTilingScheme().rectangle); - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - var uri = new Uri(url); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + var uri = new Uri(request.url); var params = queryToObject(uri.query); expect(params.srs).toEqual('EPSG:3857'); @@ -447,7 +449,7 @@ describe('Scene/WebMapServiceImageryProvider', function() { var rect = tilingScheme.tileXYToNativeRectangle(0, 0, 0); expect(params.bbox).toEqual(rect.west + ',' + rect.south + ',' + rect.east + ',' + rect.north); - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0).then(function(image) { @@ -480,8 +482,8 @@ describe('Scene/WebMapServiceImageryProvider', function() { expect(provider.tilingScheme).toBeInstanceOf(WebMercatorTilingScheme); expect(provider.rectangle).toEqual(new WebMercatorTilingScheme().rectangle); - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - var uri = new Uri(url); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + var uri = new Uri(request.url); var params = queryToObject(uri.query); expect(params.crs).toEqual('EPSG:3857'); @@ -490,7 +492,7 @@ describe('Scene/WebMapServiceImageryProvider', function() { var rect = tilingScheme.tileXYToNativeRectangle(0, 0, 0); expect(params.bbox).toEqual(rect.west + ',' + rect.south + ',' + rect.east + ',' + rect.north); - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0).then(function(image) { @@ -520,8 +522,8 @@ describe('Scene/WebMapServiceImageryProvider', function() { expect(provider.tilingScheme).toBeInstanceOf(GeographicTilingScheme); expect(provider.rectangle).toEqual(new GeographicTilingScheme().rectangle); - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - var uri = new Uri(url); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + var uri = new Uri(request.url); var params = queryToObject(uri.query); expect(params.srs).toEqual('EPSG:4326'); @@ -530,7 +532,7 @@ describe('Scene/WebMapServiceImageryProvider', function() { var rect = tilingScheme.tileXYToNativeRectangle(0, 0, 0); expect(params.bbox).toEqual(rect.west + ',' + rect.south + ',' + rect.east + ',' + rect.north); - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0).then(function(image) { @@ -563,8 +565,8 @@ describe('Scene/WebMapServiceImageryProvider', function() { expect(provider.tilingScheme).toBeInstanceOf(GeographicTilingScheme); expect(provider.rectangle).toEqual(new GeographicTilingScheme().rectangle); - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - var uri = new Uri(url); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + var uri = new Uri(request.url); var params = queryToObject(uri.query); expect(params.srs).toEqual('EPSG:4326'); @@ -573,7 +575,7 @@ describe('Scene/WebMapServiceImageryProvider', function() { var rect = tilingScheme.tileXYToNativeRectangle(0, 0, 0); expect(params.bbox).toEqual(rect.west + ',' + rect.south + ',' + rect.east + ',' + rect.north); - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0).then(function(image) { @@ -606,8 +608,8 @@ describe('Scene/WebMapServiceImageryProvider', function() { expect(provider.tilingScheme).toBeInstanceOf(GeographicTilingScheme); expect(provider.rectangle).toEqual(new GeographicTilingScheme().rectangle); - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - var uri = new Uri(url); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + var uri = new Uri(request.url); var params = queryToObject(uri.query); expect(params.crs).toEqual('CRS:84'); @@ -616,7 +618,7 @@ describe('Scene/WebMapServiceImageryProvider', function() { var rect = tilingScheme.tileXYToNativeRectangle(0, 0, 0); expect(params.bbox).toEqual(rect.west + ',' + rect.south + ',' + rect.east + ',' + rect.north); - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0).then(function(image) { @@ -649,8 +651,8 @@ describe('Scene/WebMapServiceImageryProvider', function() { expect(provider.tilingScheme).toBeInstanceOf(GeographicTilingScheme); expect(provider.rectangle).toEqual(new GeographicTilingScheme().rectangle); - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - var uri = new Uri(url); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + var uri = new Uri(request.url); var params = queryToObject(uri.query); expect(params.crs).toEqual('CRS:84'); @@ -659,7 +661,7 @@ describe('Scene/WebMapServiceImageryProvider', function() { var rect = tilingScheme.tileXYToNativeRectangle(0, 0, 0); expect(params.bbox).toEqual(rect.west + ',' + rect.south + ',' + rect.east + ',' + rect.north); - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0).then(function(image) { @@ -681,15 +683,15 @@ describe('Scene/WebMapServiceImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { - var uri = new Uri(url); + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { + var uri = new Uri(request.url); var params = queryToObject(uri.query); expect(params.format).toEqual('foo'); expect(params.format).not.toEqual('image/jpeg'); // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0).then(function(image) { @@ -805,7 +807,7 @@ describe('Scene/WebMapServiceImageryProvider', function() { Resource._Implementations.createImage = function(request, crossOrigin, deferred) { if (tries === 2) { // Succeed after 2 tries - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); } else { // fail setTimeout(function() { @@ -1226,7 +1228,7 @@ describe('Scene/WebMapServiceImageryProvider', function() { }); Resource._Implementations.createImage = function(request, crossOrigin, deferred) { - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }; var entry; @@ -1277,7 +1279,7 @@ describe('Scene/WebMapServiceImageryProvider', function() { }); Resource._Implementations.createImage = function(request, crossOrigin, deferred) { - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }; var entry; @@ -1326,7 +1328,7 @@ describe('Scene/WebMapServiceImageryProvider', function() { }); Resource._Implementations.createImage = function(request, crossOrigin, deferred) { - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }; var provider = new WebMapServiceImageryProvider({ @@ -1380,7 +1382,7 @@ describe('Scene/WebMapServiceImageryProvider', function() { }); Resource._Implementations.createImage = function(request, crossOrigin, deferred) { - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }; var provider = new WebMapServiceImageryProvider({ diff --git a/Specs/Scene/WebMapTileServiceImageryProviderSpec.js b/Specs/Scene/WebMapTileServiceImageryProviderSpec.js index 531718f0d5d1..dd420725f54e 100644 --- a/Specs/Scene/WebMapTileServiceImageryProviderSpec.js +++ b/Specs/Scene/WebMapTileServiceImageryProviderSpec.js @@ -330,9 +330,9 @@ describe('Scene/WebMapTileServiceImageryProvider', function() { return pollToPromise(function() { return provider1.ready && provider2.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider1.requestImage(0, 0, 0).then(function(image) { @@ -340,7 +340,7 @@ describe('Scene/WebMapTileServiceImageryProvider', function() { expect(Resource._Implementations.createImage.calls.count()).toEqual(2); //expect the two image URLs to be the same between the two providers var allCalls = Resource._Implementations.createImage.calls.all(); - expect(allCalls[1].args[0]).toEqual(allCalls[0].args[0]); + expect(allCalls[1].args[0].url).toEqual(allCalls[0].args[0].url); }); }); }); @@ -357,9 +357,9 @@ describe('Scene/WebMapTileServiceImageryProvider', function() { return pollToPromise(function() { return provider.ready; }).then(function() { - spyOn(Resource._Implementations, 'createImage').and.callFake(function(url, crossOrigin, deferred) { + spyOn(Resource._Implementations, 'createImage').and.callFake(function(request, crossOrigin, deferred) { // Just return any old image. - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }); return provider.requestImage(0, 0, 0).then(function(image) { @@ -394,7 +394,7 @@ describe('Scene/WebMapTileServiceImageryProvider', function() { Resource._Implementations.createImage = function(request, crossOrigin, deferred) { if (tries === 2) { // Succeed after 2 tries - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); } else { // fail setTimeout(function() { @@ -445,7 +445,7 @@ describe('Scene/WebMapTileServiceImageryProvider', function() { }); Resource._Implementations.createImage = function(request, crossOrigin, deferred) { - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }; var entry; @@ -497,7 +497,7 @@ describe('Scene/WebMapTileServiceImageryProvider', function() { }); Resource._Implementations.createImage = function(request, crossOrigin, deferred) { - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }; var entry; @@ -546,7 +546,7 @@ describe('Scene/WebMapTileServiceImageryProvider', function() { }); Resource._Implementations.createImage = function(request, crossOrigin, deferred) { - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }; var provider = new WebMapTileServiceImageryProvider({ @@ -588,7 +588,7 @@ describe('Scene/WebMapTileServiceImageryProvider', function() { var lastUrl; Resource._Implementations.createImage = function(request, crossOrigin, deferred) { lastUrl = request.url; - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }; var provider = new WebMapTileServiceImageryProvider({ @@ -627,7 +627,7 @@ describe('Scene/WebMapTileServiceImageryProvider', function() { var lastUrl; Resource._Implementations.createImage = function(request, crossOrigin, deferred) { lastUrl = request.url; - Resource._DefaultImplementations.createImage('Data/Images/Red16x16.png', crossOrigin, deferred); + Resource._DefaultImplementations.createImage(new Request({url: 'Data/Images/Red16x16.png'}), crossOrigin, deferred); }; var uri = new Uri('http://wmts.invalid/kvp');