mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
76 lines
2.4 KiB
JavaScript
76 lines
2.4 KiB
JavaScript
/**
|
|
* Copyright (c) 2013-present, Facebook, Inc.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
* @emails react-core
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
let React;
|
|
let ReactDOMServer;
|
|
|
|
describe('quoteAttributeValueForBrowser', () => {
|
|
beforeEach(() => {
|
|
jest.resetModules();
|
|
React = require('react');
|
|
ReactDOMServer = require('react-dom/server');
|
|
});
|
|
|
|
it('ampersand is escaped inside attributes', () => {
|
|
const response = ReactDOMServer.renderToString(<img data-attr="&" />);
|
|
expect(response).toMatch('<img data-attr="&" data-reactroot=""/>');
|
|
});
|
|
|
|
it('double quote is escaped inside attributes', () => {
|
|
const response = ReactDOMServer.renderToString(<img data-attr={'"'} />);
|
|
expect(response).toMatch('<img data-attr=""" data-reactroot=""/>');
|
|
});
|
|
|
|
it('single quote is escaped inside attributes', () => {
|
|
const response = ReactDOMServer.renderToString(<img data-attr="'" />);
|
|
expect(response).toMatch('<img data-attr="'" data-reactroot=""/>');
|
|
});
|
|
|
|
it('greater than entity is escaped inside attributes', () => {
|
|
const response = ReactDOMServer.renderToString(<img data-attr=">" />);
|
|
expect(response).toMatch('<img data-attr=">" data-reactroot=""/>');
|
|
});
|
|
|
|
it('lower than entity is escaped inside attributes', () => {
|
|
const response = ReactDOMServer.renderToString(<img data-attr="<" />);
|
|
expect(response).toMatch('<img data-attr="<" data-reactroot=""/>');
|
|
});
|
|
|
|
it('number is escaped to string inside attributes', () => {
|
|
const response = ReactDOMServer.renderToString(<img data-attr={42} />);
|
|
expect(response).toMatch('<img data-attr="42" data-reactroot=""/>');
|
|
});
|
|
|
|
it('object is passed to a string inside attributes', () => {
|
|
const sampleObject = {
|
|
toString: function() {
|
|
return 'ponys';
|
|
},
|
|
};
|
|
|
|
const response = ReactDOMServer.renderToString(
|
|
<img data-attr={sampleObject} />,
|
|
);
|
|
expect(response).toMatch('<img data-attr="ponys" data-reactroot=""/>');
|
|
});
|
|
|
|
it('script tag is escaped inside attributes', () => {
|
|
const response = ReactDOMServer.renderToString(
|
|
<img data-attr={'<script type=\'\' src=""></script>'} />,
|
|
);
|
|
expect(response).toMatch(
|
|
'<img data-attr="<script type='' ' +
|
|
'src=""></script>" ' +
|
|
'data-reactroot=""/>',
|
|
);
|
|
});
|
|
});
|