Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  browser_UITour3.js

  Sprache: JAVA
 

"use strict";

const { CustomizableUITestUtils } = ChromeUtils.importESModule(
  "resource://testing-common/CustomizableUITestUtils.sys.mjs"
);
let gCUITestUtils = new CustomizableUITestUtils(window);

var gTestTab;
var gContentAPI;

requestLongerTimeout(2);

add_task(setup_UITourTest);

add_UITour_task(async function test_info_icon() {
  let popup = document.getElementById("UITourTooltip");
  let title = document.getElementById("UITourTooltipTitle");
  let desc = document.getElementById("UITourTooltipDescription");
  let icon = document.getElementById("UITourTooltipIcon");
  let buttons = document.getElementById("UITourTooltipButtons");

  // Disable the animation to prevent the mouse clicks from hitting the main
  // window during the transition instead of the buttons in the popup.
  popup.setAttribute("animate""false");

  await showInfoPromise("urlbar""a title""some text""image.png");

  is(title.textContent, "a title""Popup should have correct title");
  is(
    desc.textContent,
    "some text",
    "Popup should have correct description text"
  );

  let imageURL = getRootDirectory(gTestPath) + "image.png";
  imageURL = imageURL.replace(
    "chrome://mochitests/content/",
    "https://example.org/"
  );
  is(icon.src, imageURL, "Popup should have correct icon shown");

  is(buttons.hasChildNodes(), false"Popup should have no buttons");
});

