Skip to content

Commit 38595ed

Browse files
committed
Add tests for title elements
1 parent ef92bdd commit 38595ed

File tree

4 files changed

+42
-5
lines changed

4 files changed

+42
-5
lines changed

cjs/html/title-element.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
'use strict';
22
const {registerHTMLClass} = require('../shared/register-html-class.js');
33
const {escapeHtmlTextContent} = require('../shared/text-escaper.js');
4-
const {ignoreCase} = require('../shared/utils.js');
54

65
const {HTMLElement} = require('./element.js');
76

@@ -16,7 +15,7 @@ class HTMLTitleElement extends HTMLElement {
1615
}
1716

1817
get innerHTML() { return super.innerHTML; }
19-
set innerHTML(html) { super.innerHTML = ignoreCase(this) ? escapeHtmlTextContent(html) : html; }
18+
set innerHTML(html) { super.innerHTML = escapeHtmlTextContent(html); }
2019
}
2120

2221
registerHTMLClass(tagName, HTMLTitleElement);

esm/html/title-element.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import {registerHTMLClass} from '../shared/register-html-class.js';
22
import {escapeHtmlTextContent} from '../shared/text-escaper.js';
3-
import {ignoreCase} from '../shared/utils.js';
43

54
import {HTMLElement} from './element.js';
65

@@ -15,7 +14,7 @@ class HTMLTitleElement extends HTMLElement {
1514
}
1615

1716
get innerHTML() { return super.innerHTML; }
18-
set innerHTML(html) { super.innerHTML = ignoreCase(this) ? escapeHtmlTextContent(html) : html; }
17+
set innerHTML(html) { super.innerHTML = escapeHtmlTextContent(html); }
1918
}
2019

2120
registerHTMLClass(tagName, HTMLTitleElement);

test/html/title-element.js

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
const assert = require('../assert.js').for('HTMLTitleElement');
2+
3+
const {DOMParser, parseHTML} = global[Symbol.for('linkedom')];
4+
5+
const {document: htmlDoc} = parseHTML('<title>abc&<>"\t\n\r\xA0</title>');
6+
assert(
7+
htmlDoc.toString(),
8+
'<title>abc&amp;&lt;&gt;"\t\n\r&nbsp;</title>'
9+
);
10+
11+
const htmlTitle = htmlDoc.querySelector('title');
12+
htmlTitle.innerHTML = '<a>sub element</a>';
13+
assert(
14+
htmlTitle.innerHTML,
15+
'&lt;a&gt;sub element&lt;/a&gt;'
16+
);
17+
assert(
18+
htmlDoc.toString(),
19+
'<title>&lt;a&gt;sub element&lt;/a&gt;</title>'
20+
);
21+
assert(htmlDoc.querySelectorAll('a').length, 0);
22+
23+
const xhtmlDoc = (new DOMParser).parseFromString('<title xmlns="http://www.w3.org/1999/xhtml">abc&<>"\t\n\r\xA0</title>', 'application/xhtml+xml');
24+
assert(
25+
xhtmlDoc.toString(),
26+
'<?xml version="1.0" encoding="utf-8"?><title xmlns="http://www.w3.org/1999/xhtml">abc&amp;&lt;&gt;"\t\n\r\xA0</title>'
27+
);
28+
29+
const xmlTitle = xhtmlDoc.querySelector('title');
30+
xmlTitle.innerHTML = '<a>sub element</a>';
31+
assert(
32+
xmlTitle.innerHTML,
33+
'<a>sub element</a>'
34+
);
35+
assert(
36+
xhtmlDoc.toString(),
37+
'<?xml version="1.0" encoding="utf-8"?><title xmlns="http://www.w3.org/1999/xhtml"><a>sub element</a></title>'
38+
);
39+
assert(xhtmlDoc.querySelectorAll('a').length, 1);

worker.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11411,7 +11411,7 @@ class HTMLTitleElement extends HTMLElement {
1141111411
}
1141211412

1141311413
get innerHTML() { return super.innerHTML; }
11414-
set innerHTML(html) { super.innerHTML = ignoreCase(this) ? escapeHtmlTextContent(html) : html; }
11414+
set innerHTML(html) { super.innerHTML = escapeHtmlTextContent(html); }
1141511415
}
1141611416

1141711417
registerHTMLClass(tagName$9, HTMLTitleElement);

0 commit comments

Comments
 (0)