<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Basic User Interface Test: caret-color visited link computed value</title>
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
<link rel="help" href="http://www.w3.org/TR/css3-ui/#caret-color">
<link rel="help" href="https://www.w3.org/TR/css3-color/#color0">
<link rel="help" href="https://www.w3.org/TR/selectors4/#link">
<meta name="flags" content="may interact">
<meta name="assert" content="Test checks that computed style of caret-color on visited links doesn't leak privacy information.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
  a {
    font-size: 3em;
    font-weight: bold;
    width: 10em;
    padding: 10px;
    background: black; /* the color of a thin object like the caret is easier to see on a black background. */

    color: white;
    caret-color: lime;
  }

  a:link {
    color: yellow;
  }

  a:visited {
    caret-color: cyan;
  }
</style>
<body>
  <p>Before running this test, this <a href="./">link</a> must have been visited. It will have yellow text if this is not the case. If it its text is yellow, you need to navigate to this link first.
  <p><a id="link" contenteditable href="./">link</a></p>
  <div id=log></div>

  <script>
    setup(
      function(){
        /* Helper to get the link into the browsing history.
           Using a relative path because some browsers only allow replaceState within the same domain. */
        current_url = window.location.href;
        history.replaceState({},"","./");
        history.replaceState({},"",current_url);
      });

    test(
      function(){
        var link = document.getElementById("link");
        assert_equals(window.getComputedStyle(link)["caret-color"], "rgb(0, 255, 0)");
    }, "The computed value of a visited link should be the same than a non-visited link");
  </script>
</body>
