| <!doctype html> |
| <html> |
| <head> |
| <script src="../../resources/js-test-pre.js"></script> |
| <style> |
| * { |
| background-color:white; |
| } |
| :any-link { |
| background-color:rgb(1, 2, 3); |
| } |
| </style> |
| </head> |
| <body> |
| <div style="display:none"> |
| <div data-description="Anchors basics."> |
| <a id="target-tag-1">Anchors without href are no links.</a> |
| |
| <a id="target-tag-2" href>Anchors with an empty href are links.</a> |
| <a id="target-tag-3" href="">Anchors with an empty href are links.</a> |
| <a id="target-tag-4" href="a">An anchor with any href is a link.</a> |
| <a id="target-tag-5" href="http://www.webkit.org">An anchor with a valid href is a link.</a> |
| |
| <!-- Case sensitivity of the attribute name --> |
| <a id="target-tag-6" Href>Anchors with an empty href are links.</a> |
| <a id="target-tag-7" HREF="">Anchors with an empty href are links.</a> |
| <a id="target-tag-8" hreF="a">An anchor with any href is a link.</a> |
| <a id="target-tag-9" hReF="http://www.webkit.org">An anchor with a valid href is a link.</a> |
| </div> |
| |
| <div data-description="Standalone images are not link."> |
| <!-- The WebKit version of "any-link" was incorrectly classifying images with "usemap" as links. --> |
| <img id="target-tag-10" href="http://www.webkit.org"></img> |
| <img id="target-tag-11" usemap></img> |
| <img id="target-tag-12" usemap=""></img> |
| |
| <map id="target-tag-13" name="image-map-1"> |
| <area id="target-tag-14" href="http://www.webkit.org" shape="rect" coords="10,10,10,10"> |
| </map> |
| <img id="target-tag-15" src="invalid.png" usemap="#image-map-1"> |
| </div> |
| |
| <div data-description="Area basics.."> |
| <!-- No href -> not a link. --> |
| <area id="target-tag-16"> |
| |
| <area id="target-tag-17" href> |
| <area id="target-tag-18" href=""> |
| <area id="target-tag-19" href="http://www.webkit.org"> |
| <area id="target-tag-20" HREF="http://www.webkit.org"> |
| <map id="target-tag-21" name="image-map-2"> |
| <area id="target-tag-22" href> |
| <area id="target-tag-23" href=""> |
| <area id="target-tag-24" href="http://www.webkit.org"> |
| <area id="target-tag-25" HREF="http://www.webkit.org"> |
| </map> |
| </div> |
| |
| <div data-description="SVG basics."> |
| <svg> |
| <a id="target-tag-26"><text>No href.</text></a> |
| |
| <a id="target-tag-27" href><text>Link.</text></a> |
| <a id="target-tag-28" href=""><text>Link.</text></a> |
| <a id="target-tag-29" href="http://www.webkit.org"><text>Link.</text></a> |
| <a id="target-tag-30" HREF="http://www.webkit.org"><text>Link.</text></a> |
| |
| <a id="target-tag-31" xlink:href><text>Link.</text></a> |
| <a id="target-tag-32" xlink:href=""><text>Link.</text></a> |
| <a id="target-tag-33" xlink:href="http://www.webkit.org"><text>Link.</text></a> |
| <a id="target-tag-34" xlink:HREF="http://www.webkit.org"><text>Link.</text></a> |
| </svg> |
| </div> |
| </div> |
| </body> |
| <script> |
| description('Test the basic matching of the :any-link selector.'); |
| |
| shouldBe('document.querySelectorAll(":any-link").length', '21'); |
| |
| // Query Selector. |
| var expectedIds = ['target-tag-2', |
| 'target-tag-3', |
| 'target-tag-4', |
| 'target-tag-5', |
| 'target-tag-6', |
| 'target-tag-7', |
| 'target-tag-8', |
| 'target-tag-9', |
| 'target-tag-14', |
| 'target-tag-17', |
| 'target-tag-18', |
| 'target-tag-19', |
| 'target-tag-20', |
| 'target-tag-22', |
| 'target-tag-23', |
| 'target-tag-24', |
| 'target-tag-25', |
| 'target-tag-31', |
| 'target-tag-32', |
| 'target-tag-33', |
| 'target-tag-34']; |
| |
| for (var i = 0; i < expectedIds.length; ++i) |
| shouldBe('document.querySelectorAll(":any-link")[' + i + ']', 'document.getElementById("' + expectedIds[i] + '")'); |
| |
| // Styling. |
| var expectedStyles = [['target-tag-1', 'rgb(255, 255, 255)'], |
| ['target-tag-2', 'rgb(1, 2, 3)'], |
| ['target-tag-3', 'rgb(1, 2, 3)'], |
| ['target-tag-4', 'rgb(1, 2, 3)'], |
| ['target-tag-5', 'rgb(1, 2, 3)'], |
| ['target-tag-6', 'rgb(1, 2, 3)'], |
| ['target-tag-7', 'rgb(1, 2, 3)'], |
| ['target-tag-8', 'rgb(1, 2, 3)'], |
| ['target-tag-9', 'rgb(1, 2, 3)'], |
| ['target-tag-10', 'rgb(255, 255, 255)'], |
| ['target-tag-11', 'rgb(255, 255, 255)'], |
| ['target-tag-12', 'rgb(255, 255, 255)'], |
| ['target-tag-13', 'rgb(255, 255, 255)'], |
| ['target-tag-14', 'rgb(1, 2, 3)'], |
| ['target-tag-15', 'rgb(255, 255, 255)'], |
| ['target-tag-16', 'rgb(255, 255, 255)'], |
| ['target-tag-17', 'rgb(1, 2, 3)'], |
| ['target-tag-18', 'rgb(1, 2, 3)'], |
| ['target-tag-19', 'rgb(1, 2, 3)'], |
| ['target-tag-20', 'rgb(1, 2, 3)'], |
| ['target-tag-21', 'rgb(255, 255, 255)'], |
| ['target-tag-22', 'rgb(1, 2, 3)'], |
| ['target-tag-23', 'rgb(1, 2, 3)'], |
| ['target-tag-24', 'rgb(1, 2, 3)'], |
| ['target-tag-25', 'rgb(1, 2, 3)'], |
| ['target-tag-26', 'rgb(255, 255, 255)'], |
| ['target-tag-27', 'rgb(255, 255, 255)'], |
| ['target-tag-28', 'rgb(255, 255, 255)'], |
| ['target-tag-29', 'rgb(255, 255, 255)'], |
| ['target-tag-30', 'rgb(255, 255, 255)'], |
| ['target-tag-31', 'rgb(1, 2, 3)'], |
| ['target-tag-32', 'rgb(1, 2, 3)'], |
| ['target-tag-33', 'rgb(1, 2, 3)'], |
| ['target-tag-34', 'rgb(1, 2, 3)']]; |
| |
| for (var i = 0; i < expectedStyles.length; ++i) |
| shouldBeEqualToString('getComputedStyle(document.getElementById("' + expectedStyles[i][0] + '")).backgroundColor', "" + expectedStyles[i][1]); |
| |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |
| </html> |