summaryrefslogtreecommitdiffstats
path: root/devtools/client/shared/test/browser_devices.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/shared/test/browser_devices.js')
-rw-r--r--devtools/client/shared/test/browser_devices.js65
1 files changed, 65 insertions, 0 deletions
diff --git a/devtools/client/shared/test/browser_devices.js b/devtools/client/shared/test/browser_devices.js
new file mode 100644
index 0000000000..3585c9b720
--- /dev/null
+++ b/devtools/client/shared/test/browser_devices.js
@@ -0,0 +1,65 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+const {
+ getDevices,
+ getDeviceString,
+ addDevice,
+} = require("devtools/client/shared/devices");
+
+add_task(async function() {
+ Services.prefs.setCharPref(
+ "devtools.devices.url",
+ TEST_URI_ROOT + "browser_devices.json"
+ );
+
+ let devices = await getDevices();
+
+ is(devices.TYPES.length, 1, "Found 1 device type.");
+
+ const type1 = devices.TYPES[0];
+
+ is(devices[type1].length, 2, "Found 2 devices of type #1.");
+
+ const string = getDeviceString(type1);
+ ok(
+ typeof string === "string" && string.length > 0,
+ "Able to localize type #1."
+ );
+
+ const device1 = {
+ name: "SquarePhone",
+ width: 320,
+ height: 320,
+ pixelRatio: 2,
+ userAgent: "Mozilla/5.0 (Mobile; rv:42.0)",
+ touch: true,
+ firefoxOS: true,
+ };
+ addDevice(device1, type1);
+ devices = await getDevices();
+
+ is(devices[type1].length, 3, "Added new device of type #1.");
+ ok(
+ devices[type1].filter(d => d.name === device1.name),
+ "Found the new device."
+ );
+
+ const type2 = "appliances";
+ const device2 = {
+ name: "Mr Freezer",
+ width: 800,
+ height: 600,
+ pixelRatio: 5,
+ userAgent: "Mozilla/5.0 (Appliance; rv:42.0)",
+ touch: true,
+ firefoxOS: true,
+ };
+ addDevice(device2, type2);
+ devices = await getDevices();
+
+ is(devices.TYPES.length, 2, "Added device type #2.");
+ is(devices[type2].length, 1, "Added new device of type #2.");
+});