react / react-0.13.3 / examples / basic-commonjs / node_modules / reactify / node_modules / react-tools / src / browser / ui / dom / __tests__ / getNodeForCharacterOffset-test.js
81165 views/**1* Copyright 2013-2014, Facebook, Inc.2* All rights reserved.3*4* This source code is licensed under the BSD-style license found in the5* LICENSE file in the root directory of this source tree. An additional grant6* of patent rights can be found in the PATENTS file in the same directory.7*8* @emails react-core9*/1011/*jslint evil: true */1213"use strict";1415var getTestDocument = require('getTestDocument');1617var getNodeForCharacterOffset = require('getNodeForCharacterOffset');1819// Create node from HTML string20function createNode(html) {21var node = (getTestDocument() || document).createElement('div');22node.innerHTML = html;23return node;24}2526// Check getNodeForCharacterOffset return value matches expected result.27function expectNodeOffset(result, textContent, nodeOffset) {28expect(result.node.textContent).toBe(textContent);29expect(result.offset).toBe(nodeOffset);30}3132describe('getNodeForCharacterOffset', function() {33it('should handle siblings', function() {34var node = createNode('<i>123</i><i>456</i><i>789</i>');3536expectNodeOffset(getNodeForCharacterOffset(node, 0), '123', 0);37expectNodeOffset(getNodeForCharacterOffset(node, 4), '456', 1);38});3940it('should handle trailing chars', function() {41var node = createNode('<i>123</i><i>456</i><i>789</i>');4243expectNodeOffset(getNodeForCharacterOffset(node, 3), '123', 3);44expectNodeOffset(getNodeForCharacterOffset(node, 9), '789', 3);45});4647it('should handle trees', function() {48var node = createNode(49'<i>' +50'<i>1</i>' +51'<i>' +52'<i>' +53'<i>2</i>' +54'<i></i>' +55'</i>' +56'</i>' +57'<i>' +58'3' +59'<i>45</i>' +60'</i>' +61'</i>'62);6364expectNodeOffset(getNodeForCharacterOffset(node, 3), '3', 1);65expectNodeOffset(getNodeForCharacterOffset(node, 5), '45', 2);66expect(getNodeForCharacterOffset(node, 10)).toBeUndefined();67});6869it('should handle non-existent offset', function() {70var node = createNode('<i>123</i>');7172expect(getNodeForCharacterOffset(node, -1)).toBeUndefined();73expect(getNodeForCharacterOffset(node, 4)).toBeUndefined();74});75});767778