forked from facebook/react
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathReactDOMIDOperations-test.js
More file actions
60 lines (48 loc) · 1.56 KB
/
ReactDOMIDOperations-test.js
File metadata and controls
60 lines (48 loc) · 1.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/**
* Copyright 2013-2014, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
* @emails react-core
*/
/*jslint evil: true */
"use strict";
describe('ReactDOMIDOperations', function() {
var DOMPropertyOperations = require('DOMPropertyOperations');
var ReactDOMIDOperations = require('ReactDOMIDOperations');
var ReactMount = require('ReactMount');
var keyOf = require('keyOf');
it('should disallow updating special properties', function() {
spyOn(ReactMount, "getNode");
spyOn(DOMPropertyOperations, "setValueForProperty");
expect(function() {
ReactDOMIDOperations.updatePropertyByID(
'testID',
keyOf({dangerouslySetInnerHTML: null}),
{__html: 'testContent'}
);
}).toThrow();
expect(
ReactMount.getNode.argsForCall[0][0]
).toBe('testID');
expect(
DOMPropertyOperations.setValueForProperty.callCount
).toBe(0);
});
it('should update innerHTML and preserve whitespace', function() {
var stubNode = document.createElement('div');
spyOn(ReactMount, "getNode").andReturn(stubNode);
var html = '\n \t <span> \n testContent \t </span> \n \t';
ReactDOMIDOperations.updateInnerHTMLByID(
'testID',
html
);
expect(
ReactMount.getNode.argsForCall[0][0]
).toBe('testID');
expect(stubNode.innerHTML).toBe(html);
});
});