/home/aqcert/public_html/admin/tinymce/tests/tinymce/html
Edit: /home/aqcert/public_html/admin/tinymce/tests/tinymce/html/SaxParser.js (29284B)
(function() {
module("tinymce.html.SaxParser");
var writer = new tinymce.html.Writer(), schema = new tinymce.html.Schema();
function createCounter(writer) {
var counts = {};
return {
counts : counts,
comment: function(text) {
if ("comment" in counts) {
counts.comment++;
} else {
counts.comment = 1;
}
writer.comment(text);
},
cdata: function(text) {
if ("cdata" in counts) {
counts.cdata++;
} else {
counts.cdata = 1;
}
writer.cdata(text);
},
text: function(text, raw) {
if ("text" in counts) {
counts.text++;
} else {
counts.text = 1;
}
writer.text(text, raw);
},
start: function(name, attrs, empty) {
if ("start" in counts) {
counts.start++;
} else {
counts.start = 1;
}
writer.start(name, attrs, empty);
},
end: function(name) {
if ("end" in counts) {
counts.end++;
} else {
counts.end = 1;
}
writer.end(name);
},
pi: function(name, text) {
if ("pi" in counts) {
counts.pi++;
} else {
counts.pi = 1;
}
writer.pi(name, text);
},
doctype: function(text) {
if ("doctype:" in counts) {
counts.doctype++;
} else {
counts.doctype = 1;
}
writer.doctype(text);
}
};
}
test('Parse elements', function() {
var counter, parser;
expect(48);
counter = createCounter(writer);
parser = new tinymce.html.SaxParser(counter, schema);
writer.reset();
parser.parse('
');
equal(writer.getContent(), '
', 'Parse attribute formats.');
deepEqual(counter.counts, {start:1, end:1}, 'Parse attribute formats counts.');
counter = createCounter(writer);
parser = new tinymce.html.SaxParser(counter, schema);
writer.reset();
parser.parse('
\'>');
equal(writer.getContent(), '
', 'Parse attributes with <> in them.');
deepEqual(counter.counts, {start:1, end:1}, 'Parse attributes with <> in them (count).');
counter = createCounter(writer);
parser = new tinymce.html.SaxParser(counter, schema);
writer.reset();
parser.parse('
');
equal(writer.getContent(), '
', 'Parse compressed attributes.');
deepEqual(counter.counts, {start:1, end:1}, 'Parse compressed attributes (count).');
counter = createCounter(writer);
parser = new tinymce.html.SaxParser(counter, schema);
writer.reset();
parser.parse('
');
equal(writer.getContent(), '
', 'Single empty attribute.');
deepEqual(counter.counts, {start:1, end:1}, 'Single empty attributes (count).');
counter = createCounter(writer);
parser = new tinymce.html.SaxParser(counter, schema);
writer.reset();
parser.parse('
');
equal(writer.getContent(), '
', 'Empty attribute at end.');
deepEqual(counter.counts, {start:1, end:1}, 'Empty attribute at end (count).');
counter = createCounter(writer);
parser = new tinymce.html.SaxParser(counter, schema);
writer.reset();
parser.parse('
');
equal(writer.getContent(), '
', 'Empty attribute at start.');
deepEqual(counter.counts, {start:1, end:1}, 'Empty attribute at start (count).');
counter = createCounter(writer);
parser = new tinymce.html.SaxParser(counter, schema);
writer.reset();
parser.parse('

');
equal(writer.getContent(), '

', 'Parse empty element.');
deepEqual(counter.counts, {start:1}, 'Parse empty element counts.');
counter = createCounter(writer);
parser = new tinymce.html.SaxParser(counter, schema);
writer.reset();
parser.parse('
![]()
');
equal(writer.getContent(), '

', 'Parse attributes with linebreak.');
deepEqual(counter.counts, {start: 1}, 'Parse attributes with linebreak counts.');
counter = createCounter(writer);
parser = new tinymce.html.SaxParser(counter, schema);
writer.reset();
parser.parse('

');
equal(writer.getContent(), '

', 'Parse attributes with whitespace.');
deepEqual(counter.counts, {start: 1}, 'Parse attributes with whitespace counts.');
counter = createCounter(writer);
parser = new tinymce.html.SaxParser(counter, schema);
writer.reset();
parser.parse('
text');
equal(writer.getContent(), '
text', 'Parse element with namespace.');
deepEqual(counter.counts, {start:1, text:1, end: 1}, 'Parse element with namespace counts.');
counter = createCounter(writer);
parser = new tinymce.html.SaxParser(counter, schema);
writer.reset();
parser.parse('
text');
equal(writer.getContent(), '
text', 'Parse element with dash name.');
deepEqual(counter.counts, {start:1, text:1, end:1}, 'Parse element with dash name counts.');
counter = createCounter(writer);
parser = new tinymce.html.SaxParser(counter, schema);
writer.reset();
parser.parse('
text');
equal(writer.getContent(), '
text', 'Parse element with underscore name.');
deepEqual(counter.counts, {start:1, text:1, end:1}, 'Parse element with underscore name counts.');
counter = createCounter(writer);
parser = new tinymce.html.SaxParser(counter, schema);
writer.reset();
parser.parse('text1
text2text3
text4text5');
equal(writer.getContent(), 'text1
text2text3
text4text5', 'Parse tag soup 1.');
deepEqual(counter.counts, {text:5, start: 2, end: 2}, 'Parse tag soup 1 counts.');
counter = createCounter(writer);
parser = new tinymce.html.SaxParser(counter, schema);
writer.reset();
parser.parse('text1
text2text3
text4text5');
equal(writer.getContent(), 'text1
text2text3
text4text5', 'Parse tag soup 2.');
deepEqual(counter.counts, {text: 5, start: 2, end: 2}, 'Parse tag soup 2 counts.');
counter = createCounter(writer);
parser = new tinymce.html.SaxParser(counter, schema);
writer.reset();
parser.parse('text1
text2texte>xt4text5');
equal(writer.getContent(), 'text1
text2tex<t3
te>xt4text5', 'Parse tag soup 3.');
deepEqual(counter.counts, {text: 5, start: 2, end: 2}, 'Parse tag soup 3 counts.');
counter = createCounter(writer);
parser = new tinymce.html.SaxParser(counter, schema);
writer.reset();
parser.parse('text1
text2text3');
equal(writer.getContent(), 'text1
text2text3
', 'Parse tag soup 4.');
deepEqual(counter.counts, {text: 3, start: 2, end: 2}, 'Parse tag soup 4 counts.');
counter = createCounter(writer);
parser = new tinymce.html.SaxParser(counter, schema);
writer.reset();
parser.parse('text1