Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Firefox/devtools/server/tests/xpcshell/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 4 kB image not shown  

Quelle  test_getRuleText.js   Sprache: JAVA

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

"use strict";

const {
  getRuleText,
} = require("resource://devtools/server/actors/utils/style-utils.js");

const TEST_DATA = [
  {
    desc: "Empty input",
    input: "",
    line: 1,
    column: 1,
    throws: true,
  },
  {
    desc: "Null input",
    input: null,
    line: 1,
    column: 1,
    throws: true,
  },
  {
    desc: "Missing loc",
    input: "#id{color:red;background:yellow;}",
    throws: true,
  },
  {
    desc: "No opening bracket",
    input: "/* hey */",
    line: 1,
    column: 1,
    throws: true,
  },
  {
    desc: "Simplest test case",
    input: "#id{color:red;background:yellow;}",
    line: 1,
    column: 1,
    expected: "color:red;background:yellow;",
  },
  {
    desc: "Multiple rules test case",
    input:
      "#id{color:red;background:yellow;}.class-one .class-two " +
      "{ position:absolute; line-height: 45px}",
    line: 1,
    column: 34,
    expected: " position:absolute; line-height: 45px",
  },
  {
    desc: "Unclosed rule",
    input: "#id{color:red;background:yellow;",
    line: 1,
    column: 1,
    expected: "color:red;background:yellow;",
  },
  {
    desc: "Multi-lines CSS",
    input: [
      "/* this is a multi line css */",
      "body {",
      "  color: green;",
      "  background-repeat: no-repeat",
      "}",
      " /*something else here */",
      "* {",
      "  color: purple;",
      "}       ",
    ].join("\n"),
    line: 7,
    column: 1,
    expected: "\n  color: purple;\n",
  },
  {
    desc: "Multi-lines CSS and multi-line rule",
    input: [
      "/* ",
      "* some comments",
      "*/",
      "",
      "body {",
      "    margin: 0;",
      "    padding: 15px 15px 2px 15px;",
      "    color: red;",
      "}",
      "",
      "#header .btn, #header .txt {",
      "    font-size: 100%;",
      "}",
      "",
      "#header #information {",
      "    color: #dddddd;",
      "    font-size: small;",
      "}",
    ].join("\n"),
    line: 5,
    column: 1,
    expected:
      "\n    margin: 0;\n    padding: 15px 15px 2px 15px;\n    color: red;\n",
  },
  {
    desc: "Content string containing a } character",
    input: "   #id{border:1px solid red;content: '}';color:red;}",
    line: 1,
    column: 4,
    expected: "border:1px solid red;content: '}';color:red;",
  },
  {
    desc: "Attribute selector containing a { character",
    input: `div[data-x="{"]{color: gold}`,
    line: 1,
    column: 1,
    expected: "color: gold",
  },
  {
    desc: "Rule contains no tokens",
    input: "div{}",
    line: 1,
    column: 1,
    expected: "",
  },
  {
    desc: "Rule contains invalid declaration",
    input: `#id{color;}`,
    line: 1,
    column: 1,
    expected: "color;",
  },
  {
    desc: "Rule contains invalid declaration",
    input: `#id{-}`,
    line: 1,
    column: 1,
    expected: "-",
  },
  {
    desc: "Rule contains nested rule",
    input: `#id{background: gold; .nested{color:blue;} color: tomato;  }`,
    line: 1,
    column: 1,
    expected: "background: gold; .nested{color:blue;} color: tomato;  ",
  },
  {
    desc: "Rule contains nested rule with invalid declaration",
    input: `#id{.nested{color;}}`,
    line: 1,
    column: 1,
    expected: ".nested{color;}",
  },
  {
    desc: "Rule contains unicode chars",
    input: `#id /*��*/ {content: "☃️";}`,
    line: 1,
    column: 1,
    expected: `content: "☃️";`,
  },
];

function run_test() {
  for (const test of TEST_DATA) {
    info("Starting test: " + test.desc);
    info("Input string " + test.input);
    let output;
    try {
      output = getRuleText(test.input, test.line, test.column);
      if (test.throws) {
        info("Test should have thrown");
        Assert.ok(false);
      }
    } catch (e) {
      info("getRuleText threw an exception with the given input string");
      if (test.throws) {
        info("Exception expected");
        Assert.ok(true);
      } else {
        info("Exception unexpected\n" + e);
        Assert.ok(false);
      }
    }
    if (output) {
      Assert.equal(output, test.expected);
    }
  }
}

¤ Dauer der Verarbeitung: 0.16 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 ist noch experimentell.