tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

ui.test.js (4547B)


      1 /* Any copyright is dedicated to the Public Domain.
      2 * http://creativecommons.org/publicdomain/zero/1.0/ */
      3 
      4 "use strict";
      5 
      6 const expect = require("expect");
      7 
      8 const actions = require("resource://devtools/client/webconsole/actions/index.js");
      9 const {
     10  setupStore,
     11  getFirstMessage,
     12  getLastMessage,
     13 } = require("resource://devtools/client/webconsole/test/node/helpers.js");
     14 const {
     15  stubPackets,
     16  stubPreparedMessages,
     17 } = require("resource://devtools/client/webconsole/test/node/fixtures/stubs/index.js");
     18 
     19 describe("Testing UI", () => {
     20  let store;
     21 
     22  beforeEach(() => {
     23    store = setupStore();
     24  });
     25 
     26  describe("Toggle sidebar", () => {
     27    it("sidebar is toggled on and off", () => {
     28      const packet = stubPackets.get("inspect({a: 1})");
     29      const message = stubPreparedMessages.get("inspect({a: 1})");
     30      store.dispatch(actions.messagesAdd([packet]));
     31 
     32      const { actorID } = message.parameters[0];
     33      const messageId = getFirstMessage(store.getState()).id;
     34      store.dispatch(actions.showMessageObjectInSidebar(actorID, messageId));
     35 
     36      expect(store.getState().ui.sidebarVisible).toEqual(true);
     37      store.dispatch(actions.sidebarClose());
     38      expect(store.getState().ui.sidebarVisible).toEqual(false);
     39    });
     40  });
     41 
     42  describe("Hide sidebar on clear", () => {
     43    it("sidebar is hidden on clear", () => {
     44      const packet = stubPackets.get("inspect({a: 1})");
     45      const message = stubPreparedMessages.get("inspect({a: 1})");
     46      store.dispatch(actions.messagesAdd([packet]));
     47 
     48      const { actorID } = message.parameters[0];
     49      const messageId = getFirstMessage(store.getState()).id;
     50      store.dispatch(actions.showMessageObjectInSidebar(actorID, messageId));
     51 
     52      expect(store.getState().ui.sidebarVisible).toEqual(true);
     53      store.dispatch(actions.messagesClear());
     54      expect(store.getState().ui.sidebarVisible).toEqual(false);
     55      store.dispatch(actions.messagesClear());
     56      expect(store.getState().ui.sidebarVisible).toEqual(false);
     57    });
     58  });
     59 
     60  describe("Show object in sidebar", () => {
     61    it("sidebar is shown with correct object", () => {
     62      const packet = stubPackets.get("inspect({a: 1})");
     63      const message = stubPreparedMessages.get("inspect({a: 1})");
     64      store.dispatch(actions.messagesAdd([packet]));
     65 
     66      const { actorID } = message.parameters[0];
     67      const messageId = getFirstMessage(store.getState()).id;
     68      store.dispatch(actions.showMessageObjectInSidebar(actorID, messageId));
     69 
     70      expect(store.getState().ui.sidebarVisible).toEqual(true);
     71      expect(store.getState().ui.frontInSidebar).toEqual(message.parameters[0]);
     72    });
     73 
     74    it("sidebar is not updated for the same object", () => {
     75      const packet = stubPackets.get("inspect({a: 1})");
     76      const message = stubPreparedMessages.get("inspect({a: 1})");
     77      store.dispatch(actions.messagesAdd([packet]));
     78 
     79      const { actorID } = message.parameters[0];
     80      const messageId = getFirstMessage(store.getState()).id;
     81      store.dispatch(actions.showMessageObjectInSidebar(actorID, messageId));
     82 
     83      expect(store.getState().ui.sidebarVisible).toEqual(true);
     84      expect(store.getState().ui.frontInSidebar).toEqual(message.parameters[0]);
     85      const state = store.getState().ui;
     86 
     87      store.dispatch(actions.showMessageObjectInSidebar(actorID, messageId));
     88      expect(store.getState().ui).toEqual(state);
     89    });
     90 
     91    it("sidebar shown and updated for new object", () => {
     92      const packet = stubPackets.get("inspect({a: 1})");
     93      const message = stubPreparedMessages.get("inspect({a: 1})");
     94      store.dispatch(actions.messagesAdd([packet]));
     95 
     96      const { actorID } = message.parameters[0];
     97      const messageId = getFirstMessage(store.getState()).id;
     98      store.dispatch(actions.showMessageObjectInSidebar(actorID, messageId));
     99 
    100      expect(store.getState().ui.sidebarVisible).toEqual(true);
    101      expect(store.getState().ui.frontInSidebar).toEqual(message.parameters[0]);
    102 
    103      const newPacket = stubPackets.get("new Date(0)");
    104      const newMessage = stubPreparedMessages.get("new Date(0)");
    105      store.dispatch(actions.messagesAdd([newPacket]));
    106 
    107      const newActorID = newMessage.parameters[0].actorID;
    108      const newMessageId = getLastMessage(store.getState()).id;
    109      store.dispatch(
    110        actions.showMessageObjectInSidebar(newActorID, newMessageId)
    111      );
    112 
    113      expect(store.getState().ui.sidebarVisible).toEqual(true);
    114      expect(store.getState().ui.frontInSidebar).toEqual(
    115        newMessage.parameters[0]
    116      );
    117    });
    118  });
    119 });