add_UITour_task(async function test_info_buttons_1() {
  let popup = document.getElementById("UITourTooltip");
  let title = document.getElementById("UITourTooltipTitle");
  let desc = document.getElementById("UITourTooltipDescription");
  let icon = document.getElementById("UITourTooltipIcon");

  await showInfoPromise(
    "urlbar",
    "another title",
    "moar text",
    "./image.png",
    "makeButtons"
  );

  is(title.textContent, "another title""Popup should have correct title");
  is(
    desc.textContent,
    "moar text",
    "Popup should have correct description text"
  );

  let imageURL = getRootDirectory(gTestPath) + "image.png";
  imageURL = imageURL.replace(
    "chrome://mochitests/content/",
    "https://example.org/"
  );
  is(icon.src, imageURL, "Popup should have correct icon shown");

  let buttons = document.getElementById("UITourTooltipButtons");
  is(buttons.childElementCount, 4, "Popup should have four buttons");

  is(buttons.children[0].nodeName, "label""Text label should be a <label>");
  is(
    buttons.children[0].getAttribute("value"),
    "Regular text",
    "Text label should have correct value"
  );
  is(
    buttons.children[0].getAttribute("image"),
    null,
    "Text should have no image"
  );
  is(buttons.children[0].className, """Text should have no class");

  is(buttons.children[1].nodeName, "button""Link should be a <button>");
  is(
    buttons.children[1].getAttribute("label"),
    "Link",
    "Link should have correct label"
  );
  is(
    buttons.children[1].getAttribute("image"),
    null,
    "Link should have no image"
  );
  is(buttons.children[1].className, "button-link""Check link class");

  is(buttons.children[2].nodeName, "button""Button 1 should be a <button>");
  is(
    buttons.children[2].getAttribute("label"),
    "Button 1",
    "First button should have correct label"
  );
  is(
    buttons.children[2].getAttribute("image"),
    null,
    "First button should have no image"
  );
  is(buttons.children[2].className, """Button 1 should have no class");

  is(buttons.children[3].nodeName, "button""Button 2 should be a <button>");
  is(
    buttons.children[3].getAttribute("label"),
    "Button 2",
    "Second button should have correct label"
  );
  is(
    buttons.children[3].getAttribute("image"),
    imageURL,
    "Second button should have correct image"
  );
  is(buttons.children[3].className, "button-primary""Check button 2 class");

  let promiseHidden = promisePanelElementHidden(window, popup);
  EventUtils.synthesizeMouseAtCenter(buttons.children[2], {}, window);
  await promiseHidden;

  ok(true"Popup should close automatically");

  let returnValue = await waitForCallbackResultPromise();
  is(returnValue.result, "button1""Correct callback should have been called");
});

add_UITour_task(async function test_info_buttons_2() {
  let popup = document.getElementById("UITourTooltip");
  let title = document.getElementById("UITourTooltipTitle");
  let desc = document.getElementById("UITourTooltipDescription");
  let icon = document.getElementById("UITourTooltipIcon");

  await showInfoPromise(
    "urlbar",
    "another title",
    "moar text",
    "./image.png",
    "makeButtons"
  );

  is(title.textContent, "another title""Popup should have correct title");
  is(
    desc.textContent,
    "moar text",
    "Popup should have correct description text"
  );

  let imageURL = getRootDirectory(gTestPath) + "image.png";
  imageURL = imageURL.replace(
    "chrome://mochitests/content/",
    "https://example.org/"
  );
  is(icon.src, imageURL, "Popup should have correct icon shown");

  let buttons = document.getElementById("UITourTooltipButtons");
  is(buttons.childElementCount, 4, "Popup should have four buttons");

  is(
    buttons.children[1].getAttribute("label"),
    "Link",
    "Link should have correct label"
  );
  is(
    buttons.children[1].getAttribute("image"),
    null,
    "Link should have no image"
  );
  ok(
    buttons.children[1].classList.contains("button-link"),
    "Link should have button-link class"
  );

  is(
    buttons.children[2].getAttribute("label"),
    "Button 1",
    "First button should have correct label"
  );
  is(
    buttons.children[2].getAttribute("image"),
    null,
    "First button should have no image"
  );

  is(
    buttons.children[3].getAttribute("label"),
    "Button 2",
    "Second button should have correct label"
  );
  is(
    buttons.children[3].getAttribute("image"),
    imageURL,
    "Second button should have correct image"
  );

  let promiseHidden = promisePanelElementHidden(window, popup);
  EventUtils.synthesizeMouseAtCenter(buttons.children[3], {}, window);
  await promiseHidden;

  ok(true"Popup should close automatically");

  let returnValue = await waitForCallbackResultPromise();

  is(returnValue.result, "button2""Correct callback should have been called");
});

add_UITour_task(async function test_info_close_button() {
  let closeButton = document.getElementById("UITourTooltipClose");

  await showInfoPromise(
    "urlbar",
    "Close me",
    "X marks the spot",
    null,
    null,
    "makeInfoOptions"
  );

  EventUtils.synthesizeMouseAtCenter(closeButton, {}, window);

  let returnValue = await waitForCallbackResultPromise();

  is(returnValue.result, "closeButton""Close button callback called");
});

add_UITour_task(async function test_info_target_callback() {
  let popup = document.getElementById("UITourTooltip");

  await showInfoPromise(
    "appMenu",
    "I want to know when the target is clicked",
    "*click*",
    null,
    null,
    "makeInfoOptions"
  );

  await gCUITestUtils.openMainMenu();

  let returnValue = await waitForCallbackResultPromise();

  is(returnValue.result, "target""target callback called");
  is(
    returnValue.data.target,
    "appMenu",
    "target callback was from the appMenu"
  );
  is(
    returnValue.data.type,
    "popupshown",
    "target callback was from the mousedown"
  );

  // Cleanup.
  await hideInfoPromise();

  popup.removeAttribute("animate");
});

add_UITour_task(async function test_getConfiguration_selectedSearchEngine() {
  let engine = await Services.search.getDefault();
  let data = await getConfigurationPromise("selectedSearchEngine");
  is(
    data.searchEngineIdentifier,
    engine.identifier,
    "Correct engine identifier"
  );
});

add_UITour_task(async function test_setSearchTerm() {
  // Place the search bar in the navigation toolbar temporarily.
  let searchbar = await gCUITestUtils.addSearchBar();

  const TERM = "UITour Search Term";
  await gContentAPI.setSearchTerm(TERM);

  // The UITour gets to the searchbar element through a promise, so the value setting
  // only happens after a tick.
  await waitForConditionPromise(
    () => searchbar.value == TERM,
    "Correct term set"
  );

  gCUITestUtils.removeSearchBar();
});

add_UITour_task(async function test_clearSearchTerm() {
  // Place the search bar in the navigation toolbar temporarily.
  let searchbar = await gCUITestUtils.addSearchBar();

  await gContentAPI.setSearchTerm("");

  // The UITour gets to the searchbar element through a promise, so the value setting
  // only happens after a tick.
  await waitForConditionPromise(
    () => searchbar.value == "",
    "Search term cleared"
  );

  gCUITestUtils.removeSearchBar();
});

Messung V0.5 in Prozent
C=95 H=100 G=97

¤ Dauer der Verarbeitung: 0.12 Sekunden  (vorverarbeitet am  2026-04-26) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge