123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- /* Any copyright is dedicated to the Public Domain.
- http://creativecommons.org/publicdomain/zero/1.0/ */
- "use strict";
- add_task(function* () {
- let tab = yield addTab("data:text/html;charset=utf8,Test RDM custom presets");
- let { rdm, manager } = yield openRDM(tab);
- let oldPrompt = Services.prompt;
- Services.prompt = {
- value: "",
- returnBool: true,
- prompt: function (parent, dialogTitle, text, value, checkMsg, checkState) {
- value.value = this.value;
- return this.returnBool;
- }
- };
- registerCleanupFunction(() => {
- Services.prompt = oldPrompt;
- });
- // Is it open?
- let container = gBrowser.getBrowserContainer();
- is(container.getAttribute("responsivemode"), "true",
- "Should be in responsive mode.");
- ok(rdm, "RDM instance should be attached to the tab.");
- // Tries to add a custom preset and cancel the prompt
- let idx = rdm.menulist.selectedIndex;
- let presetCount = rdm.presets.length;
- Services.prompt.value = "";
- Services.prompt.returnBool = false;
- rdm.addbutton.doCommand();
- is(idx, rdm.menulist.selectedIndex,
- "selected item shouldn't change after add preset and cancel");
- is(presetCount, rdm.presets.length,
- "number of presets shouldn't change after add preset and cancel");
- // Adds the custom preset with "Testing preset"
- Services.prompt.value = "Testing preset";
- Services.prompt.returnBool = true;
- let resized = once(manager, "content-resize");
- let customHeight = 123, customWidth = 456;
- rdm.startResizing({});
- rdm.setViewportSize({
- width: customWidth,
- height: customHeight,
- });
- rdm.stopResizing({});
- rdm.addbutton.doCommand();
- yield resized;
- yield closeRDM(rdm);
- ({rdm} = yield openRDM(tab));
- is(container.getAttribute("responsivemode"), "true",
- "Should be in responsive mode.");
- let presetLabel = "456" + "\u00D7" + "123 (Testing preset)";
- let customPresetIndex = yield getPresetIndex(rdm, manager, presetLabel);
- ok(customPresetIndex >= 0, "(idx = " + customPresetIndex + ") should be the" +
- " previously added preset in the list of items");
- yield setPresetIndex(rdm, manager, customPresetIndex);
- let browser = gBrowser.selectedBrowser;
- yield ContentTask.spawn(browser, null, function* () {
- let {innerWidth, innerHeight} = content;
- Assert.equal(innerWidth, 456, "Selecting preset should change the width");
- Assert.equal(innerHeight, 123, "Selecting preset should change the height");
- });
- info(`menulist count: ${rdm.menulist.itemCount}`);
- rdm.removebutton.doCommand();
- yield setPresetIndex(rdm, manager, 2);
- let deletedPresetA = rdm.menulist.selectedItem.getAttribute("label");
- rdm.removebutton.doCommand();
- yield setPresetIndex(rdm, manager, 2);
- let deletedPresetB = rdm.menulist.selectedItem.getAttribute("label");
- rdm.removebutton.doCommand();
- yield closeRDM(rdm);
- ({rdm} = yield openRDM(tab));
- customPresetIndex = yield getPresetIndex(rdm, manager, deletedPresetA);
- is(customPresetIndex, -1,
- "Deleted preset " + deletedPresetA + " should not be in the list anymore");
- customPresetIndex = yield getPresetIndex(rdm, manager, deletedPresetB);
- is(customPresetIndex, -1,
- "Deleted preset " + deletedPresetB + " should not be in the list anymore");
- yield closeRDM(rdm);
- });
- var getPresetIndex = Task.async(function* (rdm, manager, presetLabel) {
- var testOnePreset = Task.async(function* (c) {
- if (c == 0) {
- return -1;
- }
- yield setPresetIndex(rdm, manager, c);
- let item = rdm.menulist.firstChild.childNodes[c];
- if (item.getAttribute("label") === presetLabel) {
- return c;
- }
- return testOnePreset(c - 1);
- });
- return testOnePreset(rdm.menulist.firstChild.childNodes.length - 4);
- });
|