1eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block// runs a test and writes a log
2eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Blockfunction t(collection, elements) {
3eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block  if (window.layoutTestController)
4eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block    layoutTestController.dumpAsText();
5eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block
6eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block  var log = "",
7eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block      r = document.getElementById("r"),
8eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block      pass = true
9eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block  if(collection.length != elements.length) {
10eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block    pass = false
11eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block    log += "Got " + collection.length + " elements, expected " + elements.length + ". "
12eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block  }
13eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block  for(var i = 0, max = collection.length > elements.length ? elements.length : collection.length; i < max; i++) {
14eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block    if(collection[i] != elements[i]) {
15eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block      pass = false
16eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block      log += "Got element `" + collection[i].tagName + "` (" + collection[i].namespaceURI + ")"
17eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block      log += ", expected element `" + elements[i].tagName + "` (" + elements[i].namespaceURI + "). "
18eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block    }
19eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block  }
20eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block  r.textContent = pass ? "PASS" : "FAIL (" + log + ")"
21eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block}
22