diff --git a/lib/utils.js b/lib/utils.js index 914965bb..bab75333 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -55,7 +55,6 @@ var xml_special_to_encoded_text = { function encodeSpecialCharactersInAttribute(attributeValue){ return attributeValue - .replace(/[\r\n\t ]+/g, ' ') // White space normalization (Note: this should normally be done by the xml parser) See: https://www.w3.org/TR/xml/#AVNormalize .replace(/([&<"\r\n\t])/g, function(str, item){ // Special character normalization. See: // - https://www.w3.org/TR/xml-c14n#ProcessingModel (Attribute Nodes) @@ -66,7 +65,6 @@ function encodeSpecialCharactersInAttribute(attributeValue){ function encodeSpecialCharactersInText(text){ return text - .replace(/\r\n?/g, '\n') // Line ending normalization (Note: this should normally be done by the xml parser). See: https://www.w3.org/TR/xml/#sec-line-ends .replace(/([&<>\r])/g, function(str, item){ // Special character normalization. See: // - https://www.w3.org/TR/xml-c14n#ProcessingModel (Text Nodes) diff --git a/test/c14nWithComments-unit-tests.js b/test/c14nWithComments-unit-tests.js index a259ad8d..4f112c67 100644 --- a/test/c14nWithComments-unit-tests.js +++ b/test/c14nWithComments-unit-tests.js @@ -274,72 +274,72 @@ module.exports = { "Exclusive canonicalization works on complex xml": function (test) { compare(test, - "\r" + - "\r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " ererer\r" + - " dfdf\r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " erer\r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + + "\n" + + "\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " ererer\n" + + " dfdf\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " erer\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + "", "//*[local-name(.)='Body']", - "\n \n \n \n \n \n \n \n \n \n \n \n \n ererer\n dfdf\n \n \n \n \n \n \n \n \n \n erer\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ") + "\n \n \n \n \n \n \n \n \n \n \n \n \n ererer\n dfdf\n \n \n \n \n \n \n \n \n \n erer\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ") }, "Multiple Canonicalization with namespace definition outside of signed element": function (test) { diff --git a/test/canonicalization-unit-tests.js b/test/canonicalization-unit-tests.js index c0316ec8..b7f0fb36 100644 --- a/test/canonicalization-unit-tests.js +++ b/test/canonicalization-unit-tests.js @@ -13,7 +13,7 @@ var compare = function(test, xml, xpath, expected, inclusiveNamespacesPrefixList inclusiveNamespacesPrefixList: inclusiveNamespacesPrefixList, defaultNsForPrefix: defaultNsForPrefix }).toString() - + test.equal(expected, result) test.done() } @@ -181,23 +181,23 @@ module.exports = { "Exclusive canonicalization works on xml with attribute values with special characters": function (test) { compare(test, - ""11\" attrUnencoded='&>\"11'>11", + ""11 \" attrUnencoded='&>\"11\r\n'>11", "//*[local-name(.)='child']", - ""11\" attrUnencoded=\"&>"11\">11") + ""11 \" attrUnencoded=\"&>"11 \">11") }, - "Exclusive canonicalization normalizes whitespace characters into single spaces": function (test) { + "Exclusive canonicalization does not normalize whitespace characters into single spaces": function (test) { compare(test, "11", "//*[local-name(.)='child']", - "11") + "11") }, "Exclusive canonicalization works on xml with element values with special characters": function (test) { compare(test, - "&<>"11&>\"11\", + "&<>"11 &>\"11\r\", "//*[local-name(.)='child']", - "&<>\"11&>\"11") + "&<>\"11 &>\"11 ") }, "Exclusive canonicalization preserves white space in values": function (test) { @@ -207,18 +207,18 @@ module.exports = { "12\n3\t") }, - "Exclusive canonicalization turns CR-NL (windows line separator) into NL": function(test){ + "Exclusive canonicalization does not alter CR-NL (windows line separator) sequences": function(test){ compare(test, "123\r\n", "//*[local-name(.)='child']", - "123\n") + "123 \n") }, - "Exclusive canonicalization turns CR into NL": function(test){ + "Exclusive canonicalization preserves and encodes CR white space": function(test){ compare(test, "\r12\r3\r", "//*[local-name(.)='child']", - "\n12\n3\n") + " 12 3 ") }, "Exclusive canonicalization preserves white space between elements": function (test) { @@ -309,72 +309,72 @@ module.exports = { "Exclusive canonicalization works on complex xml": function (test) { compare(test, - "\r" + - "\r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " ererer\r" + - " dfdf\r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " erer\r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + + "\n" + + "\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " ererer\n" + + " dfdf\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " erer\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + - " \r" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + "", "//*[local-name(.)='Body']", - "\n \n \n \n \n \n \n \n \n \n \n \n \n ererer\n dfdf\n \n \n \n \n \n \n \n \n \n erer\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ") + "\n \n \n \n \n \n \n \n \n \n \n \n \n ererer\n dfdf\n \n \n \n \n \n \n \n \n \n erer\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ") }, "Multiple Canonicalization with namespace definition outside of signed element": function (test) {