mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
Support more properties for image maps
Supporting the `<area>` tag is pretty useless if we don't support the necessary properties.
This commit is contained in:
committed by
Paul O’Shannessy
parent
5eb57fa51b
commit
5b17e75707
@@ -82,6 +82,7 @@ var HTMLDOMPropertyConfig = {
|
||||
contentEditable: null,
|
||||
contextMenu: MUST_USE_ATTRIBUTE,
|
||||
controls: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,
|
||||
coords: null,
|
||||
crossOrigin: null,
|
||||
data: null, // For `<object />` acts as `src`.
|
||||
dateTime: MUST_USE_ATTRIBUTE,
|
||||
@@ -133,6 +134,7 @@ var HTMLDOMPropertyConfig = {
|
||||
scrollTop: MUST_USE_PROPERTY,
|
||||
seamless: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,
|
||||
selected: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,
|
||||
shape: null,
|
||||
size: MUST_USE_ATTRIBUTE | HAS_POSITIVE_NUMERIC_VALUE,
|
||||
span: HAS_POSITIVE_NUMERIC_VALUE,
|
||||
spellCheck: null,
|
||||
@@ -146,6 +148,7 @@ var HTMLDOMPropertyConfig = {
|
||||
target: null,
|
||||
title: null,
|
||||
type: null,
|
||||
useMap: null,
|
||||
value: MUST_USE_PROPERTY | HAS_SIDE_EFFECTS,
|
||||
width: MUST_USE_ATTRIBUTE,
|
||||
wmode: MUST_USE_ATTRIBUTE,
|
||||
|
||||
@@ -0,0 +1,138 @@
|
||||
/**
|
||||
* Copyright 2004-present Facebook. All Rights Reserved.
|
||||
*
|
||||
* @emails jeffmo@fb.com
|
||||
*/
|
||||
"use strict";
|
||||
|
||||
require('mock-modules').autoMockOff();
|
||||
|
||||
var transformAll = require('../../syntax.js').transformAll;
|
||||
|
||||
function transform(source) {
|
||||
return transformAll(source, {}, ['allocate']);
|
||||
}
|
||||
|
||||
describe('react displayName jsx', function() {
|
||||
|
||||
it('should only inject displayName if missing', function() {
|
||||
var code = [
|
||||
'/** @jsx React.DOM */',
|
||||
'"use strict";',
|
||||
'var Whateva = React.createClass({',
|
||||
' displayName: \'Whateva\',',
|
||||
' render: function() {',
|
||||
' return <div className=\'whateva\'>...whateva.</div>;',
|
||||
' }',
|
||||
'});'
|
||||
].join('\n');
|
||||
|
||||
var result = [
|
||||
'/** @jsx React.DOM */',
|
||||
'"use strict";',
|
||||
'var Whateva = React.createClass({',
|
||||
' displayName: \'Whateva\',',
|
||||
' render: function() {',
|
||||
' return React.DOM.div({className: "whateva"}, "...whateva.");',
|
||||
' }',
|
||||
'});'
|
||||
].join('\n');
|
||||
|
||||
expect(transform(code).code).toEqual(result);
|
||||
});
|
||||
|
||||
it('should inject displayName in simple assignment', () => {
|
||||
var code = [
|
||||
'/** @jsx React.DOM */',
|
||||
'var Component = React.createClass({',
|
||||
' render: function() {',
|
||||
' return <div/>;',
|
||||
' }',
|
||||
'});'
|
||||
].join('\n');
|
||||
|
||||
var result = [
|
||||
'/** @jsx React.DOM */',
|
||||
'var Component = React.createClass({displayName: \'Component\',',
|
||||
' render: function() {',
|
||||
' return React.DOM.div(null);',
|
||||
' }',
|
||||
'});'
|
||||
].join('\n');
|
||||
|
||||
expect(transform(code).code).toEqual(result);
|
||||
});
|
||||
|
||||
it('should inject displayName in simple assignment without var', () => {
|
||||
var code = [
|
||||
'/** @jsx React.DOM */',
|
||||
'var Component;',
|
||||
'Component = React.createClass({',
|
||||
' render: function() {',
|
||||
' return <div/>;',
|
||||
' }',
|
||||
'});'
|
||||
].join('\n');
|
||||
|
||||
var result = [
|
||||
'/** @jsx React.DOM */',
|
||||
'var Component;',
|
||||
'Component = React.createClass({displayName: \'Component\',',
|
||||
' render: function() {',
|
||||
' return React.DOM.div(null);',
|
||||
' }',
|
||||
'});'
|
||||
].join('\n');
|
||||
|
||||
expect(transform(code).code).toEqual(result);
|
||||
});
|
||||
|
||||
it('should inject displayName in property assignment', () => {
|
||||
var code = [
|
||||
'/** @jsx React.DOM */',
|
||||
'exports.Component = React.createClass({',
|
||||
' render: function() {',
|
||||
' return <div/>;',
|
||||
' }',
|
||||
'});'
|
||||
].join('\n');
|
||||
|
||||
var result = [
|
||||
'/** @jsx React.DOM */',
|
||||
'exports.Component = React.createClass({displayName: \'Component\',',
|
||||
' render: function() {',
|
||||
' return React.DOM.div(null);',
|
||||
' }',
|
||||
'});'
|
||||
].join('\n');
|
||||
|
||||
expect(transform(code).code).toEqual(result);
|
||||
});
|
||||
|
||||
it('should inject displayName in object declaration', () => {
|
||||
var code = [
|
||||
'/** @jsx React.DOM */',
|
||||
'exports = {',
|
||||
' Component: React.createClass({',
|
||||
' render: function() {',
|
||||
' return <div/>;',
|
||||
' }',
|
||||
' })',
|
||||
'};'
|
||||
].join('\n');
|
||||
|
||||
var result = [
|
||||
'/** @jsx React.DOM */',
|
||||
'exports = {',
|
||||
' Component: React.createClass({displayName: \'Component\',',
|
||||
' render: function() {',
|
||||
' return React.DOM.div(null);',
|
||||
' }',
|
||||
' })',
|
||||
'};'
|
||||
].join('\n');
|
||||
|
||||
expect(transform(code).code).toEqual(result);
|
||||
});
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user