From afa14687ff2c6572ae9c43278e52e0bac7e1a872 Mon Sep 17 00:00:00 2001 From: Lukasz Rutkowski Date: Mon, 4 Jul 2022 15:50:35 +0200 Subject: [PATCH 1/3] Add engines versions to the URL --- README.md | 6 +++--- src/engineChange.js | 24 +++++++++++++++--------- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index c6820e2..bd3adf6 100644 --- a/README.md +++ b/README.md @@ -145,7 +145,7 @@ All interactive elements are navigable via arrow keys and can be selected throug Test execution can be controlled through URL parameters, e.g. to run `DASH Shaka` tests 1,2,3 on Shaka Player version 2.5.20 use: - http://MVT_INSTANCE_ADDRESS?test_type=dash-shaka-test&tests=1-3&engine_shaka_player=2.5.20 + http://MVT_INSTANCE_ADDRESS?test_type=dash-shaka-test&tests=1-3&engine_shaka=2.5.20 Most of the URL parameters can be combined. Here's a full list of supported queries: @@ -170,8 +170,8 @@ Most of the URL parameters can be combined. Here's a full list of supported quer - `loop=false|true` - `stoponfailure=false|true` - `disable_log=false|true` -- `engine_shaka_player=2.5.20|3.0.1|3.2.1` - select Shaka Player version. Please note it will only affect Shaka test suites. -- `engine_dashjs_player=2.9.3|3.0.1|latest` - select dash.js version. Please note it will only affect dash.js test suites. +- `engine_shaka=2.5.20|3.0.1|3.2.1` - select Shaka Player version. Please note it will only affect Shaka test suites. +- `engine_dashjs=2.9.3|3.0.1|latest` - select dash.js version. Please note it will only affect dash.js test suites. ### JavaScript API diff --git a/src/engineChange.js b/src/engineChange.js index 9e4773a..4dce50d 100644 --- a/src/engineChange.js +++ b/src/engineChange.js @@ -20,7 +20,7 @@ "use strict"; var EngineVersions = { - shaka_player: { + shaka: { versions: { "2.5.20": ["https://ajax.googleapis.com/ajax/libs/shaka-player/2.5.20/shaka-player.compiled.js"], "3.0.1": ["https://ajax.googleapis.com/ajax/libs/shaka-player/3.0.1/shaka-player.compiled.js"], @@ -29,7 +29,7 @@ var EngineVersions = { name: "Shaka Player", defaultVersion: "3.2.1", }, - dashjs_player: { + dashjs: { versions: { "2.9.3": ["https://cdn.dashjs.org/v2.9.3/dash.all.min.js", "https://cdn.dashjs.org/v2.9.3/dash.mss.min.js"], "3.1.1": ["https://cdn.dashjs.org/v3.1.1/dash.all.min.js", "https://cdn.dashjs.org/v3.1.1/dash.mss.min.js"], @@ -57,15 +57,21 @@ function loadStoredEngine() { var engine = EngineVersions[engineId]; var queryVariable = getQueryVariable("engine_" + engineId); - if (queryVariable && engine.versions[queryVariable] !== undefined) { - window.localStorage["engine_" + engineId] = queryVariable; - window.location.href = window.location.search.replace("engine_" + engineId + "=" + queryVariable, ""); - } else if (window.localStorage["engine_" + engineId] === undefined) { + // if engine version is missing, add the default value from dict 'EngineVersions' to the url: + if (!queryVariable) { window.localStorage["engine_" + engineId] = engine.defaultVersion; + window.location.href += "&engine_" + engineId + "=" + engine.defaultVersion; + // if engine version is provided and it is the same in Local Storage do nothing: + } else if (queryVariable && window.localStorage["engine_" + engineId] === queryVariable) { + engine.defaultVersion = queryVariable; } else { - var version = window.localStorage["engine_" + engineId]; - if (engine.versions[version] !== undefined) { - engine.defaultVersion = window.localStorage["engine_" + engineId]; + // if engine version is provided but it does not exist in 'EngineVersions' dict, replace it in url to the default value: + if (engine.versions[queryVariable] === undefined) { + window.localStorage["engine_" + engineId] = engine.defaultVersion; + window.location.href = window.location.search.replace("engine_" + engineId + "=" + queryVariable, "engine_" + engineId + "=" + engine.defaultVersion); + } else { + window.localStorage["engine_" + engineId] = queryVariable; + engine.defaultVersion = queryVariable; } } console.log("Engine : " + engine.name + " : " + engine.defaultVersion); From e71d9773679cd14589fb804592393c3167500ed5 Mon Sep 17 00:00:00 2001 From: Lukasz Rutkowski Date: Mon, 4 Jul 2022 16:46:02 +0200 Subject: [PATCH 2/3] Reformat code with Prettier --- src/engineChange.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/engineChange.js b/src/engineChange.js index 4dce50d..7634340 100644 --- a/src/engineChange.js +++ b/src/engineChange.js @@ -61,14 +61,17 @@ function loadStoredEngine() { if (!queryVariable) { window.localStorage["engine_" + engineId] = engine.defaultVersion; window.location.href += "&engine_" + engineId + "=" + engine.defaultVersion; - // if engine version is provided and it is the same in Local Storage do nothing: + // if engine version is provided and it is the same in Local Storage do nothing: } else if (queryVariable && window.localStorage["engine_" + engineId] === queryVariable) { engine.defaultVersion = queryVariable; } else { // if engine version is provided but it does not exist in 'EngineVersions' dict, replace it in url to the default value: if (engine.versions[queryVariable] === undefined) { window.localStorage["engine_" + engineId] = engine.defaultVersion; - window.location.href = window.location.search.replace("engine_" + engineId + "=" + queryVariable, "engine_" + engineId + "=" + engine.defaultVersion); + window.location.href = window.location.search.replace( + "engine_" + engineId + "=" + queryVariable, + "engine_" + engineId + "=" + engine.defaultVersion + ); } else { window.localStorage["engine_" + engineId] = queryVariable; engine.defaultVersion = queryVariable; From 5e0b0091989488043d424415ebf1170bcb261513 Mon Sep 17 00:00:00 2001 From: Lukasz Rutkowski Date: Mon, 4 Jul 2022 19:47:53 +0200 Subject: [PATCH 3/3] Update logic for loadStoredEngine() --- src/engineChange.js | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/src/engineChange.js b/src/engineChange.js index 7634340..06b445a 100644 --- a/src/engineChange.js +++ b/src/engineChange.js @@ -57,23 +57,17 @@ function loadStoredEngine() { var engine = EngineVersions[engineId]; var queryVariable = getQueryVariable("engine_" + engineId); - // if engine version is missing, add the default value from dict 'EngineVersions' to the url: - if (!queryVariable) { - window.localStorage["engine_" + engineId] = engine.defaultVersion; - window.location.href += "&engine_" + engineId + "=" + engine.defaultVersion; - // if engine version is provided and it is the same in Local Storage do nothing: - } else if (queryVariable && window.localStorage["engine_" + engineId] === queryVariable) { - engine.defaultVersion = queryVariable; - } else { - // if engine version is provided but it does not exist in 'EngineVersions' dict, replace it in url to the default value: + if (queryVariable) { + // if engine version is provided but it does not exist in 'EngineVersions', replace it to the default value: if (engine.versions[queryVariable] === undefined) { - window.localStorage["engine_" + engineId] = engine.defaultVersion; - window.location.href = window.location.search.replace( - "engine_" + engineId + "=" + queryVariable, - "engine_" + engineId + "=" + engine.defaultVersion + console.warn( + `${engineId} player version '${queryVariable}' is not available, it has been set to default: '${engine.defaultVersion}'` ); + window.history.pushState("", "", window.location.search.replace(`&engine_${engineId}=${queryVariable}`, "")); + // remove version parameter from the url if the provided version is the default one: + } else if (queryVariable === engine.defaultVersion) { + window.history.pushState("", "", window.location.search.replace(`&engine_${engineId}=${queryVariable}`, "")); } else { - window.localStorage["engine_" + engineId] = queryVariable; engine.defaultVersion = queryVariable; } }