<!DOCTYPE html>
<link rel="help" href="https://www.w3.org/TR/1999/REC-xpath-19991116/#function-normalize-space">
<link rel="help" href="https://www.w3.org/TR/xpath-functions-31/#func-normalize-space">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<body>
<div id="target"> a <br> b</div>
<script>
function normalizeSpace(exp) {
  return document.evaluate(`normalize-space("${exp}")`, document).stringValue;
}

test(() => {
  assert_equals(document.evaluate('normalize-space()', document.querySelector('#target')).stringValue, 'a b');
}, 'normalize-space() without arguments');

test(() => {
  assert_equals(normalizeSpace(' a \t  b\r\nc '), 'a b c');

  assert_equals(normalizeSpace('y\x0B\x0C\x0E\x0Fz'), 'y\x0b\x0c\x0e\x0fz');
  assert_equals(normalizeSpace('\xA0 \u3000'), '\xA0 \u3000');
}, 'normalize-space() should handle only #x20, #x9, #xD, and #xA');
</script>
