Skip to content

Commit 75c4311

Browse files
committed
Merge pull request #4325 from jimfb/self-closing-checksum
Fix checksum hash attribute insertion for self-closing root tags. Fixes #4323
2 parents a9e2111 + dfeeb3f commit 75c4311

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

src/renderers/dom/server/ReactMarkupChecksum.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,11 @@ var ReactMarkupChecksum = {
2222
*/
2323
addChecksumToMarkup: function(markup) {
2424
var checksum = adler32(markup);
25+
26+
// Add checksum (handle both parent tags and self-closing tags)
2527
return markup.replace(
26-
'>',
27-
' ' + ReactMarkupChecksum.CHECKSUM_ATTR_NAME + '="' + checksum + '">'
28+
/\/?>/,
29+
' ' + ReactMarkupChecksum.CHECKSUM_ATTR_NAME + '="' + checksum + '"$&'
2830
);
2931
},
3032

src/renderers/dom/server/__tests__/ReactServerRendering-test.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,16 @@ describe('ReactServerRendering', function() {
5757
);
5858
});
5959

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+
6070
it('should not register event listeners', function() {
6171
var EventPluginHub = require('EventPluginHub');
6272
var cb = mocks.getMockFunction();

0 commit comments

Comments
 (0)