summaryrefslogtreecommitdiffstats
path: root/devtools/client/netmonitor/test/browser_net_icon-preview.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/netmonitor/test/browser_net_icon-preview.js')
-rw-r--r--devtools/client/netmonitor/test/browser_net_icon-preview.js71
1 files changed, 71 insertions, 0 deletions
diff --git a/devtools/client/netmonitor/test/browser_net_icon-preview.js b/devtools/client/netmonitor/test/browser_net_icon-preview.js
new file mode 100644
index 000000000..e3c5bde4e
--- /dev/null
+++ b/devtools/client/netmonitor/test/browser_net_icon-preview.js
@@ -0,0 +1,71 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+/**
+ * Tests if image responses show a thumbnail in the requests menu.
+ */
+
+add_task(function* () {
+ let Actions = require("devtools/client/netmonitor/actions/index");
+
+ let { tab, monitor } = yield initNetMonitor(CONTENT_TYPE_WITHOUT_CACHE_URL);
+ info("Starting test... ");
+
+ let { $, $all, EVENTS, ACTIVITY_TYPE, NetMonitorView, NetMonitorController,
+ gStore } = monitor.panelWin;
+ let { RequestsMenu } = NetMonitorView;
+
+ let wait = waitForEvents();
+ yield performRequests();
+ yield wait;
+
+ info("Checking the image thumbnail when all items are shown.");
+ checkImageThumbnail();
+
+ RequestsMenu.sortBy("size");
+ info("Checking the image thumbnail when all items are sorted.");
+ checkImageThumbnail();
+
+ gStore.dispatch(Actions.toggleFilterType("images"));
+ info("Checking the image thumbnail when only images are shown.");
+ checkImageThumbnail();
+
+ info("Reloading the debuggee and performing all requests again...");
+ wait = waitForEvents();
+ yield reloadAndPerformRequests();
+ yield wait;
+
+ info("Checking the image thumbnail after a reload.");
+ checkImageThumbnail();
+
+ yield teardown(monitor);
+
+ function waitForEvents() {
+ return promise.all([
+ waitForNetworkEvents(monitor, CONTENT_TYPE_WITHOUT_CACHE_REQUESTS),
+ monitor.panelWin.once(EVENTS.RESPONSE_IMAGE_THUMBNAIL_DISPLAYED)
+ ]);
+ }
+
+ function performRequests() {
+ return ContentTask.spawn(tab.linkedBrowser, {}, function* () {
+ content.wrappedJSObject.performRequests();
+ });
+ }
+
+ function* reloadAndPerformRequests() {
+ yield NetMonitorController.triggerActivity(ACTIVITY_TYPE.RELOAD.WITH_CACHE_ENABLED);
+ yield performRequests();
+ }
+
+ function checkImageThumbnail() {
+ is($all(".requests-menu-icon[type=thumbnail]").length, 1,
+ "There should be only one image request with a thumbnail displayed.");
+ is($(".requests-menu-icon[type=thumbnail]").src, TEST_IMAGE_DATA_URI,
+ "The image requests-menu-icon thumbnail is displayed correctly.");
+ is($(".requests-menu-icon[type=thumbnail]").hidden, false,
+ "The image requests-menu-icon thumbnail should not be hidden.");
+ }
+});