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

Quellcode-Bibliothek test_text_scaled.html   Sprache: HTML

 
 products/Sources/formale Sprachen/C/Firefox/dom/svg/test/test_text_scaled.html


<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=655877
-->

<head>
  <title>Test for Bug 655877</title>
  <script src="/tests/SimpleTest/SimpleTest.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=655877">Mozilla Bug 655877</a>
<p id="display"></p>
<div id="content" style="display: none"></div>

<iframe id="svg" src="text-helper-scaled.svg"></iframe>

<pre id="test">
<script class="testbody" type="application/javascript">
SimpleTest.waitForExplicitFinish();

function runTest() {
  var doc = $("svg").contentWindow.document;
  var text1 = doc.getElementById("text1");
  var text2 = doc.getElementById("text2");

  var charWidth = text1.getSubStringLength(0, 1);

  if (navigator.userAgent.indexOf("Linux") > -1 && charWidth == 241) {
    // Workaround for a slight difference in 'charWidth' (i.e. the width of
    // the 'a' char) on Linux build machines after bug 1342951.  The issue
    // doesn't reproduce locally on Ubuntu 17.04 so is particularly tricky to
    // debug.
    charWidth = 240;
  }

  var epsilon = 0.001;

  function isClose(a, b, str) {
    ok(Math.abs(a - b) < epsilon, str + " - " + b + " should be close to " + a);
  }

  function isPointCloseX(pt1, x, y, str) {
    isClose(pt1.x, x, str + " x");
    is(pt1.y, y, str + " y");
  }

  function ymost(r) {
    return r.y + r.height;
  }

  var p = text1.getStartPositionOfChar(0);

  // Simple horizontal string

  is(text1.getNumberOfChars(), 3, "text1 length");
  ok(text1.getComputedTextLength() > 0, "text1 measured length");
  is(text1.getComputedTextLength(), text1.getSubStringLength(0, 3), "text1 substring length");
  isPointCloseX(text1.getStartPositionOfChar(0), 10, 400, "text1 char 0 start offset");
  isPointCloseX(text1.getStartPositionOfChar(1), 10 + charWidth, 400, "text1 char 1 start offset");
  isPointCloseX(text1.getStartPositionOfChar(2), 10 + 2 * charWidth, 400, "text1 char 2 start offset");
  isPointCloseX(text1.getEndPositionOfChar(0), 10 + charWidth, 400, "text1 char 0 end offset");
  isPointCloseX(text1.getEndPositionOfChar(1), 10 + 2 * charWidth, 400, "text1 char 1 end offset");
  isPointCloseX(text1.getEndPositionOfChar(2), 10 + 3 * charWidth, 400, "text1 char 2 end offset");
  is(text1.getExtentOfChar(0).x, 10, "text1 char 0 extent x");
  is(text1.getExtentOfChar(0).width, text1.getSubStringLength(0, 1), "text1 char 0 extent width");
  ok(text1.getExtentOfChar(0).y < 400, "text1 char 0 extent y");
  ok(ymost(text1.getExtentOfChar(0)) > 400, "text1 char 0 extent height");
  isClose(text1.getExtentOfChar(1).x, 10 + charWidth, "text1 char 1 extent x");
  is(text1.getExtentOfChar(1).width, text1.getSubStringLength(0, 1), "text1 char 1 extent width");
  is(text1.getExtentOfChar(1).y, text1.getExtentOfChar(0).y, "text1 char 0/1 extent y");
  is(text1.getExtentOfChar(1).height, text1.getExtentOfChar(0).height, "text1 char 0/1 extent height");
  is(text1.getExtentOfChar(2).x, 10 + 2 * charWidth, "text1 char 2 extent x");
  is(text1.getExtentOfChar(2).width, text1.getSubStringLength(0, 1), "text1 char 2 extent width");
  is(text1.getExtentOfChar(2).y, text1.getExtentOfChar(0).y, "text1 char 0/2 extent y");
  is(text1.getExtentOfChar(2).height, text1.getExtentOfChar(0).height, "text1 char 0/2 extent height");
  is(text1.getRotationOfChar(0), 0, "text1 char 0 rotation");
  is(text1.getRotationOfChar(1), 0, "text1 char 0 rotation");
  is(text1.getRotationOfChar(2), 0, "text1 char 0 rotation");
  p.x = 10 + 0.1;
  p.y = 400;
  is(text1.getCharNumAtPosition(p), 0, "text1 finding char 0 left edge");
  p.x = 10 + charWidth - 0.1;
  is(text1.getCharNumAtPosition(p), 0, "text1 finding char 0 on right");
  p.x = 10 - 0.1;
  is(text1.getCharNumAtPosition(p), -1, "text1 finding no char on left");
  p.x = 10 + 0.1;
  p.y = text1.getExtentOfChar(0).y - 0.1;
  is(text1.getCharNumAtPosition(p), -1, "text1 finding no char on top");
  p.y = text1.getExtentOfChar(0).y + 0.1;
  is(text1.getCharNumAtPosition(p), 0, "text1 finding char 0 top edge");
  p.x = 10 + 3 * charWidth - 0.1;
  is(text1.getCharNumAtPosition(p), 2, "text1 finding char 2 top edge");
  p.x = 10 + 3 * charWidth + 0.1;
  is(text1.getCharNumAtPosition(p), -1, "text1 finding no char on right");

  // Text along a thin rectangle path

  charWidth = text2.getSubStringLength(0, 1);

  is(text2.getNumberOfChars(), 26, "text2 length");
  ok(text2.getComputedTextLength() > 0, "text2 measured length");
  is(text2.getComputedTextLength(), text2.getSubStringLength(0, 26), "text2 substring length");

  // character 12 should be on the bottom side
  is(text2.getStartPositionOfChar(12).y, 860, "text2 char 12 start offset");
  isfuzzy(text2.getEndPositionOfChar(12).y, 860, 0.001, "text2 char 12 end offset");
  ok(text2.getExtentOfChar(12).y < 860, "text2 char 12 extent y");
  ok(ymost(text2.getExtentOfChar(12)) > 860, "text2 char 12 extent height");
  isfuzzy(text2.getRotationOfChar(12), 180, 0.001, "text2 char 12 rotation");
  p.x = text2.getExtentOfChar(12).x + 0.1;
  p.y = ymost(text2.getExtentOfChar(12)) - 0.1;
  is(text2.getCharNumAtPosition(p), 12, "text2 finding char 12");
  // This next test is tricky. The glyph for character 3 may overlap from the above
  // but character 12 wins because it's the last to render
  p.y = text2.getExtentOfChar(12).y + 0.1;
  is(text2.getCharNumAtPosition(p), 12, "text2 finding last rendered char");
}

function runTests() {
  runTest();

  var doc = $("svg").contentWindow.document;
  doc.getElementById("g").setAttribute("transform""rotate(90 200 200)");

  runTest();

  SimpleTest.finish();
}

window.addEventListener("load", runTests);
</script>
</pre>
</body>
</html>

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

¤ 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.0.22Bemerkung:  (vorverarbeitet)  ¤

*Bot Zugriff






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.