// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/5/LICENSE

// codemirror: v.5.65.15

(function() {
	var mode = CodeMirror.getMode({indentUnit: 2}, "xml"), mname = "xml";
	function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1), mname); }

	MT("matching",
		 "[tag&bracket <][tag top][tag&bracket >]",
		 "  text",
		 "  [tag&bracket <][tag inner][tag&bracket />]",
		 "[tag&bracket </][tag top][tag&bracket >]");

	MT("nonmatching",
		 "[tag&bracket <][tag top][tag&bracket >]",
		 "  [tag&bracket <][tag inner][tag&bracket />]",
		 "  [tag&bracket </][tag&error tip][tag&bracket&error >]");

	MT("doctype",
		 "[meta <!doctype foobar>]",
		 "[tag&bracket <][tag top][tag&bracket />]");

	MT("cdata",
		 "[tag&bracket <][tag top][tag&bracket >]",
		 "  [atom <![CDATA[foo]",
		 "[atom barbazguh]]]]>]",
		 "[tag&bracket </][tag top][tag&bracket >]");

	// HTML tests
	mode = CodeMirror.getMode({indentUnit: 2}, "text/html");

	MT("selfclose",
		 "[tag&bracket <][tag html][tag&bracket >]",
		 "  [tag&bracket <][tag link] [attribute rel]=[string stylesheet] [attribute href]=[string \"/foobar\"][tag&bracket >]",
		 "[tag&bracket </][tag html][tag&bracket >]");

	MT("list",
		 "[tag&bracket <][tag ol][tag&bracket >]",
		 "  [tag&bracket <][tag li][tag&bracket >]one",
		 "  [tag&bracket <][tag li][tag&bracket >]two",
		 "[tag&bracket </][tag ol][tag&bracket >]");

	MT("valueless",
		 "[tag&bracket <][tag input] [attribute type]=[string checkbox] [attribute checked][tag&bracket />]");

	MT("pThenArticle",
		 "[tag&bracket <][tag p][tag&bracket >]",
		 "  foo",
		 "[tag&bracket <][tag article][tag&bracket >]bar");

})();

// #END
