<!DOCTYPE html>
<html lang="en-GB">
<head>
<meta charset="utf-8"/>
<title>EUC-KR decoding errors</title>
<meta name="timeout" content="long">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#euc-kr">
<meta name="assert" content="The browser decodes characters that are not recognised from the euc-kr encoding as replacement characters.">
<style>
 iframe { display:none }
</style>
</head>

<body onload="showNodes();">

<iframe src="euckr_errors.html" name="scriptWindow" id="scrwin"></iframe>

<div id="log"></div>

<script>
var tests = [];

function iframeRef(frameRef) {
	return frameRef.contentWindow
		? frameRef.contentWindow.document
		: frameRef.contentDocument;
}

function showNodes() {
	var iframe = iframeRef(document.getElementById("scrwin"));
	nodes = iframe.querySelectorAll("span");

	t = -1;
	t++;
	tests[t] = async_test("lead not 0x00 and no more bytes: B0");
	t++;
	tests[t] = async_test("lead not 0x00 and no more bytes: B0 B5 B0");
	t++;
	tests[t] = async_test("lead not 0x00 and no more bytes: B0 B0 B0");

	t++;
	tests[t] = async_test("lead byte outside 0x81-0xFE: FF");
	t++;
	tests[t] = async_test("lead byte outside 0x81-0xFE: B0 B0 FF");

	t++;
	tests[t] = async_test("trail byte outside 0x41-0xFE: B0 31");
	t++;
	tests[t] = async_test("trail byte outside 0x41-0xFE: B0 FF");

	t++;
	tests[t] = async_test("pointer is null: 81 5B");

	t = -1;
	t++;
	tests[t].step(function() {
		assert_equals(nodes[t].textContent, "�");
	});
	tests[t].done();
	t++;
	tests[t].step(function() {
		assert_equals(nodes[t].textContent, "갠�");
	});
	tests[t].done();
	t++;
	tests[t].step(function() {
		assert_equals(nodes[t].textContent, "같�");
	});
	tests[t].done();
	t++;
	tests[t].step(function() {
		assert_equals(nodes[t].textContent, "�");
	});
	tests[t].done();
	t++;
	tests[t].step(function() {
		assert_equals(nodes[t].textContent, "갠�");
	});
	tests[t].done();
	t++;
	tests[t].step(function() {
		assert_equals(nodes[t].textContent, "�1");
	});
	tests[t].done();
	t++;
	tests[t].step(function() {
		assert_equals(nodes[t].textContent, "�");
	});
	tests[t].done();
	t++;
	tests[t].step(function() {
		assert_equals(nodes[t].textContent, "�[");
	});
	tests[t].done();
}
</script>
</body>
</html>
