|
|
@@ -12,6 +12,7 @@ import Model from '/ckeditor5/ui/model.js';
|
|
|
import CKEditorError from '/ckeditor5/utils/ckeditorerror.js';
|
|
|
import EmitterMixin from '/ckeditor5/utils/emittermixin.js';
|
|
|
import DOMEmitterMixin from '/ckeditor5/ui/domemittermixin.js';
|
|
|
+import normalizeHtml from '/ckeditor5/utils/normalizehtml.js';
|
|
|
|
|
|
testUtils.createSinonSandbox();
|
|
|
|
|
|
@@ -126,7 +127,7 @@ describe( 'Template', () => {
|
|
|
|
|
|
expect( el ).to.be.instanceof( HTMLElement );
|
|
|
expect( el.parentNode ).to.be.null;
|
|
|
- expect( el.outerHTML ).to.be.equal( '<p></p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.be.equal( '<p></p>' );
|
|
|
expect( el.namespaceURI ).to.be.equal( 'http://www.w3.org/1999/xhtml' );
|
|
|
} );
|
|
|
|
|
|
@@ -151,7 +152,7 @@ describe( 'Template', () => {
|
|
|
|
|
|
expect( el ).to.be.instanceof( HTMLElement );
|
|
|
expect( el.parentNode ).to.be.null;
|
|
|
- expect( el.outerHTML ).to.be.equal( '<p class="a b" x="bar">foo</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.be.equal( '<p class="a b" x="bar">foo</p>' );
|
|
|
expect( el.attributes.getNamedItem( 'class' ).namespaceURI ).to.be.null;
|
|
|
} );
|
|
|
|
|
|
@@ -165,7 +166,7 @@ describe( 'Template', () => {
|
|
|
children: [ 'foo' ]
|
|
|
} ).render();
|
|
|
|
|
|
- expect( el.outerHTML ).to.be.equal( '<p>foo</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.be.equal( '<p>foo</p>' );
|
|
|
} );
|
|
|
|
|
|
it( 'renders HTMLElement attributes – falsy values', () => {
|
|
|
@@ -179,7 +180,7 @@ describe( 'Template', () => {
|
|
|
children: [ 'foo' ]
|
|
|
} ).render();
|
|
|
|
|
|
- expect( el.outerHTML ).to.be.equal( '<p y="foo">foo</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.be.equal( '<p y="foo">foo</p>' );
|
|
|
} );
|
|
|
|
|
|
it( 'renders HTMLElement attributes in a custom namespace', () => {
|
|
|
@@ -198,7 +199,7 @@ describe( 'Template', () => {
|
|
|
children: [ 'foo' ]
|
|
|
} ).render();
|
|
|
|
|
|
- expect( el.outerHTML ).to.be.equal( '<p class="a b" x="bar">foo</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.be.equal( '<p class="a b" x="bar">foo</p>' );
|
|
|
expect( el.attributes.getNamedItem( 'class' ).namespaceURI ).to.equal( 'foo' );
|
|
|
expect( el.attributes.getNamedItem( 'x' ).namespaceURI ).to.equal( 'abc' );
|
|
|
} );
|
|
|
@@ -227,7 +228,7 @@ describe( 'Template', () => {
|
|
|
]
|
|
|
} ).render();
|
|
|
|
|
|
- expect( el.outerHTML ).to.be.equal( '<p a="A"><b>B</b><i>C<b>D</b></i></p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.be.equal( '<p a="A"><b>B</b><i>C<b>D</b></i></p>' );
|
|
|
} );
|
|
|
|
|
|
it( 'creates a Text node', () => {
|
|
|
@@ -246,7 +247,7 @@ describe( 'Template', () => {
|
|
|
]
|
|
|
} ).render();
|
|
|
|
|
|
- expect( el.outerHTML ).to.be.equal( '<p>foobar</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.be.equal( '<p>foobar</p>' );
|
|
|
} );
|
|
|
|
|
|
it( 'creates multiple child Text Nodes', () => {
|
|
|
@@ -262,7 +263,7 @@ describe( 'Template', () => {
|
|
|
} ).render();
|
|
|
|
|
|
expect( el.childNodes ).to.have.length( 5 );
|
|
|
- expect( el.outerHTML ).to.be.equal( '<p>abcdef</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.be.equal( '<p>abcdef</p>' );
|
|
|
} );
|
|
|
|
|
|
it( 'activates model bindings – root', () => {
|
|
|
@@ -336,7 +337,7 @@ describe( 'Template', () => {
|
|
|
}
|
|
|
} );
|
|
|
|
|
|
- expect( el.outerHTML ).to.equal( '<p style="color: red"></p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p style="color:red;"></p>' );
|
|
|
} );
|
|
|
|
|
|
it( 'renders as a static value (Array of values)', () => {
|
|
|
@@ -347,7 +348,7 @@ describe( 'Template', () => {
|
|
|
}
|
|
|
} );
|
|
|
|
|
|
- expect( el.outerHTML ).to.equal( '<p style="color: red; display: block;"></p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p style="color:red;display:block;"></p>' );
|
|
|
} );
|
|
|
|
|
|
it( 'renders as a value bound to the model', () => {
|
|
|
@@ -358,11 +359,11 @@ describe( 'Template', () => {
|
|
|
}
|
|
|
} );
|
|
|
|
|
|
- expect( el.outerHTML ).to.equal( '<p style="width: 10px"></p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p style="width:10px;"></p>' );
|
|
|
|
|
|
observable.width = '1em';
|
|
|
|
|
|
- expect( el.outerHTML ).to.equal( '<p style="width: 1em"></p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p style="width:1em;"></p>' );
|
|
|
} );
|
|
|
|
|
|
it( 'renders as a value bound to the model (Array of bindings)', () => {
|
|
|
@@ -376,11 +377,11 @@ describe( 'Template', () => {
|
|
|
}
|
|
|
} );
|
|
|
|
|
|
- expect( el.outerHTML ).to.equal( '<p style="width: 10px; background-color: yellow;"></p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p style="width:10px;background-color:yellow;"></p>' );
|
|
|
|
|
|
observable.width = '1em';
|
|
|
|
|
|
- expect( el.outerHTML ).to.equal( '<p style="width: 1em; background-color: yellow;"></p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p style="width:1em;background-color:yellow;"></p>' );
|
|
|
} );
|
|
|
|
|
|
describe( 'object', () => {
|
|
|
@@ -396,12 +397,12 @@ describe( 'Template', () => {
|
|
|
}
|
|
|
} );
|
|
|
|
|
|
- expect( el.outerHTML ).to.equal( '<p style="width: 10px; height: 10px; background-color: yellow;"></p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p style="width:10px;height:10px;background-color:yellow;"></p>' );
|
|
|
|
|
|
observable.width = '20px';
|
|
|
observable.backgroundColor = 'green';
|
|
|
|
|
|
- expect( el.outerHTML ).to.equal( '<p style="width: 20px; height: 10px; background-color: green;"></p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p style="width:20px;height:10px;background-color:green;"></p>' );
|
|
|
} );
|
|
|
|
|
|
it( 'renders with empty string attributes', () => {
|
|
|
@@ -415,11 +416,11 @@ describe( 'Template', () => {
|
|
|
}
|
|
|
} );
|
|
|
|
|
|
- expect( el.outerHTML ).to.be.equal( '<p style="background-color: yellow;"></p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.be.equal( '<p style="background-color:yellow;"></p>' );
|
|
|
|
|
|
observable.backgroundColor = '';
|
|
|
|
|
|
- expect( el.outerHTML ).to.be.equal( '<p></p>' ); // x
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.be.equal( '<p></p>' );
|
|
|
} );
|
|
|
|
|
|
it( 'renders with falsy values', () => {
|
|
|
@@ -434,7 +435,7 @@ describe( 'Template', () => {
|
|
|
}
|
|
|
} );
|
|
|
|
|
|
- expect( el.outerHTML ).to.be.equal( '<p></p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.be.equal( '<p></p>' );
|
|
|
} );
|
|
|
} );
|
|
|
} );
|
|
|
@@ -477,7 +478,7 @@ describe( 'Template', () => {
|
|
|
new Template( {} ).apply( el );
|
|
|
new Template( {} ).apply( text );
|
|
|
|
|
|
- expect( el.outerHTML ).to.be.equal( '<div></div>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.be.equal( '<div></div>' );
|
|
|
expect( text.textContent ).to.be.equal( '' );
|
|
|
} );
|
|
|
|
|
|
@@ -498,7 +499,7 @@ describe( 'Template', () => {
|
|
|
}
|
|
|
} ).apply( el );
|
|
|
|
|
|
- expect( el.outerHTML ).to.be.equal( '<div class="a b" x="bar"></div>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.be.equal( '<div class="a b" x="bar"></div>' );
|
|
|
} );
|
|
|
|
|
|
it( 'doesn\'t apply new child to an HTMLElement – Text Node', () => {
|
|
|
@@ -507,7 +508,7 @@ describe( 'Template', () => {
|
|
|
children: [ 'foo' ]
|
|
|
} ).apply( el );
|
|
|
|
|
|
- expect( el.outerHTML ).to.be.equal( '<div></div>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.be.equal( '<div></div>' );
|
|
|
} );
|
|
|
|
|
|
it( 'doesn\'t apply new child to an HTMLElement – HTMLElement', () => {
|
|
|
@@ -520,7 +521,7 @@ describe( 'Template', () => {
|
|
|
]
|
|
|
} ).apply( el );
|
|
|
|
|
|
- expect( el.outerHTML ).to.be.equal( '<div></div>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.be.equal( '<div></div>' );
|
|
|
} );
|
|
|
|
|
|
it( 'applies new textContent to an existing Text Node of an HTMLElement', () => {
|
|
|
@@ -531,7 +532,7 @@ describe( 'Template', () => {
|
|
|
children: [ 'foo' ]
|
|
|
} ).apply( el );
|
|
|
|
|
|
- expect( el.outerHTML ).to.be.equal( '<div>foo</div>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.be.equal( '<div>foo</div>' );
|
|
|
} );
|
|
|
|
|
|
it( 'applies attributes and TextContent to a DOM tree', () => {
|
|
|
@@ -554,7 +555,7 @@ describe( 'Template', () => {
|
|
|
]
|
|
|
} ).apply( el );
|
|
|
|
|
|
- expect( el.outerHTML ).to.be.equal( '<div class="parent">Children: <span class="child"></span></div>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.be.equal( '<div class="parent">Children: <span class="child"></span></div>' );
|
|
|
} );
|
|
|
|
|
|
it( 'should work for deep DOM structure', () => {
|
|
|
@@ -567,7 +568,7 @@ describe( 'Template', () => {
|
|
|
el.appendChild( childA );
|
|
|
el.appendChild( childB );
|
|
|
|
|
|
- expect( el.outerHTML ).to.equal( '<div><a>anchor</a><b>bold</b></div>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<div><a>anchor</a><b>bold</b></div>' );
|
|
|
|
|
|
const spy1 = testUtils.sinon.spy();
|
|
|
const spy2 = testUtils.sinon.spy();
|
|
|
@@ -613,14 +614,14 @@ describe( 'Template', () => {
|
|
|
}
|
|
|
} ).apply( el );
|
|
|
|
|
|
- expect( el.outerHTML ).to.equal( '<div id="BAR" class="applied-parent-qux">' +
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<div class="applied-parent-qux" id="BAR">' +
|
|
|
'<a class="applied-A-bar" id="applied-A">Text applied to childA.</a>' +
|
|
|
'<b class="applied-B-qux" id="applied-B">Text applied to childB.</b>' +
|
|
|
'</div>' );
|
|
|
|
|
|
observable.foo = 'updated';
|
|
|
|
|
|
- expect( el.outerHTML ).to.equal( '<div id="UPDATED" class="applied-parent-qux">' +
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<div class="applied-parent-qux" id="UPDATED">' +
|
|
|
'<a class="applied-A-updated" id="applied-A">Text applied to childA.</a>' +
|
|
|
'<b class="applied-B-qux" id="applied-B">Text applied to childB.</b>' +
|
|
|
'</div>' );
|
|
|
@@ -907,10 +908,10 @@ describe( 'Template', () => {
|
|
|
children: [ 'abc' ]
|
|
|
} );
|
|
|
|
|
|
- expect( el.outerHTML ).to.equal( '<p class="bar">abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p class="bar">abc</p>' );
|
|
|
|
|
|
observable.foo = 'baz';
|
|
|
- expect( el.outerHTML ).to.equal( '<p class="baz">abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p class="baz">abc</p>' );
|
|
|
expect( el.attributes.getNamedItem( 'class' ).namespaceURI ).to.be.null;
|
|
|
} );
|
|
|
|
|
|
@@ -924,10 +925,10 @@ describe( 'Template', () => {
|
|
|
]
|
|
|
} );
|
|
|
|
|
|
- expect( el.outerHTML ).to.equal( '<p>bar</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p>bar</p>' );
|
|
|
|
|
|
observable.foo = 'baz';
|
|
|
- expect( el.outerHTML ).to.equal( '<p>baz</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p>baz</p>' );
|
|
|
} );
|
|
|
|
|
|
it( 'allows binding attribute to the observable – value processing', () => {
|
|
|
@@ -945,10 +946,10 @@ describe( 'Template', () => {
|
|
|
} );
|
|
|
|
|
|
observable.foo = 3;
|
|
|
- expect( el.outerHTML ).to.equal( '<p class="positive">positive</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p class="positive">positive</p>' );
|
|
|
|
|
|
observable.foo = -7;
|
|
|
- expect( el.outerHTML ).to.equal( '<p class="negative">negative</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p class="negative">negative</p>' );
|
|
|
} );
|
|
|
|
|
|
it( 'allows binding attribute to the observable – value processing (use Node)', () => {
|
|
|
@@ -969,10 +970,10 @@ describe( 'Template', () => {
|
|
|
} );
|
|
|
|
|
|
observable.foo = 3;
|
|
|
- expect( el.outerHTML ).to.equal( '<p class="HTMLElement positive"></p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p class="HTMLElement positive"></p>' );
|
|
|
|
|
|
observable.foo = -7;
|
|
|
- expect( el.outerHTML ).to.equal( '<p></p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p></p>' );
|
|
|
} );
|
|
|
|
|
|
it( 'allows binding attribute to the observable – custom callback', () => {
|
|
|
@@ -990,10 +991,10 @@ describe( 'Template', () => {
|
|
|
} );
|
|
|
|
|
|
observable.foo = 'moo';
|
|
|
- expect( el.outerHTML ).to.equal( '<p>moo</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p>moo</p>' );
|
|
|
|
|
|
observable.foo = 'changed';
|
|
|
- expect( el.outerHTML ).to.equal( '<p class="changed">changed</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p class="changed">changed</p>' );
|
|
|
} );
|
|
|
|
|
|
it( 'allows binding attribute to the observable – array of bindings (HTMLElement attribute)', () => {
|
|
|
@@ -1013,11 +1014,11 @@ describe( 'Template', () => {
|
|
|
|
|
|
observable.foo = 'a';
|
|
|
observable.baz = 'b';
|
|
|
- expect( el.outerHTML ).to.equal( '<p class="ck-class a b foo-is-a ck-end">abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p class="ck-class a b foo-is-a ck-end">abc</p>' );
|
|
|
|
|
|
observable.foo = 'c';
|
|
|
observable.baz = 'd';
|
|
|
- expect( el.outerHTML ).to.equal( '<p class="ck-class c d foo-is-c ck-end">abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p class="ck-class c d foo-is-c ck-end">abc</p>' );
|
|
|
} );
|
|
|
|
|
|
it( 'allows binding attribute to the observable – array of bindings (Text Node)', () => {
|
|
|
@@ -1040,11 +1041,11 @@ describe( 'Template', () => {
|
|
|
|
|
|
observable.foo = 'a';
|
|
|
observable.baz = 'b';
|
|
|
- expect( el.outerHTML ).to.equal( '<p>ck-class a b foo-is-a ck-end</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p>ck-class a b foo-is-a ck-end</p>' );
|
|
|
|
|
|
observable.foo = 'c';
|
|
|
observable.baz = 'd';
|
|
|
- expect( el.outerHTML ).to.equal( '<p>ck-class c d foo-is-c ck-end</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p>ck-class c d foo-is-c ck-end</p>' );
|
|
|
} );
|
|
|
|
|
|
it( 'allows binding attribute to the observable – falsy values', () => {
|
|
|
@@ -1060,22 +1061,22 @@ describe( 'Template', () => {
|
|
|
} );
|
|
|
|
|
|
observable.foo = 'bar';
|
|
|
- expect( el.outerHTML ).to.equal( '<p simple="bar" complex="bar" zero="0 bar" emptystring="bar">abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p complex="bar" emptystring="bar" simple="bar" zero="0 bar">abc</p>' );
|
|
|
|
|
|
observable.foo = 0;
|
|
|
- expect( el.outerHTML ).to.equal( '<p simple="0" complex="0" zero="0 0" emptystring="0">abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p complex="0" emptystring="0" simple="0" zero="0 0">abc</p>' );
|
|
|
|
|
|
observable.foo = false;
|
|
|
- expect( el.outerHTML ).to.equal( '<p zero="0">abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p zero="0">abc</p>' );
|
|
|
|
|
|
observable.foo = null;
|
|
|
- expect( el.outerHTML ).to.equal( '<p zero="0">abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p zero="0">abc</p>' );
|
|
|
|
|
|
observable.foo = undefined;
|
|
|
- expect( el.outerHTML ).to.equal( '<p zero="0">abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p zero="0">abc</p>' );
|
|
|
|
|
|
observable.foo = '';
|
|
|
- expect( el.outerHTML ).to.equal( '<p zero="0">abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p zero="0">abc</p>' );
|
|
|
} );
|
|
|
|
|
|
it( 'allows binding attribute to the observable – a custom namespace', () => {
|
|
|
@@ -1098,11 +1099,11 @@ describe( 'Template', () => {
|
|
|
} );
|
|
|
|
|
|
observable.foo = 'bar';
|
|
|
- expect( el.outerHTML ).to.equal( '<p class="bar" custom="bar qux">abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p class="bar" custom="bar qux">abc</p>' );
|
|
|
expect( el.attributes.getNamedItem( 'class' ).namespaceURI ).to.equal( 'foo' );
|
|
|
|
|
|
observable.foo = 'baz';
|
|
|
- expect( el.outerHTML ).to.equal( '<p class="baz" custom="baz qux">abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p class="baz" custom="baz qux">abc</p>' );
|
|
|
expect( el.attributes.getNamedItem( 'class' ).namespaceURI ).to.equal( 'foo' );
|
|
|
} );
|
|
|
} );
|
|
|
@@ -1130,25 +1131,25 @@ describe( 'Template', () => {
|
|
|
} );
|
|
|
|
|
|
observable.foo = 'bar';
|
|
|
- expect( el.outerHTML ).to.equal( '<p class="true">abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p class="true">abc</p>' );
|
|
|
|
|
|
observable.foo = true;
|
|
|
- expect( el.outerHTML ).to.equal( '<p class="true">abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p class="true">abc</p>' );
|
|
|
|
|
|
observable.foo = 0;
|
|
|
- expect( el.outerHTML ).to.equal( '<p class="true">abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p class="true">abc</p>' );
|
|
|
|
|
|
observable.foo = false;
|
|
|
- expect( el.outerHTML ).to.equal( '<p>abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p>abc</p>' );
|
|
|
|
|
|
observable.foo = null;
|
|
|
- expect( el.outerHTML ).to.equal( '<p>abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p>abc</p>' );
|
|
|
|
|
|
observable.foo = undefined;
|
|
|
- expect( el.outerHTML ).to.equal( '<p>abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p>abc</p>' );
|
|
|
|
|
|
observable.foo = '';
|
|
|
- expect( el.outerHTML ).to.equal( '<p>abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p>abc</p>' );
|
|
|
} );
|
|
|
|
|
|
// TODO: Is this alright? It makes sense but it's pretty useless. Text Node cannot be
|
|
|
@@ -1164,25 +1165,25 @@ describe( 'Template', () => {
|
|
|
} );
|
|
|
|
|
|
observable.foo = 'abc';
|
|
|
- expect( el.outerHTML ).to.equal( '<p>true</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p>true</p>' );
|
|
|
|
|
|
observable.foo = true;
|
|
|
- expect( el.outerHTML ).to.equal( '<p>true</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p>true</p>' );
|
|
|
|
|
|
observable.foo = 0;
|
|
|
- expect( el.outerHTML ).to.equal( '<p>true</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p>true</p>' );
|
|
|
|
|
|
observable.foo = false;
|
|
|
- expect( el.outerHTML ).to.equal( '<p></p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p></p>' );
|
|
|
|
|
|
observable.foo = null;
|
|
|
- expect( el.outerHTML ).to.equal( '<p></p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p></p>' );
|
|
|
|
|
|
observable.foo = undefined;
|
|
|
- expect( el.outerHTML ).to.equal( '<p></p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p></p>' );
|
|
|
|
|
|
observable.foo = '';
|
|
|
- expect( el.outerHTML ).to.equal( '<p></p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p></p>' );
|
|
|
} );
|
|
|
|
|
|
it( 'allows binding attribute to the observable – value of an attribute (HTMLElement attribute)', () => {
|
|
|
@@ -1195,25 +1196,25 @@ describe( 'Template', () => {
|
|
|
} );
|
|
|
|
|
|
observable.foo = 'bar';
|
|
|
- expect( el.outerHTML ).to.equal( '<p class="bar">abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p class="bar">abc</p>' );
|
|
|
|
|
|
observable.foo = true;
|
|
|
- expect( el.outerHTML ).to.equal( '<p class="bar">abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p class="bar">abc</p>' );
|
|
|
|
|
|
observable.foo = 0;
|
|
|
- expect( el.outerHTML ).to.equal( '<p class="bar">abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p class="bar">abc</p>' );
|
|
|
|
|
|
observable.foo = 64;
|
|
|
- expect( el.outerHTML ).to.equal( '<p class="bar">abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p class="bar">abc</p>' );
|
|
|
|
|
|
observable.foo = false;
|
|
|
- expect( el.outerHTML ).to.equal( '<p>abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p>abc</p>' );
|
|
|
|
|
|
observable.foo = null;
|
|
|
- expect( el.outerHTML ).to.equal( '<p>abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p>abc</p>' );
|
|
|
|
|
|
observable.foo = undefined;
|
|
|
- expect( el.outerHTML ).to.equal( '<p>abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p>abc</p>' );
|
|
|
} );
|
|
|
|
|
|
it( 'allows binding attribute to the observable – value of an attribute (Text Node)', () => {
|
|
|
@@ -1227,13 +1228,13 @@ describe( 'Template', () => {
|
|
|
} );
|
|
|
|
|
|
observable.foo = 'bar';
|
|
|
- expect( el.outerHTML ).to.equal( '<p>bar</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p>bar</p>' );
|
|
|
|
|
|
observable.foo = false;
|
|
|
- expect( el.outerHTML ).to.equal( '<p></p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p></p>' );
|
|
|
|
|
|
observable.foo = 64;
|
|
|
- expect( el.outerHTML ).to.equal( '<p>bar</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p>bar</p>' );
|
|
|
} );
|
|
|
|
|
|
it( 'allows binding attribute to the observable – array of bindings (HTMLElement attribute)', () => {
|
|
|
@@ -1251,10 +1252,10 @@ describe( 'Template', () => {
|
|
|
} );
|
|
|
|
|
|
observable.foo = observable.bar = true;
|
|
|
- expect( el.outerHTML ).to.equal( '<p class="ck-class foo-set ck-end">abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p class="ck-class foo-set ck-end">abc</p>' );
|
|
|
|
|
|
observable.foo = observable.bar = false;
|
|
|
- expect( el.outerHTML ).to.equal( '<p class="ck-class bar-not-set ck-end">abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p class="ck-class bar-not-set ck-end">abc</p>' );
|
|
|
} );
|
|
|
|
|
|
it( 'allows binding attribute to the observable – value of an attribute processed by a callback', () => {
|
|
|
@@ -1267,13 +1268,13 @@ describe( 'Template', () => {
|
|
|
} );
|
|
|
|
|
|
observable.foo = 'bar';
|
|
|
- expect( el.outerHTML ).to.equal( '<p>abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p>abc</p>' );
|
|
|
|
|
|
observable.foo = false;
|
|
|
- expect( el.outerHTML ).to.equal( '<p class="there–is–no–foo">abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p class="there–is–no–foo">abc</p>' );
|
|
|
|
|
|
observable.foo = 64;
|
|
|
- expect( el.outerHTML ).to.equal( '<p>abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p>abc</p>' );
|
|
|
} );
|
|
|
|
|
|
it( 'allows binding attribute to the observable – value of an attribute processed by a callback (use Node)', () => {
|
|
|
@@ -1286,13 +1287,13 @@ describe( 'Template', () => {
|
|
|
} );
|
|
|
|
|
|
observable.foo = 'bar';
|
|
|
- expect( el.outerHTML ).to.equal( '<p>abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p>abc</p>' );
|
|
|
|
|
|
observable.foo = 'P';
|
|
|
- expect( el.outerHTML ).to.equal( '<p class="eqls-tag-name">abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p class="eqls-tag-name">abc</p>' );
|
|
|
|
|
|
observable.foo = 64;
|
|
|
- expect( el.outerHTML ).to.equal( '<p>abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p>abc</p>' );
|
|
|
} );
|
|
|
|
|
|
it( 'allows binding attribute to the observable – falsy values', () => {
|
|
|
@@ -1305,25 +1306,25 @@ describe( 'Template', () => {
|
|
|
} );
|
|
|
|
|
|
observable.foo = 'bar';
|
|
|
- expect( el.outerHTML ).to.equal( '<p class="foo-is-set">abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p class="foo-is-set">abc</p>' );
|
|
|
|
|
|
observable.foo = true;
|
|
|
- expect( el.outerHTML ).to.equal( '<p class="foo-is-set">abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p class="foo-is-set">abc</p>' );
|
|
|
|
|
|
observable.foo = 0;
|
|
|
- expect( el.outerHTML ).to.equal( '<p class="foo-is-set">abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p class="foo-is-set">abc</p>' );
|
|
|
|
|
|
observable.foo = false;
|
|
|
- expect( el.outerHTML ).to.equal( '<p>abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p>abc</p>' );
|
|
|
|
|
|
observable.foo = null;
|
|
|
- expect( el.outerHTML ).to.equal( '<p>abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p>abc</p>' );
|
|
|
|
|
|
observable.foo = undefined;
|
|
|
- expect( el.outerHTML ).to.equal( '<p>abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p>abc</p>' );
|
|
|
|
|
|
observable.foo = '';
|
|
|
- expect( el.outerHTML ).to.equal( '<p>abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p>abc</p>' );
|
|
|
} );
|
|
|
} );
|
|
|
|
|
|
@@ -1495,7 +1496,7 @@ describe( 'Template', () => {
|
|
|
|
|
|
observable.foo = 'baz';
|
|
|
|
|
|
- expect( el.outerHTML ).to.equal( '<p a="baz c d"></p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p a="baz c d"></p>' );
|
|
|
} );
|
|
|
|
|
|
it( 'extends existing - bindings #2', () => {
|
|
|
@@ -1517,7 +1518,7 @@ describe( 'Template', () => {
|
|
|
observable.foo = 'abc';
|
|
|
observable.baz = 'def';
|
|
|
|
|
|
- expect( el.outerHTML ).to.equal( '<p a="b abc c def"></p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p a="b abc c def"></p>' );
|
|
|
} );
|
|
|
|
|
|
it( 'creates new - no attributes', () => {
|
|
|
@@ -1586,7 +1587,7 @@ describe( 'Template', () => {
|
|
|
|
|
|
observable.foo = 'abc';
|
|
|
|
|
|
- expect( el.outerHTML ).to.equal( '<p a="b" c="abc"></p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p a="b" c="abc"></p>' );
|
|
|
} );
|
|
|
|
|
|
it( 'creates new - bindings #2', () => {
|
|
|
@@ -1607,7 +1608,7 @@ describe( 'Template', () => {
|
|
|
|
|
|
observable.foo = 'abc';
|
|
|
|
|
|
- expect( el.outerHTML ).to.equal( '<p a="b" c="d abc"></p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p a="b" c="d abc"></p>' );
|
|
|
} );
|
|
|
} );
|
|
|
|
|
|
@@ -1687,7 +1688,7 @@ describe( 'Template', () => {
|
|
|
|
|
|
observable.foo = 'asd';
|
|
|
|
|
|
- expect( el.outerHTML ).to.equal( '<p>asd abc</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p>asd abc</p>' );
|
|
|
expect( el.childNodes ).to.have.length( 1 );
|
|
|
} );
|
|
|
|
|
|
@@ -1709,7 +1710,7 @@ describe( 'Template', () => {
|
|
|
|
|
|
observable.foo = 'asd';
|
|
|
|
|
|
- expect( el.outerHTML ).to.equal( '<p>abc asd</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p>abc asd</p>' );
|
|
|
expect( el.childNodes ).to.have.length( 1 );
|
|
|
} );
|
|
|
|
|
|
@@ -1734,7 +1735,7 @@ describe( 'Template', () => {
|
|
|
observable.foo = 'A';
|
|
|
observable.baz = 'B';
|
|
|
|
|
|
- expect( el.outerHTML ).to.equal( '<p>A BXY</p>' );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( '<p>A BXY</p>' );
|
|
|
expect( el.childNodes ).to.have.length( 2 );
|
|
|
} );
|
|
|
} );
|
|
|
@@ -2079,7 +2080,7 @@ function extensionTest( base, extension, expectedHtml ) {
|
|
|
|
|
|
document.body.appendChild( el );
|
|
|
|
|
|
- expect( el.outerHTML ).to.equal( expectedHtml );
|
|
|
+ expect( normalizeHtml( el.outerHTML ) ).to.equal( expectedHtml );
|
|
|
|
|
|
return el;
|
|
|
}
|