Test JS objects as NodeFilters.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


Testing with raw function filter
 filtering node A1
PASS walker.firstChild(); walker.currentNode.id is 'A1'
 filtering node B1
 filtering node B2
PASS walker.nextNode(); walker.currentNode.id is 'B2'

Testing with object filter
 filtering node A1
PASS walker.firstChild(); walker.currentNode.id is 'A1'
 filtering node B1
 filtering node B2
PASS walker.nextNode(); walker.currentNode.id is 'B2'

Testing with null filter
PASS walker.firstChild(); walker.currentNode.id is 'A1'
PASS walker.nextNode(); walker.currentNode.id is 'B1'

Testing with undefined filter
PASS walker.firstChild(); walker.currentNode.id is 'A1'
PASS walker.nextNode(); walker.currentNode.id is 'B1'

Testing with object lacking acceptNode property
PASS walker.firstChild(); threw exception TypeError: NodeFilter object does not have an acceptNode function.
PASS walker.currentNode.id; is 'root'
PASS walker.nextNode(); threw exception TypeError: NodeFilter object does not have an acceptNode function.
PASS walker.currentNode.id; is 'root'

Testing with object with non-function acceptNode property
PASS walker.firstChild(); threw exception TypeError: NodeFilter object does not have an acceptNode function.
PASS walker.currentNode.id; is 'root'
PASS walker.nextNode(); threw exception TypeError: NodeFilter object does not have an acceptNode function.
PASS walker.currentNode.id; is 'root'

Testing with function having acceptNode function
PASS walker.firstChild(); walker.currentNode.id is 'A1'
PASS walker.nextNode(); walker.currentNode.id is 'B1'

Testing acceptNode callee
Callee: function (node) {
    debug('Callee: ' + arguments.callee);
    return NodeFilter.FILTER_ACCEPT;
  }
PASS walker.firstChild(); walker.currentNode.id is 'A1'
PASS successfullyParsed is true

TEST COMPLETE

