diff options
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/dom/pattern/pattern_test.html')
-rw-r--r-- | contexts/data/lib/closure-library/closure/goog/dom/pattern/pattern_test.html | 614 |
1 files changed, 0 insertions, 614 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/dom/pattern/pattern_test.html b/contexts/data/lib/closure-library/closure/goog/dom/pattern/pattern_test.html deleted file mode 100644 index 542e713..0000000 --- a/contexts/data/lib/closure-library/closure/goog/dom/pattern/pattern_test.html +++ /dev/null @@ -1,614 +0,0 @@ -<!DOCTYPE html> - - -<html> -<!-- -Copyright 2007 The Closure Library Authors. All Rights Reserved. - -Use of this source code is governed by the Apache License, Version 2.0. -See the COPYING file for details. ---> -<head> -<meta http-equiv="X-UA-Compatible" content="IE=edge"> -<title>goog.dom.pattern Tests</title> -<script src="../../base.js"></script> -<script type="text/javascript"> - goog.require('goog.testing.jsunit'); - - goog.require('goog.dom.TagWalkType'); - goog.require('goog.dom.pattern.AllChildren'); - goog.require('goog.dom.pattern.ChildMatches'); - goog.require('goog.dom.pattern.EndTag'); - goog.require('goog.dom.pattern.FullTag'); - goog.require('goog.dom.pattern.MatchType'); - goog.require('goog.dom.pattern.NodeType'); - goog.require('goog.dom.pattern.Repeat'); - goog.require('goog.dom.pattern.Sequence'); - goog.require('goog.dom.pattern.StartTag'); - goog.require('goog.dom.pattern.Text'); -</script> -</head> -<body> - <div id="div1"> - <span id="span1" style="color: red"></span> - </div> - <div id="div2"> - <span id="span2" style="color: blue">x</span> - </div> - <div id="div3">Text</div> - <div id="div4">Other Text</div> - <span></span> - - <!-- This chunk gets deleted! --> - <p id="p1"><b>x</b><b>y</b><i>z</i></p> - - <div id="div5"><b id="b1">x</b><b id="b2">y</b><i id="i1">z</i></div> - - <span id="span3"><span><span>X</span></span></span> - - <div id="nodeTypes"><!-- Comment -->Text</div> - -<script type="text/javascript"> - // TODO(robbyw): write a test that checks if backtracking works in Sequence - - function testStartTag() { - var pattern = new goog.dom.pattern.StartTag('DIV'); - assertEquals( - 'StartTag(div) should match div', - goog.dom.pattern.MatchType.MATCH, - pattern.matchToken( - goog.dom.getElement('div1'), - goog.dom.TagWalkType.START_TAG)); - assertEquals( - 'StartTag(div) should not match span', - goog.dom.pattern.MatchType.NO_MATCH, - pattern.matchToken( - goog.dom.getElement('span1'), - goog.dom.TagWalkType.START_TAG)); - assertEquals( - 'StartTag(div) should not match /div', - goog.dom.pattern.MatchType.NO_MATCH, - pattern.matchToken( - goog.dom.getElement('div1'), - goog.dom.TagWalkType.END_TAG)); - } - - function testStartTagCase() { - var pattern = new goog.dom.pattern.StartTag('diV'); - assertEquals( - 'StartTag(diV) should match div', - goog.dom.pattern.MatchType.MATCH, - pattern.matchToken( - goog.dom.getElement('div1'), - goog.dom.TagWalkType.START_TAG)); - assertEquals( - 'StartTag(diV) should not match span', - goog.dom.pattern.MatchType.NO_MATCH, - pattern.matchToken( - goog.dom.getElement('span1'), - goog.dom.TagWalkType.START_TAG)); - } - - function testStartTagRegex() { - var pattern = new goog.dom.pattern.StartTag(/D/); - assertEquals( - 'StartTag(/D/) should match div', - goog.dom.pattern.MatchType.MATCH, - pattern.matchToken( - goog.dom.getElement('div1'), - goog.dom.TagWalkType.START_TAG)); - assertEquals( - 'StartTag(/D/) should not match span', - goog.dom.pattern.MatchType.NO_MATCH, - pattern.matchToken( - goog.dom.getElement('span1'), - goog.dom.TagWalkType.START_TAG)); - assertEquals( - 'StartTag(/D/) should not match /div', - goog.dom.pattern.MatchType.NO_MATCH, - pattern.matchToken( - goog.dom.getElement('div1'), - goog.dom.TagWalkType.END_TAG)); - } - - function testStartTagAttributes() { - var pattern = new goog.dom.pattern.StartTag('DIV',{id: 'div1'}); - assertEquals( - 'StartTag(div,id:div1) should match div1', - goog.dom.pattern.MatchType.MATCH, - pattern.matchToken( - goog.dom.getElement('div1'), - goog.dom.TagWalkType.START_TAG)); - assertEquals('StartTag(div,id:div2) should not match div1', - goog.dom.pattern.MatchType.NO_MATCH, - pattern.matchToken( - goog.dom.getElement('div2'), - goog.dom.TagWalkType.START_TAG)); - } - - function testStartTagStyle() { - var pattern = new goog.dom.pattern.StartTag('SPAN',null,{color: 'red'}); - assertEquals( - 'StartTag(span,null,color:red) should match span1', - goog.dom.pattern.MatchType.MATCH, - pattern.matchToken( - goog.dom.getElement('span1'), - goog.dom.TagWalkType.START_TAG)); - assertEquals( - 'StartTag(span,null,color:blue) should not match span1', - goog.dom.pattern.MatchType.NO_MATCH, - pattern.matchToken( - goog.dom.getElement('span2'), - goog.dom.TagWalkType.START_TAG)); - } - - function testStartTagAttributeRegex() { - var pattern = new goog.dom.pattern.StartTag('SPAN',{id: /span\d/}); - assertEquals( - 'StartTag(span,id:/span\\d/) should match span1', - goog.dom.pattern.MatchType.MATCH, - pattern.matchToken( - goog.dom.getElement('span1'), - goog.dom.TagWalkType.START_TAG)); - assertEquals( - 'StartTag(span,id:/span\\d/) should match span2', - goog.dom.pattern.MatchType.MATCH, - pattern.matchToken( - goog.dom.getElement('span1'), - goog.dom.TagWalkType.START_TAG)); - } - - function testEndTag() { - var pattern = new goog.dom.pattern.EndTag('DIV'); - assertEquals( - 'EndTag should match div', - goog.dom.pattern.MatchType.MATCH, - pattern.matchToken( - goog.dom.getElement('div1'), - goog.dom.TagWalkType.END_TAG)); - } - - function testEndTagRegex() { - var pattern = new goog.dom.pattern.EndTag(/D/); - assertEquals( - 'EndTag(/D/) should match /div', - goog.dom.pattern.MatchType.MATCH, - pattern.matchToken( - goog.dom.getElement('div1'), - goog.dom.TagWalkType.END_TAG)); - assertEquals( - 'EndTag(/D/) should not match /span', - goog.dom.pattern.MatchType.NO_MATCH, - pattern.matchToken( - goog.dom.getElement('span1'), - goog.dom.TagWalkType.END_TAG)); - assertEquals( - 'EndTag(/D/) should not match div', - goog.dom.pattern.MatchType.NO_MATCH, - pattern.matchToken( - goog.dom.getElement('div1'), - goog.dom.TagWalkType.START_TAG)); - } - - function testChildMatches() { - var pattern = new goog.dom.pattern.ChildMatches( - new goog.dom.pattern.StartTag('DIV'), 2); - - assertEquals( - 'ChildMatches should match div', - goog.dom.pattern.MatchType.MATCHING, - pattern.matchToken( - goog.dom.getElement('div1'), - goog.dom.TagWalkType.START_TAG)); - assertEquals( - 'ChildMatches should match /div', - goog.dom.pattern.MatchType.MATCHING, - pattern.matchToken( - goog.dom.getElement('div1'), - goog.dom.TagWalkType.END_TAG)); - assertEquals( - 'ChildMatches should match div', - goog.dom.pattern.MatchType.MATCHING, - pattern.matchToken( - goog.dom.getElement('div2'), - goog.dom.TagWalkType.START_TAG)); - assertEquals( - 'ChildMatches should match /div', - goog.dom.pattern.MatchType.MATCHING, - pattern.matchToken( - goog.dom.getElement('div2'), - goog.dom.TagWalkType.END_TAG)); - assertEquals( - 'ChildMatches should finish match at /body', - goog.dom.pattern.MatchType.BACKTRACK_MATCH, - pattern.matchToken( - document.body, - goog.dom.TagWalkType.END_TAG)); - - assertEquals( - 'ChildMatches should match div', - goog.dom.pattern.MatchType.MATCHING, - pattern.matchToken( - goog.dom.getElement('div2'), - goog.dom.TagWalkType.START_TAG)); - assertEquals( - 'ChildMatches should match /div', - goog.dom.pattern.MatchType.MATCHING, - pattern.matchToken( - goog.dom.getElement('div2'), - goog.dom.TagWalkType.END_TAG)); - assertEquals( - 'ChildMatches should fail to match at /body: not enough child matches', - goog.dom.pattern.MatchType.NO_MATCH, - pattern.matchToken( - document.body, - goog.dom.TagWalkType.END_TAG)); - } - - function testFullTag() { - var pattern = new goog.dom.pattern.FullTag('DIV'); - assertEquals( - 'FullTag(div) should match div', - goog.dom.pattern.MatchType.MATCHING, - pattern.matchToken( - goog.dom.getElement('div1'), - goog.dom.TagWalkType.START_TAG)); - assertEquals( - 'FullTag(div) should match /div', - goog.dom.pattern.MatchType.MATCH, - pattern.matchToken( - goog.dom.getElement('div1'), - goog.dom.TagWalkType.END_TAG)); - - assertEquals( - 'FullTag(div) should start match at div', - goog.dom.pattern.MatchType.MATCHING, - pattern.matchToken( - goog.dom.getElement('div1'), - goog.dom.TagWalkType.START_TAG)); - assertEquals( - 'FullTag(div) should continue to match span', - goog.dom.pattern.MatchType.MATCHING, - pattern.matchToken( - goog.dom.getElement('span1'), - goog.dom.TagWalkType.START_TAG)); - assertEquals( - 'FullTag(div) should continue to match /span', - goog.dom.pattern.MatchType.MATCHING, - pattern.matchToken( - goog.dom.getElement('span1'), - goog.dom.TagWalkType.END_TAG)); - assertEquals( - 'FullTag(div) should finish match at /div', - goog.dom.pattern.MatchType.MATCH, - pattern.matchToken( - goog.dom.getElement('div1'), - goog.dom.TagWalkType.END_TAG)); - } - - function testAllChildren() { - var pattern = new goog.dom.pattern.AllChildren(); - assertEquals( - 'AllChildren(div) should match div', - goog.dom.pattern.MatchType.MATCHING, - pattern.matchToken( - goog.dom.getElement('div1'), - goog.dom.TagWalkType.START_TAG)); - assertEquals( - 'AllChildren(div) should match /div', - goog.dom.pattern.MatchType.MATCHING, - pattern.matchToken( - goog.dom.getElement('div1'), - goog.dom.TagWalkType.END_TAG)); - assertEquals( - 'AllChildren(div) should match at /body', - goog.dom.pattern.MatchType.BACKTRACK_MATCH, - pattern.matchToken( - document.body, - goog.dom.TagWalkType.END_TAG)); - - assertEquals( - 'AllChildren(div) should start match at div', - goog.dom.pattern.MatchType.MATCHING, - pattern.matchToken( - goog.dom.getElement('div1'), - goog.dom.TagWalkType.START_TAG)); - assertEquals( - 'AllChildren(div) should continue to match span', - goog.dom.pattern.MatchType.MATCHING, - pattern.matchToken( - goog.dom.getElement('span1'), - goog.dom.TagWalkType.START_TAG)); - assertEquals( - 'AllChildren(div) should continue to match /span', - goog.dom.pattern.MatchType.MATCHING, - pattern.matchToken( - goog.dom.getElement('span1'), - goog.dom.TagWalkType.END_TAG)); - assertEquals( - 'AllChildren(div) should continue to match at /div', - goog.dom.pattern.MatchType.MATCHING, - pattern.matchToken( - goog.dom.getElement('div1'), - goog.dom.TagWalkType.END_TAG)); - assertEquals( - 'AllChildren(div) should finish match at /body', - goog.dom.pattern.MatchType.BACKTRACK_MATCH, - pattern.matchToken( - document.body, - goog.dom.TagWalkType.END_TAG)); - } - - function testText() { - var pattern = new goog.dom.pattern.Text('Text'); - assertEquals( - 'Text should match div3/text()', - goog.dom.pattern.MatchType.MATCH, - pattern.matchToken( - goog.dom.getElement('div3').firstChild, - goog.dom.TagWalkType.OTHER)); - assertEquals( - 'Text should not match div4/text()', - goog.dom.pattern.MatchType.NO_MATCH, - pattern.matchToken( - goog.dom.getElement('div4').firstChild, - goog.dom.TagWalkType.OTHER)); - assertEquals( - 'Text should not match div3', - goog.dom.pattern.MatchType.NO_MATCH, - pattern.matchToken( - goog.dom.getElement('div3'), - goog.dom.TagWalkType.START_TAG)); - - } - - function testTextRegex() { - var pattern = new goog.dom.pattern.Text(/Text/); - assertEquals( - 'Text(regex) should match div3/text()', - goog.dom.pattern.MatchType.MATCH, - pattern.matchToken( - goog.dom.getElement('div3').firstChild, - goog.dom.TagWalkType.OTHER)); - assertEquals( - 'Text(regex) should match div4/text()', - goog.dom.pattern.MatchType.MATCH, - pattern.matchToken( - goog.dom.getElement('div4').firstChild, - goog.dom.TagWalkType.OTHER)); - } - - function testNodeType() { - var pattern = new goog.dom.pattern.NodeType(goog.dom.NodeType.COMMENT); - assertEquals('Comment matcher should match a comment', - goog.dom.pattern.MatchType.MATCH, - pattern.matchToken( - goog.dom.getElement('nodeTypes').firstChild, - goog.dom.TagWalkType.OTHER)); - assertEquals('Comment matcher should not match a text node', - goog.dom.pattern.MatchType.NO_MATCH, - pattern.matchToken( - goog.dom.getElement('nodeTypes').lastChild, - goog.dom.TagWalkType.OTHER)); - } - - function testSequence() { - var pattern = new goog.dom.pattern.Sequence([ - new goog.dom.pattern.StartTag('DIV'), - new goog.dom.pattern.StartTag('SPAN'), - new goog.dom.pattern.EndTag('SPAN'), - new goog.dom.pattern.EndTag('DIV')]); - - assertEquals( - 'Sequence[0] should match div1', - goog.dom.pattern.MatchType.MATCHING, - pattern.matchToken( - goog.dom.getElement('div1'), - goog.dom.TagWalkType.START_TAG)); - assertEquals( - 'Sequence[1] should match span1', - goog.dom.pattern.MatchType.MATCHING, - pattern.matchToken( - goog.dom.getElement('span1'), - goog.dom.TagWalkType.START_TAG)); - assertEquals( - 'Sequence[2] should match /span1', - goog.dom.pattern.MatchType.MATCHING, - pattern.matchToken( - goog.dom.getElement('span1'), - goog.dom.TagWalkType.END_TAG)); - assertEquals( - 'Sequence[3] should match /div1', - goog.dom.pattern.MatchType.MATCH, - pattern.matchToken( - goog.dom.getElement('div1'), - goog.dom.TagWalkType.END_TAG)); - - assertEquals( - 'Sequence[0] should match div1 again', - goog.dom.pattern.MatchType.MATCHING, - pattern.matchToken( - goog.dom.getElement('div1'), - goog.dom.TagWalkType.START_TAG)); - assertEquals( - 'Sequence[1] should match span1 again', - goog.dom.pattern.MatchType.MATCHING, - pattern.matchToken( - goog.dom.getElement('span1'), - goog.dom.TagWalkType.START_TAG)); - assertEquals( - 'Sequence[2] should match /span1 again', - goog.dom.pattern.MatchType.MATCHING, - pattern.matchToken( - goog.dom.getElement('span1'), - goog.dom.TagWalkType.END_TAG)); - assertEquals( - 'Sequence[3] should match /div1 again', - goog.dom.pattern.MatchType.MATCH, - pattern.matchToken( - goog.dom.getElement('div1'), - goog.dom.TagWalkType.END_TAG)); - - assertEquals( - 'Sequence[0] should match div1', - goog.dom.pattern.MatchType.MATCHING, - pattern.matchToken( - goog.dom.getElement('div1'), - goog.dom.TagWalkType.START_TAG)); - assertEquals( - 'Sequence[1] should not match div1', - goog.dom.pattern.MatchType.NO_MATCH, - pattern.matchToken( - goog.dom.getElement('div1'), - goog.dom.TagWalkType.START_TAG)); - - assertEquals( - 'Sequence[0] should match div1 after failure', - goog.dom.pattern.MatchType.MATCHING, - pattern.matchToken( - goog.dom.getElement('div1'), - goog.dom.TagWalkType.START_TAG)); - assertEquals( - 'Sequence[1] should match span1 after failure', - goog.dom.pattern.MatchType.MATCHING, - pattern.matchToken( - goog.dom.getElement('span1'), - goog.dom.TagWalkType.START_TAG)); - assertEquals( - 'Sequence[2] should match /span1 after failure', - goog.dom.pattern.MatchType.MATCHING, - pattern.matchToken( - goog.dom.getElement('span1'), - goog.dom.TagWalkType.END_TAG)); - assertEquals( - 'Sequence[3] should match /div1 after failure', - goog.dom.pattern.MatchType.MATCH, - pattern.matchToken( - goog.dom.getElement('div1'), - goog.dom.TagWalkType.END_TAG)); - } - - function testRepeat() { - var pattern = new goog.dom.pattern.Repeat( - new goog.dom.pattern.StartTag('B')); - - // Note: this test does not mimic an actual matcher because it is only - // passing the START_TAG events. - - assertEquals( - 'Repeat[B] should match b1', - goog.dom.pattern.MatchType.MATCHING, - pattern.matchToken( - goog.dom.getElement('b1'), - goog.dom.TagWalkType.START_TAG)); - assertEquals( - 'Repeat[B] should match b2', - goog.dom.pattern.MatchType.MATCHING, - pattern.matchToken( - goog.dom.getElement('b2'), - goog.dom.TagWalkType.START_TAG)); - assertEquals( - 'Repeat[B] should backtrack match i1', - goog.dom.pattern.MatchType.BACKTRACK_MATCH, - pattern.matchToken( - goog.dom.getElement('i1'), - goog.dom.TagWalkType.START_TAG)); - assertEquals( - 'Repeat[B] should have match count of 2', - 2, - pattern.count); - - assertEquals( - 'Repeat[B] should backtrack match i1 even with no b matches', - goog.dom.pattern.MatchType.BACKTRACK_MATCH, - pattern.matchToken( - goog.dom.getElement('i1'), - goog.dom.TagWalkType.START_TAG)); - assertEquals( - 'Repeat[B] should have match count of 0', - 0, - pattern.count); - } - - function testRepeatWithMinimum() { - var pattern = new goog.dom.pattern.Repeat( - new goog.dom.pattern.StartTag('B'), 1); - - // Note: this test does not mimic an actual matcher because it is only - // passing the START_TAG events. - - assertEquals( - 'Repeat[B,1] should match b1', - goog.dom.pattern.MatchType.MATCHING, - pattern.matchToken( - goog.dom.getElement('b1'), - goog.dom.TagWalkType.START_TAG)); - assertEquals( - 'Repeat[B,1] should match b2', - goog.dom.pattern.MatchType.MATCHING, - pattern.matchToken( - goog.dom.getElement('b2'), - goog.dom.TagWalkType.START_TAG)); - assertEquals( - 'Repeat[B,1] should backtrack match i1', - goog.dom.pattern.MatchType.BACKTRACK_MATCH, - pattern.matchToken( - goog.dom.getElement('i1'), - goog.dom.TagWalkType.START_TAG)); - assertEquals( - 'Repeat[B,1] should have match count of 2', - 2, - pattern.count); - - assertEquals( - 'Repeat[B,1] should not match i1', - goog.dom.pattern.MatchType.NO_MATCH, - pattern.matchToken( - goog.dom.getElement('i1'), - goog.dom.TagWalkType.START_TAG)); - } - - function testRepeatWithMaximum() { - var pattern = new goog.dom.pattern.Repeat( - new goog.dom.pattern.StartTag('B'), 1, 1); - - // Note: this test does not mimic an actual matcher because it is only - // passing the START_TAG events. - - assertEquals( - 'Repeat[B,1] should match b1', - goog.dom.pattern.MatchType.MATCH, - pattern.matchToken( - goog.dom.getElement('b1'), - goog.dom.TagWalkType.START_TAG)); - } - - function testSequenceBacktrack() { - var pattern = new goog.dom.pattern.Sequence([ - new goog.dom.pattern.Repeat(new goog.dom.pattern.StartTag('SPAN')), - new goog.dom.pattern.Text('X')]); - - var root = goog.dom.getElement('span3'); - assertEquals( - 'Sequence[Repeat[SPAN],"X"] should match span3', - goog.dom.pattern.MatchType.MATCHING, - pattern.matchToken(root, goog.dom.TagWalkType.START_TAG)); - assertEquals( - 'Sequence[Repeat[SPAN],"X"] should match span3.firstChild', - goog.dom.pattern.MatchType.MATCHING, - pattern.matchToken(root.firstChild, - goog.dom.TagWalkType.START_TAG)); - assertEquals( - 'Sequence[Repeat[SPAN],"X"] should match span3.firstChild.firstChild', - goog.dom.pattern.MatchType.MATCHING, - pattern.matchToken(root.firstChild.firstChild, - goog.dom.TagWalkType.START_TAG)); - assertEquals( - 'Sequence[Repeat[SPAN],"X"] should finish match text node', - goog.dom.pattern.MatchType.MATCH, - pattern.matchToken(root.firstChild.firstChild.firstChild, - goog.dom.TagWalkType.OTHER)); - } -</script> -</body> -</html> |