accessible/tests/mochitest/textattrs/test_general.html

Tue, 06 Jan 2015 21:39:09 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 06 Jan 2015 21:39:09 +0100
branch
TOR_BUG_9701
changeset 8
97036ab72558
permissions
-rw-r--r--

Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.

     1 <html>
     3 <head>
     4   <title>Text attributes tests</title>
     5   <meta charset="utf-8" />
     6   <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css" />
     8   <style type="text/css">
     9     .gencontent:before { content: "*"; }
    10     .gencontent:after  { content: "*"; }
    11   </style>
    13   <script type="application/javascript"
    14           src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
    16   <script type="application/javascript"
    17           src="../common.js"></script>
    18   <script type="application/javascript"
    19           src="../attributes.js"></script>
    20   <script type="application/javascript"
    21           src="../events.js"></script>
    23   <script type="application/javascript">
    24     var gComputedStyle = null;
    26     function doTest()
    27     {
    28       //////////////////////////////////////////////////////////////////////////
    29       // area1
    30       var ID = "area1";
    31       var defAttrs = buildDefaultTextAttrs(ID, "10pt");
    32       testDefaultTextAttrs(ID, defAttrs);
    34       var attrs = {};
    35       testTextAttrs(ID, 0, attrs, defAttrs, 0, 7);
    37       attrs = { "font-weight": kBoldFontWeight };
    38       testTextAttrs(ID, 7, attrs, defAttrs, 7, 11);
    40       attrs = {};
    41       testTextAttrs(ID, 12, attrs, defAttrs, 11, 18);
    43       //////////////////////////////////////////////////////////////////////////
    44       // area2
    45       ID = "area2";
    46       defAttrs = buildDefaultTextAttrs(ID, "14pt");
    47       testDefaultTextAttrs(ID, defAttrs);
    49       attrs = {};
    50       testTextAttrs(ID, 0, attrs, defAttrs, 0, 7);
    52       attrs = { "font-weight": kBoldFontWeight };
    53       testTextAttrs(ID, 7, attrs, defAttrs, 7, 12);
    55       var tempElem = getNode(ID).firstChild.nextSibling.firstChild.nextSibling;
    56       gComputedStyle = document.defaultView.getComputedStyle(tempElem, "");
    57       attrs = {"font-style": gComputedStyle.fontStyle,
    58                "font-weight": kBoldFontWeight };
    59       testTextAttrs(ID, 13, attrs, defAttrs, 12, 19);
    61       attrs = { "font-weight": kBoldFontWeight };
    62       testTextAttrs(ID, 20, attrs, defAttrs, 19, 23);
    64       attrs = {};
    65       testTextAttrs(ID, 24, attrs, defAttrs, 23, 30);
    67       //////////////////////////////////////////////////////////////////////////
    68       // area3
    69       ID = "area3";
    70       defAttrs = buildDefaultTextAttrs(ID, "12pt");
    71       testDefaultTextAttrs(ID, defAttrs);
    73       tempElem = getNode(ID).firstChild.nextSibling;
    74       gComputedStyle = document.defaultView.getComputedStyle(tempElem, "");
    75       attrs = {"color": gComputedStyle.color};
    76       testTextAttrs(ID, 0, attrs, defAttrs, 0, 6);
    78       tempElem = tempElem.firstChild.nextSibling;
    79       gComputedStyle = document.defaultView.getComputedStyle(tempElem, "");
    80       attrs = {"color": gComputedStyle.color};
    81       testTextAttrs(ID, 6, attrs, defAttrs, 6, 26);
    83       tempElem = tempElem.parentNode;
    84       gComputedStyle = document.defaultView.getComputedStyle(tempElem, "");
    85       attrs = {"color": gComputedStyle.color};
    86       testTextAttrs(ID, 26, attrs, defAttrs, 26, 27);
    88       tempElem = tempElem.nextSibling;
    89       gComputedStyle = document.defaultView.getComputedStyle(tempElem, "");
    90       attrs = {"color": gComputedStyle.color,
    91                "background-color": gComputedStyle.backgroundColor};
    92       testTextAttrs(ID, 27, attrs, defAttrs, 27, 50);
    94       //////////////////////////////////////////////////////////////////////////
    95       // area4
    96       ID = "area4";
    97       defAttrs = buildDefaultTextAttrs(ID, "12pt");
    98       testDefaultTextAttrs(ID, defAttrs);
   100       tempElem = getNode(ID).firstChild.nextSibling;
   101       gComputedStyle = document.defaultView.getComputedStyle(tempElem, "");
   102       attrs = {"color": gComputedStyle.color};
   103       testTextAttrs(ID, 0, attrs, defAttrs, 0, 16);
   105       tempElem = tempElem.nextSibling.firstChild.nextSibling;
   106       gComputedStyle = document.defaultView.getComputedStyle(tempElem, "");
   107       attrs = {"color": gComputedStyle.color};
   108       testTextAttrs(ID, 16, attrs, defAttrs, 16, 33);
   110       tempElem = tempElem.parentNode;
   111       gComputedStyle = document.defaultView.getComputedStyle(tempElem, "");
   112       attrs = {"color": gComputedStyle.color};
   113       testTextAttrs(ID, 34, attrs, defAttrs, 33, 46);
   115       //////////////////////////////////////////////////////////////////////////
   116       // area5: "Green!*!RedNormal"
   117       ID = "area5";
   118       defAttrs = buildDefaultTextAttrs(ID, "12pt");
   119       testDefaultTextAttrs(ID, defAttrs);
   121       // Green
   122       tempElem = getNode(ID).firstChild.nextSibling;
   123       gComputedStyle = document.defaultView.getComputedStyle(tempElem, "");
   124       attrs = {"color": gComputedStyle.color};
   125       testTextAttrs(ID, 0, attrs, defAttrs, 0, 5);
   127       // br
   128       attrs = {};
   129       testTextAttrs(ID, 5, attrs, defAttrs, 5, 6);
   131       // img, embedded accessible, no attributes
   132       attrs = {};
   133       testTextAttrs(ID, 6, attrs, {}, 6, 7);
   135       // br
   136       attrs = {};
   137       testTextAttrs(ID, 7, attrs, defAttrs, 7, 8);
   139       // Red
   140       tempElem = tempElem.nextSibling.nextSibling.nextSibling.nextSibling;
   141       gComputedStyle = document.defaultView.getComputedStyle(tempElem, "");
   142       attrs = {"color": gComputedStyle.color};
   143       testTextAttrs(ID, 9, attrs, defAttrs, 8, 11);
   145       // Normal
   146       attrs = {};
   147       testTextAttrs(ID, 11, attrs, defAttrs, 11, 18);
   149       //////////////////////////////////////////////////////////////////////////
   150       // area6 (CSS vertical-align property, refer to bug 445938 for details
   151       // 	and sup and sub elements, refer to bug 735645 for details)
   152       ID = "area6";
   153       defAttrs = buildDefaultTextAttrs(ID, "12pt");
   154       testDefaultTextAttrs(ID, defAttrs);
   156       attrs = {};
   157       testTextAttrs(ID, 0, attrs, defAttrs, 0, 5);
   159       attrs = { "text-position": "super", "font-size": "10pt" };
   160       testTextAttrs(ID, 5, attrs, defAttrs, 5, 13);
   162       attrs = {};
   163       testTextAttrs(ID, 13, attrs, defAttrs, 13, 27);
   165       attrs = { "text-position": "super" };
   166       testTextAttrs(ID, 27, attrs, defAttrs, 27, 35);
   168       attrs = {};
   169       testTextAttrs(ID, 35, attrs, defAttrs, 35, 39);
   171       attrs = { "text-position": "sub", "font-size": "10pt" };
   172       testTextAttrs(ID, 39, attrs, defAttrs, 39, 50);
   174       attrs = {};
   175       testTextAttrs(ID, 50, attrs, defAttrs, 50, 55);
   177       attrs = { "text-position": "sub" };
   178       testTextAttrs(ID, 55, attrs, defAttrs, 55, 64);
   180       attrs = {};
   181       testTextAttrs(ID, 64, attrs, defAttrs, 64, 69);
   183       attrs = { "text-position": "super" };
   184       testTextAttrs(ID, 69, attrs, defAttrs, 69, 84);
   186       attrs = {};
   187       testTextAttrs(ID, 84, attrs, defAttrs, 84, 89);
   189       attrs = { "text-position": "sub" };
   190       testTextAttrs(ID, 89, attrs, defAttrs, 89, 102);
   192       attrs = {};
   193       testTextAttrs(ID, 102, attrs, defAttrs, 102, 107);
   195       attrs = { "text-position": "super" };
   196       testTextAttrs(ID, 107, attrs, defAttrs, 107, 123);
   198       attrs = {};
   199       testTextAttrs(ID, 123, attrs, defAttrs, 123, 128);
   201       attrs = { "text-position": "sub" };
   202       testTextAttrs(ID, 128, attrs, defAttrs, 128, 142);
   204       //////////////////////////////////////////////////////////////////////////
   205       // area7
   206       ID = "area7";
   207       defAttrs = buildDefaultTextAttrs(ID, "12pt");
   208       defAttrs["language"] = "en";
   209       testDefaultTextAttrs(ID, defAttrs);
   211       attrs = {"language": "ru"};
   212       testTextAttrs(ID, 0, attrs, defAttrs, 0, 6);
   214       attrs = {};
   215       testTextAttrs(ID, 6, attrs, defAttrs, 6, 7);
   217       tempElem = getNode(ID).firstChild.nextSibling.nextSibling.nextSibling;
   218       gComputedStyle = document.defaultView.getComputedStyle(tempElem, "");
   219       attrs = { "background-color": gComputedStyle.backgroundColor};
   220       testTextAttrs(ID, 13, attrs, defAttrs, 7, 20);
   222       attrs = {};
   223       testTextAttrs(ID, 20, attrs, defAttrs, 20, 21);
   225       attrs = {"language": "de"};
   226       testTextAttrs(ID, 21, attrs, defAttrs, 21, 36);
   228       attrs = {};
   229       testTextAttrs(ID, 36, attrs, defAttrs, 36, 44);
   231       attrs = {};
   232       testTextAttrs(ID, 37, attrs, defAttrs, 36, 44);
   234       tempElem = tempElem.nextSibling.nextSibling.nextSibling.nextSibling.firstChild.nextSibling;
   235       gComputedStyle = document.defaultView.getComputedStyle(tempElem, "");
   236       attrs = {"color": gComputedStyle.color};
   237       testTextAttrs(ID, 44, attrs, defAttrs, 44, 51);
   239       tempElem = tempElem.firstChild.nextSibling;
   240       gComputedStyle = document.defaultView.getComputedStyle(tempElem, "");
   241       attrs = {"font-weight": kBoldFontWeight,
   242                "color": gComputedStyle.color};
   243       testTextAttrs(ID, 51, attrs, defAttrs, 51, 55);
   245       tempElem = tempElem.parentNode;
   246       gComputedStyle = document.defaultView.getComputedStyle(tempElem, "");
   247       attrs = {"color": gComputedStyle.color};
   248       testTextAttrs(ID, 55, attrs, defAttrs, 55, 62);
   250       //////////////////////////////////////////////////////////////////////////
   251       // area9, different single style spans in styled paragraph
   252       ID = "area9";
   253       defAttrs = buildDefaultTextAttrs(ID, "10pt");
   254       testDefaultTextAttrs(ID, defAttrs);
   256       attrs = {};
   257       testTextAttrs(ID, 0, attrs, defAttrs, 0, 6);
   259       attrs = { "font-size": "12pt" };
   260       testTextAttrs(ID, 7, attrs, defAttrs, 6, 12);
   262       attrs = {};
   263       testTextAttrs(ID, 13, attrs, defAttrs, 12, 21);
   265       // Walk to the span with the different background color
   266       tempElem = getNode(ID).firstChild.nextSibling.nextSibling.nextSibling;
   267       gComputedStyle = document.defaultView.getComputedStyle(tempElem, "");
   268       attrs = { "background-color": gComputedStyle.backgroundColor };
   269       testTextAttrs(ID, 22, attrs, defAttrs, 21, 36);
   271       attrs = {};
   272       testTextAttrs(ID, 37, attrs, defAttrs, 36, 44);
   274       // Walk from the background color span to the one with font-style
   275       tempElem = tempElem.nextSibling.nextSibling;
   276       gComputedStyle = document.defaultView.getComputedStyle(tempElem, "");
   277       attrs = { "font-style": gComputedStyle.fontStyle };
   278       testTextAttrs(ID, 45, attrs, defAttrs, 44, 61);
   280       attrs = {};
   281       testTextAttrs(ID, 62, attrs, defAttrs, 61, 69);
   283       // Walk from span with font-style to the one with font-family.
   284       tempElem = tempElem.nextSibling.nextSibling;
   285       gComputedStyle = document.defaultView.getComputedStyle(tempElem, "");
   286       attrs = { "font-family": kMonospaceFontFamily };
   287       testTextAttrs(ID, 70, attrs, defAttrs, 69, 83);
   289       attrs = {};
   290       testTextAttrs(ID, 84, attrs, defAttrs, 83, 91);
   292       attrs = {
   293         "text-underline-style": "solid",
   294         "text-underline-color": gComputedStyle.color
   295       };
   296       testTextAttrs(ID, 92, attrs, defAttrs, 91, 101);
   298       attrs = {};
   299       testTextAttrs(ID, 102, attrs, defAttrs, 101, 109);
   301       attrs = {
   302         "text-line-through-style": "solid",
   303         "text-line-through-color": gComputedStyle.color
   304       };
   305       testTextAttrs(ID, 110, attrs, defAttrs, 109, 122);
   307       attrs = {};
   308       testTextAttrs(ID, 123, attrs, defAttrs, 122, 130);
   310       attrs = {
   311         "text-line-through-style": "solid",
   312         "text-line-through-color": gComputedStyle.color
   313       };
   314       testTextAttrs(ID, 131, attrs, defAttrs, 130, 143);
   316       attrs = {};
   317       testTextAttrs(ID, 144, attrs, defAttrs, 143, 151);
   319       attrs = {
   320         "text-line-through-style": "solid",
   321         "text-line-through-color": gComputedStyle.color
   322       };
   323       testTextAttrs(ID, 152, attrs, defAttrs, 151, 164);
   325       attrs = {};
   326       testTextAttrs(ID, 165, attrs, defAttrs, 164, 172);
   328       //////////////////////////////////////////////////////////////////////////
   329       // area10, different single style spans in non-styled paragraph
   330       ID = "area10";
   331       defAttrs = buildDefaultTextAttrs(ID, "12pt");
   332       testDefaultTextAttrs(ID, defAttrs);
   334       attrs = {};
   335       testTextAttrs(ID, 0, attrs, defAttrs, 0, 7);
   337       attrs = { "font-size": "14pt" };
   338       testTextAttrs(ID, 7, attrs, defAttrs, 7, 13);
   340       attrs = {};
   341       testTextAttrs(ID, 13, attrs, defAttrs, 13, 22);
   343       // Walk to the span with the different background color
   344       tempElem = getNode(ID).firstChild.nextSibling.nextSibling.nextSibling;
   345       gComputedStyle = document.defaultView.getComputedStyle(tempElem, "");
   346       attrs = { "background-color": gComputedStyle.backgroundColor };
   347       testTextAttrs(ID, 23, attrs, defAttrs, 22, 37);
   349       attrs = {};
   350       testTextAttrs(ID, 38, attrs, defAttrs, 37, 45);
   352       // Walk from the background color span to the one with font-style
   353       tempElem = tempElem.nextSibling.nextSibling;
   354       gComputedStyle = document.defaultView.getComputedStyle(tempElem, "");
   355       attrs = {"font-style": gComputedStyle.fontStyle};
   356       testTextAttrs(ID, 46, attrs, defAttrs, 45, 62);
   358       attrs = {};
   359       testTextAttrs(ID, 63, attrs, defAttrs, 62, 70);
   361       // Walk from span with font-style to the one with font-family.
   362       tempElem = tempElem.nextSibling.nextSibling;
   363       gComputedStyle = document.defaultView.getComputedStyle(tempElem, "");
   364       attrs = { "font-family": kMonospaceFontFamily };
   365       testTextAttrs(ID, 71, attrs, defAttrs, 70, 84);
   367       attrs = {};
   368       testTextAttrs(ID, 85, attrs, defAttrs, 84, 92);
   370       attrs = {
   371         "text-underline-style": "solid",
   372         "text-underline-color": gComputedStyle.color
   373       };
   374       testTextAttrs(ID, 93, attrs, defAttrs, 92, 102);
   376       attrs = {};
   377       testTextAttrs(ID, 103, attrs, defAttrs, 102, 110);
   379       attrs = {
   380         "text-line-through-style": "solid",
   381         "text-line-through-color": gComputedStyle.color
   382       };
   383       testTextAttrs(ID, 111, attrs, defAttrs, 110, 123);
   385       attrs = {};
   386       testTextAttrs(ID, 124, attrs, defAttrs, 123, 131);
   388       //////////////////////////////////////////////////////////////////////////
   389       // area11, "font-weight" tests
   390       ID = "area11";
   391       defAttrs = buildDefaultTextAttrs(ID, "12pt", kBoldFontWeight);
   392       testDefaultTextAttrs(ID, defAttrs);
   394       attrs = { };
   395       testTextAttrs(ID, 0, attrs, defAttrs, 0, 13);
   397       attrs = { "font-weight": kNormalFontWeight };
   398       testTextAttrs(ID, 13, attrs, defAttrs, 13, 20);
   400       attrs = { };
   401       testTextAttrs(ID, 20, attrs, defAttrs, 20, 27);
   403       attrs = { "font-weight": kNormalFontWeight };
   404       testTextAttrs(ID, 27, attrs, defAttrs, 27, 33);
   406       attrs = { };
   407       testTextAttrs(ID, 33, attrs, defAttrs, 33, 51);
   409       attrs = { "font-weight": kNormalFontWeight };
   410       testTextAttrs(ID, 51, attrs, defAttrs, 51, 57);
   412       attrs = { };
   413       testTextAttrs(ID, 57, attrs, defAttrs, 57, 97);
   415       //////////////////////////////////////////////////////////////////////////
   416       // test out of range offset
   417       testTextAttrsWrongOffset("area12", -1);
   418       testTextAttrsWrongOffset("area12", 500);
   420       //////////////////////////////////////////////////////////////////////////
   421       // test zero offset on empty hypertext accessibles
   422       ID = "area13";
   423       defAttrs = buildDefaultTextAttrs(ID, "12pt");
   424       attrs = { };
   425       testTextAttrs(ID, 0, attrs, defAttrs, 0, 0);
   427       ID = "area14";
   428       defAttrs = buildDefaultTextAttrs(ID, kInputFontSize,
   429                                        kNormalFontWeight, kInputFontFamily);
   431       attrs = { };
   432       testTextAttrs(ID, 0, attrs, defAttrs, 0, 0);
   434       //////////////////////////////////////////////////////////////////////////
   435       // area15, embed char tests, "*plain*plain**bold*bold*"
   436       ID = "area15";
   437       defAttrs = buildDefaultTextAttrs(ID, "12pt");
   439       // p
   440       testTextAttrs(ID, 0, { }, { }, 0, 1);
   441       // plain
   442       testTextAttrs(ID, 1, { }, defAttrs, 1, 6);
   443       // p
   444       testTextAttrs(ID, 6, { }, { }, 6, 7);
   445       // plain
   446       testTextAttrs(ID, 7, { }, defAttrs, 7, 12);
   447       // p and img
   448       testTextAttrs(ID, 12, { }, { }, 12, 14);
   449       // bold
   450       attrs = { "font-weight": kBoldFontWeight };
   451       testTextAttrs(ID, 14, attrs, defAttrs, 14, 18);
   452       // p
   453       testTextAttrs(ID, 18, { }, { }, 18, 19);
   454       // bold
   455       attrs = { "font-weight": kBoldFontWeight };
   456       testTextAttrs(ID, 19, attrs, defAttrs, 19, 23);
   457       // p
   458       testTextAttrs(ID, 23, { }, { }, 23, 24);
   460       //////////////////////////////////////////////////////////////////////////
   461       // area16, "font-family" tests
   462       ID = "area16";
   463       defAttrs = buildDefaultTextAttrs(ID, "12pt");
   464       testDefaultTextAttrs(ID, defAttrs);
   466       attrs = { "font-family": kMonospaceFontFamily };
   467       testTextAttrs(ID, 0, attrs, defAttrs, 0, 4);
   469       attrs = { };
   470       testTextAttrs(ID, 4, attrs, defAttrs, 4, 9);
   472       attrs = { "font-family": kSerifFontFamily };
   473       testTextAttrs(ID, 9, attrs, defAttrs, 9, 13);
   475       attrs = { };
   476       testTextAttrs(ID, 13, attrs, defAttrs, 13, 18);
   478       attrs = { "font-family": kAbsentFontFamily };
   479       testTextAttrs(ID, 18, attrs, defAttrs, 18, 22);
   481       attrs = { };
   482       testTextAttrs(ID, 22, attrs, defAttrs, 22, 27);
   484       attrs = { "font-family": kCursiveFontFamily };
   485       testTextAttrs(ID, 27, attrs, defAttrs, 27, 31);
   487       attrs = { };
   488       testTextAttrs(ID, 31, attrs, defAttrs, 31, 45);
   490       //////////////////////////////////////////////////////////////////////////
   491       // area17, "text-decoration" tests
   492       ID = "area17";
   493       defAttrs = buildDefaultTextAttrs(ID, "12pt");
   494       testDefaultTextAttrs(ID, defAttrs);
   496       attrs = {
   497         "text-underline-style": "solid",
   498         "text-underline-color": "rgb(0, 0, 0)",
   499       };
   500       testTextAttrs(ID, 0, attrs, defAttrs, 0, 10);
   502       attrs = {
   503         "text-underline-style": "solid",
   504         "text-underline-color": "rgb(0, 0, 255)",
   505       };
   506       testTextAttrs(ID, 10, attrs, defAttrs, 10, 15);
   508       attrs = {
   509         "text-underline-style": "dotted",
   510         "text-underline-color": "rgb(0, 0, 0)",
   511       };
   512       testTextAttrs(ID, 15, attrs, defAttrs, 15, 22);
   514       attrs = {
   515         "text-line-through-style": "solid",
   516         "text-line-through-color": "rgb(0, 0, 0)",
   517       };
   518       testTextAttrs(ID, 22, attrs, defAttrs, 22, 34);
   520       attrs = {
   521         "text-line-through-style": "solid",
   522         "text-line-through-color": "rgb(0, 0, 255)",
   523       };
   524       testTextAttrs(ID, 34, attrs, defAttrs, 34, 39);
   526       attrs = {
   527         "text-line-through-style": "wavy",
   528         "text-line-through-color": "rgb(0, 0, 0)",
   529       };
   530       testTextAttrs(ID, 39, attrs, defAttrs, 39, 44);
   532       //////////////////////////////////////////////////////////////////////////
   533       // area18, "auto-generation text" tests
   534       ID = "area18";
   535       defAttrs = buildDefaultTextAttrs(ID, "12pt");
   536       testDefaultTextAttrs(ID, defAttrs);
   538       var attrs = {
   539         "auto-generated": "true"
   540       };
   541       testTextAttrs(ID, 0, attrs, defAttrs, 0, 2);
   542       testTextAttrs(ID, 2, { }, defAttrs, 2, 6);
   543       testTextAttrs(ID, 6, attrs, defAttrs, 6, 7);
   545        //////////////////////////////////////////////////////////////////////////
   546       // area19, "HTML5 mark tag" test
   547       // text enclosed in mark tag will have a different background color
   548       ID = "area19";
   549       defAttrs = buildDefaultTextAttrs(ID, "12pt");
   551       attrs = {};
   552       testTextAttrs(ID, 0, attrs, defAttrs, 0, 10);
   554       tempElem = getNode(ID).firstChild.nextSibling;
   555       gComputedStyle = document.defaultView.getComputedStyle(tempElem, "");
   556       attrs = { "background-color": gComputedStyle.backgroundColor };
   557       testTextAttrs(ID, 11, attrs, defAttrs, 10, 17);
   559       attrs = {};
   560       testTextAttrs(ID, 18, attrs, defAttrs, 17, 28);
   562        //////////////////////////////////////////////////////////////////////////
   563       // area20, "aOffset as -1 (Mozilla Bug 789621)" test
   565       ID = "area20";
   566       defAttrs = buildDefaultTextAttrs(ID, "15pt");
   567       testDefaultTextAttrs(ID, defAttrs);
   569       testTextAttrs(ID, -1, {}, defAttrs, 0, 11);
   570       SimpleTest.finish();
   571     }
   573     SimpleTest.waitForExplicitFinish();
   574     addA11yLoadEvent(doTest);
   575   </script>
   576 </head>
   577 <body style="font-size: 12pt">
   579   <a target="_blank"
   580      href="https://bugzilla.mozilla.org/show_bug.cgi?id=345759"
   581      title="Implement text attributes">
   582     Mozilla Bug 345759
   583   </a>
   584   <a target="_blank"
   585      href="https://bugzilla.mozilla.org/show_bug.cgi?id=473569"
   586      title="Restrict text-position to allowed values">
   587     Mozilla Bug 473569
   588   </a>
   589   <a target="_blank"
   590      href="https://bugzilla.mozilla.org/show_bug.cgi?id=473576"
   591      title="font-family text attribute should expose actual font used">
   592     Mozilla Bug 473576
   593   </a>
   594   <a target="_blank"
   595      href="https://bugzilla.mozilla.org/show_bug.cgi?id=523304"
   596      title="expose text-underline-color and text-line-through-color text attributes">
   597     Mozilla Bug 523304
   598   </a>
   599   <a target="_blank"
   600      href="https://bugzilla.mozilla.org/show_bug.cgi?id=735645"
   601      title="expose sub and sup elements in text attributes">
   602     Mozilla Bug 735645
   603   </a>
   604   <a target="_blank"
   605      href="https://bugzilla.mozilla.org/show_bug.cgi?id=445516"
   606      title="Support auto-generated text attribute on bullet lists">
   607     Mozilla Bug 445516
   608   </a>
   609   <a target="_blank"
   610      href="https://bugzilla.mozilla.org/show_bug.cgi?id=789621"
   611      title="getTextAttributes doesn't work with magic offsets">
   612     Mozilla Bug 789621
   613   </a>
   614   <p id="display"></p>
   615   <div id="content" style="display: none"></div>
   616   <pre id="test">
   617   </pre>
   619   <p id="area1" style="font-size: smaller">Normal <b>Bold</b> Normal</p>
   620   <p id="area2" style="font-size: 120%">Normal <b>Bold <i>Italic </i>Bold</b> Normal</p>
   621   <p id="area3" style="background-color: blue;">
   622     <span style="color: green; background-color: rgb(0, 0, 255)">
   623       Green
   624       <span style="color: red">but children are red</span>
   625     </span><span style="color: green; background-color: rgb(255, 255, 0);">
   626       Another green section.
   627     </span>
   628   </p>
   629   <p id="area4">
   630     <span style="color: green">
   631       Green
   632     </span><span style="color: green">
   633       Green too
   634       <span style="color: red">with red children</span>
   635       Green again
   636     </span>
   637   </p>
   638   <!-- Green!*!RedNormal-->
   639   <p id="area5">
   640     <span style="color: green">Green</span>
   641     <img src="../moz.png" alt="image"/>
   642     <span style="color: red">Red</span>Normal
   643   </p>
   644   <p id="area6">
   645     This <sup>sentence</sup> has the word 
   646     <span style="vertical-align:super;">sentence</span> in 
   647     <sub>superscript</sub> and 
   648     <span style="vertical-align:sub;">subscript</span> and
   649     <span style="vertical-align:20%;">superscript 20%</span> and
   650     <span style="vertical-align:-20%;">subscript 20%</span> and
   651     <span style="vertical-align:20px;">superscript 20px</span> and
   652     <span style="vertical-align:-20px;">subscript 20px</span>
   653   </p>
   655   <p lang="en" id="area7">
   656     <span lang="ru">Привет</span>
   657     <span style="background-color: blue">Blue BG color</span>
   658     <span lang="de">Ich bin/Du bist</span>
   659     <span lang="en">
   660       Normal
   661       <span style="color: magenta">Magenta<b>Bold</b>Magenta</span>
   662     </span>
   663   </p>
   665   <p id="area9" style="font-size: smaller">Small
   666     <span style="font-size: 120%">bigger</span> smaller
   667     <span style="background-color: blue;">background blue</span> normal
   668     <span style="font-style: italic;">Different styling</span> normal
   669     <span style="font-family: monospace;">Different font</span> normal
   670     <span style="text-decoration: underline;">underlined</span> normal
   671     <span style="text-decoration: line-through;">strikethrough</span> normal
   672     <s>strikethrough</s> normal
   673     <strike>strikethrough</strike> normal
   674   </p>
   676   <p id="area10">Normal
   677     <span style="font-size: 120%">bigger</span> smaller
   678     <span style="background-color: blue;">background blue</span> normal
   679     <span style="font-style: italic;">Different styling</span> normal
   680     <span style="font-family: monospace;">Different font</span> normal
   681     <span style="text-decoration: underline;">underlined</span> normal
   682     <span style="text-decoration: line-through;">strikethrough</span> normal
   683   </p>
   685   <p id="area11" style="font-weight: bolder;">
   686     <span style="font-weight: bolder;">bolder</span>bolder
   687     <span style="font-weight: lighter;">lighter</span>bolder
   688     <span style="font-weight: normal;">normal</span>bolder
   689     <b>bold</b>bolder
   690     <span style="font-weight: 400;">normal</span>bolder
   691     <span style="font-weight: 700;">bold</span>bolder
   692     <span style="font-weight: bold;">bold</span>bolder
   693     <span style="font-weight: 900;">bold</span>bolder
   694   </p>
   696   <p id="area12">hello</p>
   697   <p id="area13"></p>
   698   <input id="area14">
   700   <!-- *plain*plain**bold*bold*-->
   701   <div id="area15"><p>embed</p>plain<p>embed</p>plain<p>embed</p><img src="../moz.png" alt="image"/><b>bold</b><p>embed</p><b>bold</b><p>embed</p></div>
   703   <p id="area16" style="font-family: sans-serif;">
   704     <span style="font-family: monospace;">text</span>text
   705     <span style="font-family: serif;">text</span>text
   706     <span style="font-family: BodoniThatDoesntExist;">text</span>text
   707     <span style="font-family: Comic Sans MS, cursive;">text</span>text
   708     <span style="font-family: sans-serif, fantasy;">text</span>text
   709   </p>
   711   <p id="area17">
   712     <span style="-moz-text-decoration-line: underline;">underline
   713     </span><span style="text-decoration: underline; -moz-text-decoration-color: blue;">blue
   714     </span><span style="text-decoration: underline; -moz-text-decoration-style: dotted;">dotted
   715     </span><span style="-moz-text-decoration-line: line-through;">linethrough
   716     </span><span style="text-decoration: line-through; -moz-text-decoration-color: blue;">blue
   717     </span><span style="text-decoration: line-through; -moz-text-decoration-style: wavy;">wavy
   718     </span>
   719   </p>
   721   <ul>
   722     <li id="area18" class="gencontent">item</li>
   723   </ul>
   725   <p id="area19">uncolored
   726     <mark>colored</mark> uncolored
   727   </p>
   729   <p id="area20" style="font-size: 15pt;">offset test</p>
   731 </body>
   732 </html>

mercurial