summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2013-12-14 15:06:22 +0000
committerMichael Williamson <mike@zwobble.org>2013-12-14 15:06:42 +0000
commitb1b0fcd0547f1b432baab03038903414a1475a1b (patch)
tree4cbd8f88a4e4d10df834f41111c71e578b9516f2
parent2a4c5289179084f3df2c4be43b11c7f03416087e (diff)
Escape attribute values
-rw-r--r--lib/html-generator.js2
-rw-r--r--tests/html-generator.tests.js6
2 files changed, 7 insertions, 1 deletions
diff --git a/lib/html-generator.js b/lib/html-generator.js
index 62c58a8..eea0fcf 100644
--- a/lib/html-generator.js
+++ b/lib/html-generator.js
@@ -88,7 +88,7 @@ function HtmlGenerator() {
function generateAttributeString(attributes) {
return _.map(attributes, function(value, key) {
- return util.format(' %s="%s"', key, value);
+ return util.format(' %s="%s"', key, escapeHtml(value));
}).join("");
}
diff --git a/tests/html-generator.tests.js b/tests/html-generator.tests.js
index fc34cf9..220a0bf 100644
--- a/tests/html-generator.tests.js
+++ b/tests/html-generator.tests.js
@@ -63,4 +63,10 @@ describe('HtmlGenerator', function() {
generator.closeAll();
return assert.equal(generator.asString(), '<p class="tip">Hello!</p>');
});
+
+ test('attribute values are escaped', function() {
+ var generator = new HtmlGenerator();
+ generator.selfClosing({tagName: "br", attributes: {"data-blah": "<"}});
+ return assert.equal(generator.asString(), '<br data-blah="&lt;" />');
+ });
})