Fix checksum hash attribute insertion for self-closing root tags. Fixes #4323
Jim committed
Jul 9, 2015 at 12:10 UTC
dfeeb3f673e183f1394835039b37dbee4797cc67
2 files changed
+14
-2
src/renderers/dom/server/ReactMarkupChecksum.js
+4
-2
@@ -22,9 +22,11 @@ var ReactMarkupChecksum = {
22
*/
23
addChecksumToMarkup: function(markup) {
24
var checksum = adler32(markup);
25
+
26
+ // Add checksum (handle both parent tags and self-closing tags)
27
return markup.replace(
26
- '>',
27
- ' ' + ReactMarkupChecksum.CHECKSUM_ATTR_NAME + '="' + checksum + '">'
28
+ /\/?>/,
29
+ ' ' + ReactMarkupChecksum.CHECKSUM_ATTR_NAME + '="' + checksum + '"$&'
30
);
31
},
32
src/renderers/dom/server/__tests__/ReactServerRendering-test.js
+10
@@ -57,6 +57,16 @@ describe('ReactServerRendering', function() {
57
);
58
});
59
60
+ it('should generate simple markup for self-closing tags', function() {
61
+ var response = ReactServerRendering.renderToString(
62
+ <img />
63
+ );
64
+ expect(response).toMatch(
65
+ '<img ' + ID_ATTRIBUTE_NAME + '="[^"]+" ' +
66
+ ReactMarkupChecksum.CHECKSUM_ATTR_NAME + '="[^"]+"/>'
67
+ );
68
+ });
69
+
70
it('should not register event listeners', function() {
71
var EventPluginHub = require('EventPluginHub');
72
var cb = mocks.getMockFunction();