Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Firefox/devtools/shared/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_prettifyCSS.js   Sprache: JAVA

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


// Test prettifyCSS.

"use strict";

const {
  prettifyCSS,
} = require("resource://devtools/shared/inspector/css-logic.js");

const EXPAND_TAB = "devtools.editor.expandtab";
const TAB_SIZE = "devtools.editor.tabsize";

const TESTS_TAB_INDENT = [
  {
    name: "simple test. indent using tabs",
    input: "div { font-family:'Arial Black', Arial, sans-serif; }",
    expected: ["div {""\tfont-family:'Arial Black', Arial, sans-serif;""}"],
  },

  {
    name: "whitespace before open brace. indent using tabs",
    input: "div{}",
    expected: ["div {""}"],
  },

  {
    name: "minified with trailing newline. indent using tabs",
    input:
      "\nbody{background:white;}div{font-size:4em;color:red}span{color:green;}\n",
    expected: [
      "body {",
      "\tbackground:white;",
      "}",
      "div {",
      "\tfont-size:4em;",
      "\tcolor:red",
      "}",
      "span {",
      "\tcolor:green;",
      "}",
    ],
  },

  {
    name: "leading whitespace. indent using tabs",
    input: "\n div{color: red;}",
    expected: ["div {""\tcolor: red;""}"],
  },

  {
    name: "CSS with extra closing brace. indent using tabs",
    input: "body{margin:0}} div{color:red}",
    expected: ["body {""\tmargin:0""}""}""div {""\tcolor:red""}"],
  },
];

const TESTS_SPACE_INDENT = [
  {
    name: "simple test. indent using spaces",
    input: "div { font-family:'Arial Black', Arial, sans-serif; }",
    expected: [
      "div {",
      " font-family:'Arial Black', Arial, sans-serif;",
      "}",
    ],
  },

  {
    name: "whitespace before open brace. indent using spaces",
    input: "div{}",
    expected: ["div {""}"],
  },

  {
    name: "minified with trailing newline. indent using spaces",
    input:
      "\nbody{background:white;}div{font-size:4em;color:red}span{color:green;}\n",
    expected: [
      "body {",
      " background:white;",
      "}",
      "div {",
      " font-size:4em;",
      " color:red",
      "}",
      "span {",
      " color:green;",
      "}",
    ],
  },

  {
    name: "leading whitespace. indent using spaces",
    input: "\n div{color: red;}",
    expected: ["div {"" color: red;""}"],
  },

  {
    name: "CSS with extra closing brace. indent using spaces",
    input: "body{margin:0}} div{color:red}",
    expected: [
      "body {",
      " margin:0",
      "}",
      "}",
      "div {",
      " color:red",
      "}",
    ],
  },

  {
    name: "HTML comments with some whitespace padding",
    input: " \n\n\t \t\n",
    expected: ["body {"" color:red""}"],
  },

  {
    name: "HTML comments without whitespace padding",
    input: "",
    expected: ["body {"" color:red""}"],
  },

  {
    name: "Breaking after commas in selectors",
    input:
      "@media screen, print {div, span, input {color: red;}}" +
      "div, div, input, pre, table {color: blue;}",
    expected: [
      "@media screen, print {",
      " div,",
      " span,",
      " input {",
      " color: red;",
      " }",
      "}",
      "div,",
      "div,",
      "input,",
      "pre,",
      "table {",
      " color: blue;",
      "}",
    ],
  },

  {
    name: "Multiline comment in CSS",
    input: "/*\n * comment\n */\n#example{display:grid;}",
    expected: [
      "/*",
      " * comment",
      " */",
      "#example {",
      " display:grid;",
      "}",
    ],
  },
];

function run_test() {
  // Note that prettifyCSS.LINE_SEPARATOR is computed lazily, so we
  // ensure it is set.
  prettifyCSS("");

  Services.prefs.setBoolPref(EXPAND_TAB, true);
  Services.prefs.setIntPref(TAB_SIZE, 4);

  for (const test of TESTS_SPACE_INDENT) {
    info(test.name);

    const input = test.input.split("\n").join(prettifyCSS.LINE_SEPARATOR);
    const { result: output } = prettifyCSS(input);
    const expected =
      test.expected.join(prettifyCSS.LINE_SEPARATOR) +
      prettifyCSS.LINE_SEPARATOR;
    equal(output, expected, test.name);
  }

  Services.prefs.setBoolPref(EXPAND_TAB, false);
  for (const test of TESTS_TAB_INDENT) {
    info(test.name);

    const input = test.input.split("\n").join(prettifyCSS.LINE_SEPARATOR);
    const { result: output } = prettifyCSS(input);
    const expected =
      test.expected.join(prettifyCSS.LINE_SEPARATOR) +
      prettifyCSS.LINE_SEPARATOR;
    equal(output, expected, test.name);
  }
  Services.prefs.clearUserPref(EXPAND_TAB);
  Services.prefs.clearUserPref(TAB_SIZE);
}

78%


¤ Dauer der Verarbeitung: 0.14 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.