<!DOCTYPE html>
<title>document: fg/bg/link/vlink/alink-color</title>
<link rel="author" title="Ms2ger" href="mailto:ms2ger@gmail.com">
<link rel="help" href="https://html.spec.whatwg.org/multipage/#dom-document-fgcolor">
<link rel="help" href="https://html.spec.whatwg.org/multipage/#dom-body-text">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script>
test(function() {
  assert_equals(document.fgColor, document.body.text);
  assert_equals(document.bgColor, document.body.bgColor);
  assert_equals(document.linkColor, document.body.link);
  assert_equals(document.vlinkColor, document.body.vLink);
  assert_equals(document.alinkColor, document.body.aLink);
})
test(function() {
  document.body.setAttribute("text", "blue");
  assert_equals(document.fgColor, "blue");
  assert_equals(document.body.text, "blue");
  assert_equals(document.body.getAttribute("text"), "blue");
})
test(function() {
  document.body.setAttribute("bgcolor", "green");
  assert_equals(document.bgColor, "green");
  assert_equals(document.body.bgColor, "green");
  assert_equals(document.body.getAttribute("bgcolor"), "green");
})
test(function() {
  document.body.setAttribute("link", "red");
  assert_equals(document.linkColor, "red");
  assert_equals(document.body.link, "red");
  assert_equals(document.body.getAttribute("link"), "red");
})
test(function() {
  document.body.setAttribute("vlink", "yellow");
  assert_equals(document.vlinkColor, "yellow");
  assert_equals(document.body.vLink, "yellow");
  assert_equals(document.body.getAttribute("vlink"), "yellow");
})
test(function() {
  document.body.setAttribute("alink", "silver");
  assert_equals(document.alinkColor, "silver");
  assert_equals(document.body.aLink, "silver");
  assert_equals(document.body.getAttribute("alink"), "silver");
})
</script>
