import insertTag from '../src'; import { expect } from 'chai'; let mark = ''; describe('real world', () => { it('escaped xml', () => { expect(insertTag('xxx<yyyzzz', mark, [0, 3, 0, 4])).to.equal( 'xxx<yyyzzz' ); expect(insertTag('xxx<yyyzzz', mark, [0, 4, 0, 5])).to.equal( 'xxx<yyyzzz' ); expect(insertTag('xxx<yy&yzzz', mark, [0, 1, 0, 8])).to.equal( 'xxx<yy&yzzz' ); }); }); describe('insertTag', () => { it('no tag in xml string', () => { let xmlString = 'xxx'; expect(insertTag(xmlString, mark, [0, 0, 0, 1])).to.equal('xxx'); expect(insertTag(xmlString, mark, [0, 0, 0, 2])).to.equal('xxx'); expect(insertTag(xmlString, mark, [0, 0, 0, 3])).to.equal('xxx'); expect(insertTag(xmlString, mark, [0, 1, 0, 2])).to.equal('xxx'); expect(insertTag(xmlString, mark, [0, 1, 0, 3])).to.equal('xxx'); expect(insertTag(xmlString, mark, [0, 2, 0, 3])).to.equal('xxx'); }); it('xxx', () => { let xmlString = 'xxx'; expect(insertTag(xmlString, mark, [0, 0, 0, 1])).to.equal('xxx'); expect(insertTag(xmlString, mark, [0, 0, 0, 2])).to.equal('xxx'); expect(insertTag(xmlString, mark, [0, 0, 0, 3])).to.equal('xxx'); expect(insertTag(xmlString, mark, [0, 1, 0, 2])).to.equal('xxx'); expect(insertTag(xmlString, mark, [0, 1, 0, 3])).to.equal('xxx'); expect(insertTag(xmlString, mark, [0, 2, 0, 3])).to.equal('xxx'); }); it('tag with attribute', () => { expect(insertTag('xxx', '', [0, 0, 0, 1])).to.equal( 'xxx' ); }); it('xxxyyy', () => { let xmlString = 'xxxyyy'; expect(insertTag(xmlString, mark, [0, 0, 0, 3])).to.equal('xxxyyy'); expect(insertTag(xmlString, mark, [0, 0, 0, 4])).to.equal('xxxyyy'); expect(insertTag(xmlString, mark, [0, 0, 0, 5])).to.equal('xxxyyy'); expect(insertTag(xmlString, mark, [0, 0, 0, 6])).to.equal('xxxyyy'); expect(insertTag(xmlString, mark, [0, 1, 0, 4])).to.equal( 'xxxyyy' ); expect(insertTag(xmlString, mark, [0, 2, 0, 5])).to.equal( 'xxxyyy' ); expect(insertTag(xmlString, mark, [0, 3, 0, 6])).to.equal('xxxyyy'); }); it('xxxyyy', () => { let xmlString = 'xxxyyy'; expect(insertTag(xmlString, mark, [0, 0, 0, 4])).to.equal( 'xxxyyy' ); expect(insertTag(xmlString, mark, [0, 1, 0, 5])).to.equal( 'xxxyyy' ); }); it('xxxyyy', () => { let xmlString = 'xxxyyy'; expect(insertTag(xmlString, mark, [0, 0, 0, 3])).to.equal('xxxyyy'); expect(insertTag(xmlString, mark, [0, 0, 0, 4])).to.equal( 'xxxyyy' ); expect(insertTag(xmlString, mark, [0, 0, 0, 5])).to.equal( 'xxxyyy' ); expect(insertTag(xmlString, mark, [0, 0, 0, 6])).to.equal('xxxyyy'); expect(insertTag(xmlString, mark, [0, 1, 0, 4])).to.equal( 'xxxyyy' ); expect(insertTag(xmlString, mark, [0, 1, 0, 6])).to.equal('xxxyyy'); expect(insertTag(xmlString, mark, [0, 2, 0, 3])).to.equal('xxxyyy'); expect(insertTag(xmlString, mark, [0, 3, 0, 5])).to.equal('xxxyyy'); expect(insertTag(xmlString, mark, [0, 3, 0, 6])).to.equal('xxxyyy'); }); it('xxxyyy', () => { let xmlString = 'xxxyyy'; expect(insertTag(xmlString, mark, [0, 0, 0, 4])).to.equal( 'xxxyyy' ); expect(insertTag(xmlString, mark, [0, 0, 0, 6])).to.equal( 'xxxyyy' ); expect(insertTag(xmlString, mark, [0, 1, 0, 6])).to.equal( 'xxxyyy' ); expect(insertTag(xmlString, mark, [0, 3, 0, 6])).to.equal( 'xxxyyy' ); }); it('xxxyyyzzz', () => { let xmlString = 'xxxyyyzzz'; expect(insertTag(xmlString, mark, [0, 0, 0, 4])).to.equal( 'xxxyyyzzz' ); expect(insertTag(xmlString, mark, [0, 1, 0, 5])).to.equal( 'xxxyyyzzz' ); expect(insertTag(xmlString, mark, [0, 2, 0, 6])).to.equal('xxxyyyzzz'); expect(insertTag(xmlString, mark, [0, 3, 0, 7])).to.equal('xxxyyyzzz'); expect(insertTag(xmlString, mark, [0, 4, 0, 8])).to.equal( 'xxxyyyzzz' ); expect(insertTag(xmlString, mark, [0, 5, 0, 9])).to.equal( 'xxxyyyzzz' ); expect(insertTag(xmlString, mark, [0, 4, 0, 5])).to.equal('xxxyyyzzz'); expect(insertTag(xmlString, mark, [0, 3, 0, 6])).to.equal('xxxyyyzzz'); expect(insertTag(xmlString, mark, [0, 2, 0, 7])).to.equal('xxxyyyzzz'); }); it('qqqxxxyyyzzzppp', () => { let xmlString = 'qqqxxxyyyzzzppp'; expect(insertTag(xmlString, mark, [0, 0, 0, 4])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 1, 0, 5])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 2, 0, 6])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 3, 0, 7])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 4, 0, 8])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 5, 0, 9])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 6, 0, 10])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 7, 0, 11])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 8, 0, 12])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 9, 0, 13])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 10, 0, 14])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 11, 0, 15])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 0, 0, 8])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 1, 0, 9])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 2, 0, 10])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 3, 0, 11])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 4, 0, 12])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 5, 0, 13])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 6, 0, 14])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 7, 0, 15])).to.equal( 'qqqxxxyyyzzzppp' ); }); it('qqqxxxyyyzzzppp', () => { let xmlString = 'qqqxxxyyyzzzppp'; expect(insertTag(xmlString, mark, [0, 0, 0, 4])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 1, 0, 5])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 2, 0, 6])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 3, 0, 7])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 4, 0, 8])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 5, 0, 9])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 6, 0, 10])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 7, 0, 11])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 8, 0, 12])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 9, 0, 13])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 10, 0, 14])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 11, 0, 15])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 0, 0, 8])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 1, 0, 9])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 2, 0, 10])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 3, 0, 11])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 4, 0, 12])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 5, 0, 13])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 6, 0, 14])).to.equal( 'qqqxxxyyyzzzppp' ); expect(insertTag(xmlString, mark, [0, 7, 0, 15])).to.equal( 'qqqxxxyyyzzzppp' ); }); it('qqqxxxyyyppp', () => { let xmlString = 'qqqxxxyyyppp'; expect(insertTag(xmlString, mark, [0, 0, 0, 4])).to.equal( 'qqqxxxyyyppp' ); expect(insertTag(xmlString, mark, [0, 0, 0, 7])).to.equal( 'qqqxxxyyyppp' ); expect(insertTag(xmlString, mark, [0, 0, 0, 10])).to.equal( 'qqqxxxyyyppp' ); expect(insertTag(xmlString, mark, [0, 3, 0, 5])).to.equal( 'qqqxxxyyyppp' ); expect(insertTag(xmlString, mark, [0, 3, 0, 8])).to.equal( 'qqqxxxyyyppp' ); expect(insertTag(xmlString, mark, [0, 3, 0, 11])).to.equal( 'qqqxxxyyyppp' ); }); it('qqqxxxyyyppp', () => { let xmlString = 'qqqxxxyyyppp'; expect(insertTag(xmlString, mark, [0, 0, 0, 4])).to.equal( 'qqqxxxyyyppp' ); expect(insertTag(xmlString, mark, [0, 0, 0, 7])).to.equal( 'qqqxxxyyyppp' ); expect(insertTag(xmlString, mark, [0, 0, 0, 10])).to.equal( 'qqqxxxyyyppp' ); expect(insertTag(xmlString, mark, [0, 3, 0, 5])).to.equal( 'qqqxxxyyyppp' ); expect(insertTag(xmlString, mark, [0, 3, 0, 9])).to.equal( 'qqqxxxyyyppp' ); expect(insertTag(xmlString, mark, [0, 3, 0, 11])).to.equal( 'qqqxxxyyyppp' ); expect(insertTag(xmlString, mark, [0, 2, 0, 9])).to.equal( 'qqqxxxyyyppp' ); }); it('x\nxx', () => { let xmlString = 'x\nxx'; expect(insertTag(xmlString, mark, [0, 0, 0, 1])).to.equal('x\nxx'); expect(insertTag(xmlString, mark, [0, 0, 1, 1])).to.equal('x\nxx'); expect(insertTag(xmlString, mark, [0, 0, 1, 2])).to.equal('x\nxx'); expect(insertTag(xmlString, mark, [1, 0, 1, 1])).to.equal('x\nxx'); expect(insertTag(xmlString, mark, [1, 0, 1, 2])).to.equal('x\nxx'); expect(insertTag(xmlString, mark, [1, 1, 1, 2])).to.equal('x\nxx'); }); });