Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/editor/composer/test/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 9 kB image not shown  

Quelle  test_bug384147.html   Sprache: HTML

 
 products/Sources/formale Sprachen/C/Firefox/editor/composer/test/test_bug384147.html


<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=384147
-->

<head>
  <title>Test for Bug 384147</title>
  <script src="/tests/SimpleTest/SimpleTest.js"></script>
  <script src="/tests/SimpleTest/EventUtils.js"></script>
  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=384147">Mozilla Bug 384147</a>
<p id="display"></p>
<div id="content" style="display: block">
<div contentEditable id="editor"></div>
</div>
<pre id="test">
<script class="testbody" type="text/javascript">

/** Test for Bug 384147 **/

SimpleTest.waitForExplicitFinish();

var editor = document.getElementById("editor");

editor.innerHTML = "
  1. Item 1
  2. Item 2
    1. Item 3
  • Item 4
  • Item 5
"
;
editor.focus();

// If executed directly, a race condition exists that will cause execCommand
// to fail occasionally (but often).  Defer test execution to page load.
addLoadEvent(function() {
  var sel = window.getSelection();

  // Test the effect that the tab key has on list items.  Each test is
  // documented with the initial state of the list on the left, and the
  // expected state of the list on the right.  {\t} indicates the list item
  // that will be indented.  {\st} indicates that a shift-tab will be simulated
  // on that list item, outdenting it.
  //
  // Note: any test failing will likely result in all following tests failing
  // as well, since each test depends on the document being in a given state.
  // Unfortunately, due to the problems getting document focus and key events
  // to fire consistently, it's difficult to reset state between tests.
  // If there are test failures here, only debug the first test failure.

  // *** test 1 ***
  //  1. Item 1                       1. Item 1
  //  2. {\t}Item 2                     1. Item 2
  //    1. Item 3                       2. Item 3
  //  * Item 4                        * Item 4
  //  * Item 5                        * Item 5
  sel.removeAllRanges();
  sel.selectAllChildren(editor.getElementsByTagName("li")[1]);
  document.execCommand("indent", false, null);
  ok(editor.innerHTML == "
  1. Item 1
    1. Item 2
    2. Item 3
  • Item 4
  • Item 5
"
,
    "html output doesn't match expected value in test 1");

  //  *** test 2 ***
  //  1. Item 1                     1. Item 1
  //    1. Item 2                     1. Item 2
  //    2. {\t}Item 3                   1. Item 3
  //  * Item 4                        * Item 4
  //  * Item 5                        * Item 5
  sel.removeAllRanges();
  sel.selectAllChildren(editor.getElementsByTagName("li")[2]);
  document.execCommand("indent", false, null);
  ok(editor.innerHTML == "
  1. Item 1
    1. Item 2
      1. Item 3
  • Item 4
  • Item 5
"
,
    "html output doesn't match expected value in test 2");

  //  *** test 3 ***
  //  1. Item 1                       1. Item 1
  //    1. Item 2                       1. Item 2
  //      1. {\st}Item 3                2. Item 3
  //  * Item 4                        * Item 4
  //  * Item 5                        * Item 5
  document.execCommand("outdent", false, null);
  ok(editor.innerHTML == "
  1. Item 1
    1. Item 2
    2. Item 3
  • Item 4
  • Item 5
"
,
    "html output doesn't match expected value in test 3");

  //  *** test 4 ***
  //  1. Item 1                       1. Item 1
  //    1. Item 2                       1. Item 2
  //    2. {\st}Item 3                2. Item 3
  //  * Item 4                        * Item 4
  //  * Item 5                        * Item 5
  document.execCommand("outdent", false, null);
  ok(editor.innerHTML == "
  1. Item 1
    1. Item 2
  2. Item 3
  • Item 4
  • Item 5
"
,
    "html output doesn't match expected value in test 4");

  //  *** test 5 ***
  //  1. Item 1                       1. Item 1
  //    1. {\st}Item 2                2. Item 2
  //  2. Item 3                       3. Item 3
  //  * Item 4                        * Item 4
  //  * Item 5                        * Item 5
  sel.removeAllRanges();
  sel.selectAllChildren(editor.getElementsByTagName("li")[1]);
  document.execCommand("outdent", false, null);
  ok(editor.innerHTML == "
  1. Item 1
  2. Item 2
  3. Item 3
  • Item 4
  • Item 5
"
,
    "html output doesn't match expected value in test 5");

  //  *** test 6 ***
  //  1. Item 1                       1. Item 1
  //  2. {\t}Item 2                     1. Item 2
  //  3. Item 3                       2. Item 3
  //  * Item 4                        * Item 4
  //  * Item 5                        * Item 5
  document.execCommand("indent", false, null);
  ok(editor.innerHTML == "
  1. Item 1
    1. Item 2
  2. Item 3
  • Item 4
  • Item 5
"
,
    "html output doesn't match expected value in test 6");

  //  *** test 7 ***
  //  1. Item 1                       1. Item 1
  //    1. Item 2                       1. Item 2
  //  2. {\t}Item 3                     2. Item 3
  //  * Item 4                        * Item 4
  //  * Item 5                        * Item 5
  sel.removeAllRanges();
  sel.selectAllChildren(editor.getElementsByTagName("li")[2]);
  document.execCommand("indent", false, null);
  ok(editor.innerHTML == "
  1. Item 1
    1. Item 2
    2. Item 3
  • Item 4
  • Item 5
"
,
    "html output doesn't match expected value in test 7");

  // That covers the basics of merging lists on indent and outdent.
  // We also want to check that ul / ol lists won't be merged together,
  // since they're different types of lists.
  //  *** test 8 ***
  //  1. Item 1                       1. Item 1
  //    1. Item 2                       1. Item 2
  //    2. Item 3                       2. Item 3
  //  * {\t}Item 4                      * Item 4
  //  * Item 5                        * Item 5
  sel.removeAllRanges();
  sel.selectAllChildren(editor.getElementsByTagName("li")[3]);
  document.execCommand("indent", false, null);
  ok(editor.innerHTML == "
  1. Item 1
    1. Item 2
    2. Item 3
    • Item 4
  • Item 5
"
,
    "html output doesn't match expected value in test 8");

  // Better test merging with <ul> rather than <ol> too.
  //  *** test 9 ***
  //  1. Item 1                       1. Item 1
  //    1. Item 2                       1. Item 2
  //    2. Item 3                       2. Item 3
  //    * Item 4                        * Item 4
  //  * {\t}Item 5                      * Item 5
  sel.removeAllRanges();
  sel.selectAllChildren(editor.getElementsByTagName("li")[4]);
  document.execCommand("indent", false, null);
  ok(editor.innerHTML == "
  1. Item 1
    1. Item 2
    2. Item 3
    • Item 4
    • Item 5
"
,
    "html output doesn't match expected value in test 9");

  // Same test as test 8, but with outdent rather than indent.
  //  *** test 10 ***
  //  1. Item 1                       1. Item 1
  //    1. Item 2                       1. Item 2
  //    2. Item 3                       2. Item 3
  //    * {\st}Item 4                 * Item 4
  //    * Item 5                        * Item 5
  sel.removeAllRanges();
  sel.selectAllChildren(editor.getElementsByTagName("li")[3]);
  document.execCommand("outdent", false, null);
  ok(editor.innerHTML == "
  1. Item 1
    1. Item 2
    2. Item 3
  • Item 4
    • Item 5
"
,
    "html output doesn't match expected value in test 10");

  // Test indenting multiple items at once.  Hold down "shift" and select
  // upwards to get all the <ol> items and the first <ul> item.
  //  *** test 11 ***
  //  1. Item 1                       1. Item 1
  //    1. {\t}Item 2                     1. Item 2
  //    2. {\t}Item 3                     2. Item 3
  //  * {\t}Item 4                      * Item 4
  //    * Item 5                        * Item 5
  sel.removeAllRanges();
  var range = document.createRange();
  range.setStart(editor.getElementsByTagName("li")[1], 0);
  range.setEnd(editor.getElementsByTagName("li")[3], editor.getElementsByTagName("li")[3].childNodes.length);
  sel.addRange(range);
  document.execCommand("indent", false, null);
  ok(editor.innerHTML == "
  1. Item 1
      1. Item 2
      2. Item 3
    • Item 4
    • Item 5
"
,
    "html output doesn't match expected value in test 11");

  // Test outdenting multiple items at once.  Selection is already ready...
  //  *** test 12 ***
  //  1. Item 1                       1. Item 1
  //      1. {\st}Item 2                1. Item 2
  //      2. {\st}Item 3                2. Item 3
  //    * {\st}Item 4                 * Item 4
  //    * Item 5                        * Item 5
  document.execCommand("outdent", false, null);
  ok(editor.innerHTML == "
  1. Item 1
    1. Item 2
    2. Item 3
  • Item 4
    • Item 5
"
,
    "html output doesn't match expected value in test 12");

  SimpleTest.finish();
});



</script>
</pre>
</body>
</html>

100%


¤ Dauer der Verarbeitung: 0.5 Sekunden  ¤

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