From aa8b30a948b0f53ce5ca8c811fb53ea49060f8d5 Mon Sep 17 00:00:00 2001 From: xiaobaogeit Date: Fri, 5 Jun 2020 21:13:57 +0800 Subject: [PATCH 1/3] change cesiumScriptRegex value fixes Issue #8902 --- CONTRIBUTORS.md | 1 + Source/Core/buildModuleUrl.js | 2 +- Specs/Core/buildModuleUrlSpec.js | 5 +++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 00c776b4a4be..7ab65e2aa20d 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -260,3 +260,4 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for details on how to contribute to Cesiu - [Edvinas Pranka](https://github.com/epranka) - [James Bromwell](https://github.com/thw0rted) - [Brandon Nguyen](https://github.com/bn-dignitas) +- [Wang Bao](https://github.com/xiaobaogeit) diff --git a/Source/Core/buildModuleUrl.js b/Source/Core/buildModuleUrl.js index b79c07069ca8..81aa0ca2c53b 100644 --- a/Source/Core/buildModuleUrl.js +++ b/Source/Core/buildModuleUrl.js @@ -5,7 +5,7 @@ import Resource from "./Resource.js"; /*global CESIUM_BASE_URL*/ -var cesiumScriptRegex = /((?:.*\/)|^)Cesium\.js$/; +var cesiumScriptRegex = /((?:.*\/)|^)Cesium\.js(?:\W|$)/; function getBaseUrlFromCesiumScript() { var scripts = document.getElementsByTagName("script"); for (var i = 0, len = scripts.length; i < len; ++i) { diff --git a/Specs/Core/buildModuleUrlSpec.js b/Specs/Core/buildModuleUrlSpec.js index 73f23163f133..bd5cf9ca5cf7 100644 --- a/Specs/Core/buildModuleUrlSpec.js +++ b/Specs/Core/buildModuleUrlSpec.js @@ -17,10 +17,15 @@ describe("Core/buildModuleUrl", function () { var r = buildModuleUrl._cesiumScriptRegex; expect(r.exec("Cesium.js")[1]).toEqual(""); + expect(r.exec("Cesium.js?v=1.7")[1]).toEqual(""); expect(r.exec("assets/foo/Cesium.js")[1]).toEqual("assets/foo/"); + expect(r.exec("assets/foo/Cesium.js?v=1.7")[1]).toEqual("assets/foo/"); expect( r.exec("http://example.invalid/Cesium/assets/foo/Cesium.js")[1] ).toEqual("http://example.invalid/Cesium/assets/foo/"); + expect( + r.exec("http://example.invalid/Cesium/assets/foo/Cesium.js?v=1.7")[1] + ).toEqual("http://example.invalid/Cesium/assets/foo/"); expect(r.exec("assets/foo/bar.cesium.js")).toBeNull(); }); From e529cef25ab50715687c86aeebe4db39d00b499f Mon Sep 17 00:00:00 2001 From: xiaobaogeit Date: Sat, 6 Jun 2020 11:33:26 +0800 Subject: [PATCH 2/3] add more test add CesiumSomething test --- Specs/Core/buildModuleUrlSpec.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Specs/Core/buildModuleUrlSpec.js b/Specs/Core/buildModuleUrlSpec.js index bd5cf9ca5cf7..0d1f858a85e2 100644 --- a/Specs/Core/buildModuleUrlSpec.js +++ b/Specs/Core/buildModuleUrlSpec.js @@ -27,7 +27,14 @@ describe("Core/buildModuleUrl", function () { r.exec("http://example.invalid/Cesium/assets/foo/Cesium.js?v=1.7")[1] ).toEqual("http://example.invalid/Cesium/assets/foo/"); + expect(r.exec("cesium.js")).toBeNull(); + expect(r.exec("Cesium.min.js")).toBeNull(); + expect(r.exec("CesiumSomething.js")).toBeNull(); + expect(r.exec("CesiumSomething.js?v=1.7")).toBeNull(); expect(r.exec("assets/foo/bar.cesium.js")).toBeNull(); + expect(r.exec("assets/foo/bar.cesium.js?v=1.7")).toBeNull(); + expect(r.exec("assets/foo/CesiumSomething.js")).toBeNull(); + expect(r.exec("assets/foo/CesiumSomething.js?v=1.7")).toBeNull(); }); it("CESIUM_BASE_URL works with trailing slash", function () { From 661342cbd7ae3802cd170c139e0716f110076521 Mon Sep 17 00:00:00 2001 From: Matthew Amato Date: Mon, 8 Jun 2020 16:45:29 -0400 Subject: [PATCH 3/3] Improve base url regex, add additional test. --- Source/Core/buildModuleUrl.js | 2 +- Specs/Core/buildModuleUrlSpec.js | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Source/Core/buildModuleUrl.js b/Source/Core/buildModuleUrl.js index 81aa0ca2c53b..bcf2b2fd83c6 100644 --- a/Source/Core/buildModuleUrl.js +++ b/Source/Core/buildModuleUrl.js @@ -5,7 +5,7 @@ import Resource from "./Resource.js"; /*global CESIUM_BASE_URL*/ -var cesiumScriptRegex = /((?:.*\/)|^)Cesium\.js(?:\W|$)/; +var cesiumScriptRegex = /((?:.*\/)|^)Cesium\.js(?:\?|\#|$)/; function getBaseUrlFromCesiumScript() { var scripts = document.getElementsByTagName("script"); for (var i = 0, len = scripts.length; i < len; ++i) { diff --git a/Specs/Core/buildModuleUrlSpec.js b/Specs/Core/buildModuleUrlSpec.js index 0d1f858a85e2..ef480b38dae4 100644 --- a/Specs/Core/buildModuleUrlSpec.js +++ b/Specs/Core/buildModuleUrlSpec.js @@ -28,6 +28,7 @@ describe("Core/buildModuleUrl", function () { ).toEqual("http://example.invalid/Cesium/assets/foo/"); expect(r.exec("cesium.js")).toBeNull(); + expect(r.exec("Cesium.js%20")).toBeNull(); expect(r.exec("Cesium.min.js")).toBeNull(); expect(r.exec("CesiumSomething.js")).toBeNull(); expect(r.exec("CesiumSomething.js?v=1.7")).toBeNull();