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


Quelle  head.js   Sprache: JAVA

 
/* Any copyright is dedicated to the Public Domain.
 * http://creativecommons.org/publicdomain/zero/1.0/ */


"use strict";

const { Preferences } = ChromeUtils.importESModule(
  "resource://gre/modules/Preferences.sys.mjs"
);

// List of default preferences that can be used for tests, chosen because they
// have little or no side-effects when they are modified for a brief time. If
// any of these preferences are removed or their default state changes, just
// update the constant to point to a different preference with the same default.
const PREF_BOOLEAN_DEFAULT_TRUE = "accessibility.typeaheadfind.manual";
const PREF_BOOLEAN_USERVALUE_TRUE = "browser.dom.window.dump.enabled";
const PREF_NUMBER_DEFAULT_ZERO = "accessibility.typeaheadfind.casesensitive";
const PREF_STRING_DEFAULT_EMPTY = "browser.helperApps.neverAsk.openFile";
const PREF_STRING_DEFAULT_NOTEMPTY = "accessibility.typeaheadfind.soundURL";
const PREF_STRING_DEFAULT_NOTEMPTY_VALUE = "beep";
const PREF_STRING_LOCALIZED_MISSING = "intl.menuitems.alwaysappendaccesskeys";

// Other preference names used in tests.
const PREF_NEW = "test.aboutconfig.new";

// These tests can be slow to execute because they show all the preferences
// several times, and each time can require a second on some virtual machines.
requestLongerTimeout(2);

class AboutConfigRowTest {
  constructor(element) {
    this.element = element;
  }

  querySelector(selector) {
    return this.element.querySelector(selector);
  }

  get nameCell() {
    return this.querySelector("th");
  }

  get name() {
    return this.nameCell.textContent;
  }

  get valueCell() {
    return this.querySelector("td.cell-value");
  }

  get value() {
    return this.valueCell.textContent;
  }

  /**
   * Text input field when the row is in edit mode.
   */

  get valueInput() {
    return this.valueCell.querySelector("input");
  }

  /**
   * This is normally "edit" or "toggle" based on the preference type, "save"
   * when the row is in edit mode, or "add" when the preference does not exist.
   */

  get editColumnButton() {
    return this.querySelector("td.cell-edit > button");
  }

  /**
   * This can be "reset" or "delete" based on whether a default exists.
   */

  get resetColumnButton() {
    return this.querySelector("td:last-child > button");
  }

  hasClass(className) {
    return this.element.classList.contains(className);
  }
}

class AboutConfigTest {
  static withNewTab(testFn, options = {}) {
    return BrowserTestUtils.withNewTab(
      {
        gBrowser,
        url: "chrome://global/content/aboutconfig/aboutconfig.html",
      },
      async browser => {
        let scope = new this(browser);
        await scope.setupNewTab(options);
        await testFn.call(scope);
      }
    );
  }

  constructor(browser) {
    this.browser = browser;
    this.document = browser.contentDocument;
    this.window = browser.contentWindow;
  }

  async setupNewTab(options) {
    await this.document.l10n.ready;
    if (!options.dontBypassWarning) {
      this.bypassWarningButton.click();
      this.showAll();
    }
  }

  get showWarningNextTimeInput() {
    return this.document.getElementById("showWarningNextTime");
  }

  get bypassWarningButton() {
    return this.document.getElementById("warningButton");
  }

  get searchInput() {
    return this.document.getElementById("about-config-search");
  }

  get showOnlyModifiedCheckbox() {
    return this.document.getElementById("about-config-show-only-modified");
  }

  get prefsTable() {
    return this.document.getElementById("prefs");
  }

  /**
   * Array of AboutConfigRowTest objects, one for each row in the main table.
   */

  get rows() {
    let elements = this.prefsTable.querySelectorAll("tr:not(.hidden)");
    return Array.from(elements, element => new AboutConfigRowTest(element));
  }

  /**
   * Returns the AboutConfigRowTest object for the row in the main table which
   * corresponds to the given preference name, or undefined if none is present.
   */

  getRow(name) {
    return this.rows.find(row => row.name == name);
  }

  /**
   * Shows all preferences using the dedicated button.
   */

  showAll() {
    this.search("");
    this.document.getElementById("show-all").click();
  }

  /**
   * Performs a new search using the dedicated textbox. This also makes sure
   * that the list of preferences displayed is up to date.
   */

  search(value) {
    this.searchInput.value = value;
    this.searchInput.focus();
    EventUtils.sendKey("return");
  }

  /**
   * Checks whether or not the initial warning page is displayed.
   */

  assertWarningPage(expected) {
    Assert.equal(!!this.showWarningNextTimeInput, expected);
    Assert.equal(!!this.bypassWarningButton, expected);
    Assert.equal(!this.searchInput, expected);
    Assert.equal(!this.prefsTable, expected);
  }
}

Messung V0.5
C=95 H=97 G=95

¤ Dauer der Verarbeitung: 0.13 Sekunden  (vorverarbeitet)  ¤

*© 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