summaryrefslogtreecommitdiffstats
path: root/devtools/client/netmonitor/test/browser_net_icon-preview.js
blob: e3c5bde4e0725df361926e4e311236e8a1770d7d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
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.");
  }
});