suite('getLocationInfoForPosition', () => {
const parser = new HtmlParser();
test('works for an empty string', () => {
const allKindsSpaceSeparated = getAllKindsSpaceSeparated('');
assert.equal(allKindsSpaceSeparated, 'text');
});
test('works when just starting a tag', () => {
const allKindsSpaceSeparated = getAllKindsSpaceSeparated('<t');
// We assume that you're starting to write an html tag in a text node, so
// this works.
assert.equal(allKindsSpaceSeparated, 'text text text');
});
test('works with a closed tag', () => {
const allKindsSpaceSeparated = getAllKindsSpaceSeparated('<t></t>');
assert.equal(
allKindsSpaceSeparated,
'text tagName tagName text endTag endTag endTag text');
});
test('works with an unclosed tag', () => {
const allKindsSpaceSeparated = getAllKindsSpaceSeparated('<t>');
assert.equal(allKindsSpaceSeparated, 'text tagName tagName text');
});
test('works for a closed tag with empty attributes section', () => {
const allKindsSpaceSeparated = getAllKindsSpaceSeparated('<t ></t>');
assert.equal(
allKindsSpaceSeparated,
'text tagName tagName attribute text endTag endTag endTag text');
});
test('works for an unclosed tag with empty attributes section', () => {
const allKindsSpaceSeparated = getAllKindsSpaceSeparated('<t >');
assert.equal(allKindsSpaceSeparated, 'text tagName tagName attribute text');
});
test('works for a closed tag with a boolean attribute', () => {
const allKindsSpaceSeparated = getAllKindsSpaceSeparated('<t a></t>');
assert.equal(
allKindsSpaceSeparated, 'text tagName tagName attribute attribute ' +
'text endTag endTag endTag text');
});
test('works for an unclosed tag with a boolean attribute', () => {
const allKindsSpaceSeparated = getAllKindsSpaceSeparated('<t a>');
assert.equal(
allKindsSpaceSeparated,
'text tagName tagName attribute attribute text');
});
test('works with an empty attribute value in a closed tag', () => {
let allKindsSpaceSeparated = getAllKindsSpaceSeparated('<t a=></t>');
assert.equal(
allKindsSpaceSeparated,
'text tagName tagName attribute attribute attributeValue text ' +
'endTag endTag endTag text');
allKindsSpaceSeparated = getAllKindsSpaceSeparated('<t a=""></t>');
assert.equal(
allKindsSpaceSeparated, 'text tagName tagName attribute attribute ' +
'attributeValue attributeValue attributeValue text ' +
'endTag endTag endTag text');
allKindsSpaceSeparated = getAllKindsSpaceSeparated('<t a=\'\'></t>');
assert.equal(
allKindsSpaceSeparated, 'text tagName tagName attribute attribute ' +
'attributeValue attributeValue attributeValue text ' +
'endTag endTag endTag text');
});
test('works with an empty attribute value in an unclosed tag', () => {
let allKindsSpaceSeparated = getAllKindsSpaceSeparated('<t a=>');
assert.equal(
allKindsSpaceSeparated,
'text tagName tagName attribute attribute attributeValue text');
allKindsSpaceSeparated = getAllKindsSpaceSeparated('<t a="">');
assert.equal(
allKindsSpaceSeparated,
'text tagName tagName attribute attribute attributeValue attributeValue attributeValue text');
allKindsSpaceSeparated = getAllKindsSpaceSeparated('<t a=\'\'>');
assert.equal(
allKindsSpaceSeparated,
'text tagName tagName attribute attribute attributeValue attributeValue attributeValue text');
});
test(`works with a closed tag with text content`, () => {
const allKindsSpaceSeparated = getAllKindsSpaceSeparated('<t> </t>');
assert.equal(
allKindsSpaceSeparated,
'text tagName tagName text text endTag endTag endTag text');
});
test(`works with an unclosed tag with text content`, () => {
const allKindsSpaceSeparated = getAllKindsSpaceSeparated('<t> ');
assert.equal(allKindsSpaceSeparated, 'text tagName tagName text text');
//.........这里部分代码省略.........
请发表评论