@@ -46,96 +46,6 @@ describe('DqElement', () => {
4646 } ) ;
4747
4848 describe ( 'source' , ( ) => {
49- it ( 'should include the outerHTML of the element' , ( ) => {
50- const vNode = queryFixture ( '<div class="bar" id="target">Hello!</div>' ) ;
51- const outerHTML = vNode . actualNode . outerHTML ;
52- const result = new DqElement ( vNode ) ;
53- assert . equal ( result . source , outerHTML ) ;
54- } ) ;
55-
56- it ( 'should work with SVG elements' , ( ) => {
57- const vNode = queryFixture ( '<svg aria-label="foo" id="target"></svg>' ) ;
58- const result = new DqElement ( vNode ) ;
59- assert . equal ( result . source , vNode . actualNode . outerHTML ) ;
60- } ) ;
61-
62- it ( 'should work with MathML' , ( ) => {
63- const vNode = queryFixture (
64- '<math display="block" id="target">' +
65- '<mrow><msup><mi>x</mi><mn>2</mn></msup></mrow>' +
66- '</math>'
67- ) ;
68-
69- const result = new DqElement ( vNode ) ;
70- assert . equal ( result . source , vNode . actualNode . outerHTML ) ;
71- } ) ;
72-
73- it ( 'should truncate large elements' , ( ) => {
74- let div = '<div class="foo" id="target">' ;
75- for ( let i = 0 ; i < 300 ; i ++ ) {
76- div += i ;
77- }
78- div += '</div>' ;
79- const vNode = queryFixture ( div ) ;
80- const result = new DqElement ( vNode ) ;
81- assert . equal ( result . source , '<div class="foo" id="target">' ) ;
82- } ) ;
83-
84- it ( 'should truncate large attributes of large element' , ( ) => {
85- const el = document . createElement ( 'div' ) ;
86- let attributeName = 'data-' ;
87- let attributeValue = '' ;
88- for ( let i = 0 ; i < 500 ; i ++ ) {
89- attributeName += 'foo' ;
90- attributeValue += i ;
91- }
92- el . setAttribute ( attributeName , attributeValue ) ;
93-
94- const vNode = new DqElement ( el ) ;
95- assert . equal (
96- vNode . source ,
97- `<div ${ attributeName . substring ( 0 , 20 ) } ...="${ attributeValue . substring ( 0 , 20 ) } ...">`
98- ) ;
99- } ) ;
100-
101- it ( 'should remove attributes for a large element having a large number of attributes' , ( ) => {
102- let customElement = '<div id="target"' ;
103-
104- for ( let i = 0 ; i < 100 ; i ++ ) {
105- customElement += ` attr${ i } ="value${ i } "` ;
106- }
107-
108- customElement += `><div>` ;
109- const vNode = queryFixture ( customElement ) ;
110- const result = new DqElement ( vNode ) ;
111- const truncatedAttrCount = ( result . source . match ( / a t t r / g) || [ ] ) . length ;
112- assert . isBelow ( truncatedAttrCount , 100 ) ;
113- assert . isAtLeast ( truncatedAttrCount , 10 ) ;
114- } ) ;
115-
116- it ( 'should truncate a large element with long custom tag name' , ( ) => {
117- let longCustomElementTagName = new Array ( 300 ) . join ( 'b' ) ;
118- let customElement = `<${ longCustomElementTagName } id="target">A</${ longCustomElementTagName } >` ;
119- const vNode = queryFixture ( customElement ) ;
120- const result = new DqElement ( vNode ) ;
121- assert . equal ( result . source , `${ customElement . substring ( 0 , 300 ) } ...>` ) ;
122- } ) ;
123-
124- it ( 'should not truncate attributes if children are long but attribute itself is within limits' , ( ) => {
125- let el = document . createElement ( 'div' ) ;
126- let attributeValue = '' ;
127- let innerHtml = '' ;
128- for ( let i = 0 ; i < 50 ; i ++ ) {
129- attributeValue += 'a' ;
130- innerHtml += 'foobar' ;
131- }
132- el . setAttribute ( 'long-attribute' , attributeValue ) ;
133- el . innerHTML = innerHtml ;
134-
135- const vNode = new DqElement ( el ) ;
136- assert . equal ( vNode . source , `<div long-attribute="${ attributeValue } ">` ) ;
137- } ) ;
138-
13949 it ( 'should use spec object over passed element' , ( ) => {
14050 const vNode = queryFixture ( '<div id="target" class="bar">Hello!</div>' ) ;
14151 const spec = { source : 'woot' } ;
0 commit comments