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

Quelle  test_richtext2.html   Sprache: HTML

 
 products/Sources/formale Sprachen/C/Firefox/editor/libeditor/tests/browserscope/test_richtext2.html


<!DOCTYPE html>
<html lang="en">
<!--
BrowserScope richtext2 category tests

This test is originally based on the unit test example available as part of the
RichText2 suite:
http://code.google.com/p/browserscope/source/browse/trunk/categories/richtext2/unittestexample.html
-->

<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />

  <title>BrowserScope Richtext2 Tests</title>
  <script src="/tests/SimpleTest/SimpleTest.js"></script>
  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
  <script src="/tests/SimpleTest/EventUtils.js"></script>

  <!-- utility scripts -->
  <script type="text/javascript" src="lib/richtext2/richtext2/static/js/variables.js"></script>
  <script type="text/javascript" src="lib/richtext2/richtext2/static/js/canonicalize.js"></script>
  <script type="text/javascript" src="lib/richtext2/richtext2/static/js/compare.js"></script>
  <script type="text/javascript" src="lib/richtext2/richtext2/static/js/pad.js"></script>
  <script type="text/javascript" src="lib/richtext2/richtext2/static/js/range.js"></script>
  <script type="text/javascript" src="lib/richtext2/richtext2/static/js/units.js"></script>
  <script type="text/javascript" src="lib/richtext2/richtext2/static/js/run.js"></script>
  <!-- you do not need static/js/output.js -->

  <!--
    Tests - note that those have the extensions .py,
    but can be used as JS files directly.
  -->

  <script type="text/javascript" src="lib/richtext2/richtext2/tests/selection.py"></script>
  <script type="text/javascript" src="lib/richtext2/richtext2/tests/apply.py"></script>
  <script type="text/javascript" src="lib/richtext2/richtext2/tests/applyCSS.py"></script>
  <script type="text/javascript" src="lib/richtext2/richtext2/tests/change.py"></script>
  <script type="text/javascript" src="lib/richtext2/richtext2/tests/changeCSS.py"></script>
  <script type="text/javascript" src="lib/richtext2/richtext2/tests/unapply.py"></script>
  <script type="text/javascript" src="lib/richtext2/richtext2/tests/unapplyCSS.py"></script>
  <script type="text/javascript" src="lib/richtext2/richtext2/tests/delete.py"></script>
  <script type="text/javascript" src="lib/richtext2/richtext2/tests/forwarddelete.py"></script>
  <script type="text/javascript" src="lib/richtext2/richtext2/tests/insert.py"></script>
  <script type="text/javascript" src="lib/richtext2/richtext2/tests/querySupported.py"></script>
  <script type="text/javascript" src="lib/richtext2/richtext2/tests/queryEnabled.py"></script>
  <script type="text/javascript" src="lib/richtext2/richtext2/tests/queryIndeterm.py"></script>
  <script type="text/javascript" src="lib/richtext2/richtext2/tests/queryState.py"></script>
  <script type="text/javascript" src="lib/richtext2/richtext2/tests/queryValue.py"></script>

  <script type="text/javascript" src="lib/richtext2/currentStatus.js"></script>
  <script type="text/javascript" src="lib/richtext2/platformFailures.js"></script>

  <!-- Do something -->
  <script type="text/javascript">
    // Set this constant to true in order to get the current status of the test suite.
    // This is useful for updating the currentStatus.js file when an editor bug is fixed.
    const UPDATE_TEST_RESULTS = false;

    // some tests (at least RTE2-QE_PASTE_TEXT-1) require clipboard data
    function startTest() {
      SimpleTest.waitForClipboard("foo",
        function() {
          SpecialPowers.clipboardCopyString("foo");
        },
        runTest,
        function() {
          ok(false, "Failed to copy a string to the clipboard");
          SimpleTest.finish();
        }
      );
    }

    /* eslint-disable-next-line complexity */
    function runTest() {
      initVariables();
      initEditorDocs();

      // These are all globals in the js and py files above */
      /* eslint-disable no-undef */
      const tests = [
        SELECTION_TESTS,
        APPLY_TESTS,
        APPLY_TESTS_CSS,
        CHANGE_TESTS,
        CHANGE_TESTS_CSS,
        UNAPPLY_TESTS,
        UNAPPLY_TESTS_CSS,
        DELETE_TESTS,
        FORWARDDELETE_TESTS,
        INSERT_TESTS,
        QUERYSUPPORTED_TESTS,
        QUERYENABLED_TESTS,
        QUERYINDETERM_TESTS,
        QUERYSTATE_TESTS,
        QUERYVALUE_TESTS,
      ];
      /* eslint-enable no-undef */

      for (let i = 0; i < tests.length; ++i) {
        runTestSuite(tests[i]);
      }

      // Below alert is just a simple demonstration on how to access the test results.
      // Note that we only ran UNAPPLY tests above, so we have only results from that test set.
      //
      // The 'results' structure is as follows:
      //
      // results                   structure containing all results
      //     [<suite ID>]              structure containing the results for the given suite *)
      //         .count                    number of tests in the given suite
      //         .valscore                 sum of all test value results (HTML or query value)
      //         .selscore                 sum of all selection results (HTML tests only)
      //         [<class ID>]              structure containing the results for the given class **)
      //             .count                    number of tests in the given suite
      //             .valscore                 sum of all test value results (HTML or query value)
      //             .selscore                 sum of all selection results (HTML tests only)
      //             [<test ID>]               structure containing the reults for a given test ***)
      //                 .valscore                 value score (0 or 1), minimum over all containers
      //                 .selscore                 selection score (0 or 1), minimum over all containers (HTML tests only)
      //                 .valresult                worst test value result (integer, see variables.js)
      //                 .selresult                worst selection result (integer, see variables.js)
      //                 [<cont. ID>]              structure containing the results of the test for a given container ****)
      //                     .valscore                 value score (0 or 1)
      //                     .selscore                 selection score (0 or 1)
      //                     .valresult                value result (integer, see variables.js)
      //                     .selresult                selection result (integer, see variables.js)
      //                     .output                   output string (mainly for use by the online version)
      //                     .innerHTML                inner HTML of the testing container (<div> or <body>) after the test
      //                     .outerHTML                outer HTML of the testing container (<div> or <body>) after the test
      //                     .bodyInnerHTML            inner HTML of the <body> after the test
      //                     .bodyOuterHTML            outer HTML of the <body> after the test
      //
      // *)    <suite ID>:      a 1-3 character ID, e.g. UNAPPLY_TESTS.id, or 'U' (both referring the same suite)
      // **)   <class ID>:      one of 'Proposed''RFC' or 'Finalized'
      // ***)  <test ID>:       the ID of the test, without the leading 'RTE2-_' part
      // ****) <container ID>:  one of 'div'  (test within a <div contenteditable="true">)
      //                               'dM'   (test with designMode = 'on')
      //                               'body' (test within a <body contenteditable="true">)

      if (UPDATE_TEST_RESULTS) {
        let newKnownFailures = {value: {}, select: {}};
        for (let i = 0; i < tests.length; ++i) {
          let category = tests[i];
          for (let group in results[category.id]) {
            switch (group) {
            // Skip the known properties
            case "count":
            case "valscore":
            case "selscore":
            case "time":
              break;
            default:
              for (let test_id in results[category.id][group]) {
                switch (test_id) {
                // Skip the known properties
                case "count":
                case "valscore":
                case "selscore":
                  break;
                default:
                  for (let structure in results[category.id][group][test_id]) {
                    switch (structure) {
                    // Only look at each test structure
                    case "dM":
                    case "body":
                    case "div":
                      if (!results[category.id][group][test_id][structure].valscore) {
                        newKnownFailures.value[category.id + "-" + group + "-" + test_id + "-" + structure] = true;
                      }
                      if (!results[category.id][group][test_id][structure].selscore) {
                        newKnownFailures.select[category.id + "-" + group + "-" + test_id + "-" + structure] = true;
                      }
                    }
                  }
                }
              }
            }
          }
        }
        var resultContainer = document.getElementById("results");
        resultContainer.style.display = "";
        resultContainer.textContent = JSON.stringify(newKnownFailures);
      } else {
        for (let i = 0; i < tests.length; ++i) {
          let category = tests[i];
          for (let group in results[category.id]) {
            switch (group) {
            // Skip the known properties
            case "count":
            case "valscore":
            case "selscore":
            case "time":
              break;
            default:
              for (let test_id in results[category.id][group]) {
                switch (test_id) {
                // Skip the known properties
                case "count":
                case "valscore":
                case "selscore":
                  break;
                default:
                  for (let structure in results[category.id][group][test_id]) {
                    switch (structure) {
                    // Only look at each test structure
                    case "dM":
                    case "body":
                    case "div":
                      var row = results[category.id][group][test_id][structure];
                      var testName = [category.id, group, test_id, structure].join("-");
                      (knownFailures.value[testName] || platformFailures.value[testName] ? todo_is : is)(
                        row.valscore, 1, "Browserscope richtext2 value: " + testName);
                      (knownFailures.select[testName] || platformFailures.select[testName] ? todo_is : is)(
                        row.selscore, 1, "Browserscope richtext2 selection: " + testName);
                    }
                  }
                }
              }
            }
          }
        }
      }

      SimpleTest.finish();
    }

    SimpleTest.waitForExplicitFinish();
    // Running all of the tests can take a long time, try to account for it
    SimpleTest.requestLongerTimeout(5);
  </script>
</head>

<body onload="startTest()">
  <iframe name="iframe-dM" id="iframe-dM" src="lib/richtext2/richtext2/static/editable-dM.html"></iframe>
  <iframe name="iframe-body" id="iframe-body" src="lib/richtext2/richtext2/static/editable-body.html"></iframe>
  <iframe name="iframe-div" id="iframe-div" src="lib/richtext2/richtext2/static/editable-div.html"></iframe>
  <pre id="results" style="display: none"></pre>
</body>
</html>

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

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