diff options
Diffstat (limited to 'devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_runtime_compatibility_warning.js')
-rw-r--r-- | devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_runtime_compatibility_warning.js | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_runtime_compatibility_warning.js b/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_runtime_compatibility_warning.js new file mode 100644 index 0000000000..3f45fa10d2 --- /dev/null +++ b/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_runtime_compatibility_warning.js @@ -0,0 +1,90 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +const COMPATIBLE_RUNTIME = "Compatible Runtime"; +const COMPATIBLE_DEVICE = "Compatible Device"; +const OLD_RUNTIME = "Old Runtime"; +const OLD_DEVICE = "Old Device"; +const FENNEC_68_RUNTIME = "Bad Runtime Fennec 68"; +const FENNEC_68_DEVICE = "Bad Device Fennec 68"; +const RECENT_RUNTIME = "Recent Runtime"; +const RECENT_DEVICE = "Recent Device"; + +add_task(async function () { + const { + COMPATIBILITY_STATUS, + } = require("resource://devtools/client/shared/remote-debugging/version-checker.js"); + const { COMPATIBLE, TOO_OLD, TOO_OLD_FENNEC, TOO_RECENT } = + COMPATIBILITY_STATUS; + + info("Create several mocked runtimes, with different compatibility reports"); + const mocks = new Mocks(); + createRuntimeWithReport( + mocks, + COMPATIBLE_RUNTIME, + COMPATIBLE_DEVICE, + COMPATIBLE + ); + createRuntimeWithReport(mocks, OLD_RUNTIME, OLD_DEVICE, TOO_OLD); + createRuntimeWithReport(mocks, RECENT_RUNTIME, RECENT_DEVICE, TOO_RECENT); + createRuntimeWithReport( + mocks, + FENNEC_68_RUNTIME, + FENNEC_68_DEVICE, + TOO_OLD_FENNEC + ); + + const { document, tab } = await openAboutDebugging(); + mocks.emitUSBUpdate(); + + info("Connect to all runtimes"); + await connectToRuntime(COMPATIBLE_DEVICE, document); + await connectToRuntime(OLD_DEVICE, document); + await connectToRuntime(RECENT_DEVICE, document); + await connectToRuntime(FENNEC_68_DEVICE, document); + + info("Select the compatible runtime and check that no warning is displayed"); + await selectRuntime(COMPATIBLE_DEVICE, COMPATIBLE_RUNTIME, document); + ok( + !document.querySelector(".qa-compatibility-warning"), + "Compatibility warning is not displayed" + ); + + info( + "Select the old runtime and check that the too-old warning is displayed" + ); + await selectRuntime(OLD_DEVICE, OLD_RUNTIME, document); + ok( + document.querySelector(".qa-compatibility-warning-too-old"), + "Expected compatibility warning is displayed (too-old)" + ); + + info( + "Select the recent runtime and check that the too-recent warning is displayed" + ); + await selectRuntime(RECENT_DEVICE, RECENT_RUNTIME, document); + ok( + document.querySelector(".qa-compatibility-warning-too-recent"), + "Expected compatibility warning is displayed (too-recent)" + ); + + info( + "Select the Fennec 68 runtime and check that the correct warning is displayed" + ); + await selectRuntime(FENNEC_68_DEVICE, FENNEC_68_RUNTIME, document); + ok(document.querySelector(".qa-compatibility-warning-too-old-fennec")); + + await removeTab(tab); +}); + +function createRuntimeWithReport(mocks, name, deviceName, status) { + const runtimeId = [name, deviceName].join("-"); + const compatibleUsbClient = mocks.createUSBRuntime(runtimeId, { + deviceName, + name, + }); + const report = { status }; + compatibleUsbClient.checkVersionCompatibility = () => report; +} |