UNPKG

sku-pg

Version:

Skulpt is a Javascript implementation of Python 2.x. Python that runs in your browser!

125 lines (104 loc) 3.42 kB
<!DOCTYPE html> <html> <!-- Copyright 2008 The Closure Library Authors. All Rights Reserved. Use of this source code is governed by the Apache License, Version 2.0. See the COPYING file for details. --> <!-- Ensures that goog.editor.BrowserFeature is up-to-date with the latest bug fixes from browser manufacturers. @author nicksantos@google.com (Nick Santos) --> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>Closure Unit Tests - goog.editor.BrowserFeature</title> <script src="../base.js"></script> <script> goog.require('goog.dom'); goog.require('goog.dom.Range'); goog.require('goog.editor.BrowserFeature'); goog.require('goog.testing.ExpectedFailures'); goog.require('goog.testing.jsunit'); </script> </head> <body> <div id='root' contentEditable></div> <div id='testNormalizeCorruption'>text</div> <script> var expectedFailures = new goog.testing.ExpectedFailures(); function tearDown() { var root = goog.dom.getElement('root'); goog.dom.removeChildren(root); expectedFailures.handleTearDown(); } function testEmptyNodeNormalization() { var root = goog.dom.getElement('root'); goog.dom.appendChild(root, goog.dom.createTextNode('text')); var textNode = root.firstChild; textNode.splitText(0); root.normalize(); assertEquals( 'NORMALIZE_CORRUPTS_EMPTY_TEXT_NODES incorrect for ' + navigator.userAgent, goog.editor.BrowserFeature.NORMALIZE_CORRUPTS_EMPTY_TEXT_NODES, textNode.parentNode == null); } function testLeavesPWhenRemovingLists() { if (!goog.editor.BrowserFeature.HAS_CONTENT_EDITABLE) { return; } var root = goog.dom.getElement('root'); goog.dom.removeChildren(root); root.innerHTML = '<div>foo</div>'; goog.dom.Range.createFromNodeContents(root.firstChild.firstChild).select(); document.execCommand('insertorderedlist', false, true); document.execCommand('insertorderedlist', false, true); assertEquals( 'LEAVES_P_WHEN_REMOVING_LISTS incorrect for ' + navigator.userAgent, goog.editor.BrowserFeature.LEAVES_P_WHEN_REMOVING_LISTS, !!root.getElementsByTagName('p').length); } function testActiveElement() { var root = goog.dom.getElement('root'); var div = goog.dom.createElement('div'); root.appendChild(div); div.tabIndex = 0; div.focus(); expectedFailures.expectFailureFor( !goog.editor.BrowserFeature.HAS_ACTIVE_ELEMENT); try { assertEquals('document.activeElement should be the created div', div, document.activeElement); } catch (e) { expectedFailures.handleException(e); } } function testNormalizeCorruption() { var root = goog.dom.getElement('testNormalizeCorruption'); var textNode = root.firstChild; textNode.splitText(0); var secondTextNode = textNode.nextSibling; root.normalize(); expectedFailures.expectFailureFor( goog.editor.BrowserFeature.NORMALIZE_CORRUPTS_EMPTY_TEXT_NODES); try { assertEquals('text node should not be corrupted', textNode, root.firstChild); } catch (e) { expectedFailures.handleException(e); expectedFailures.expectFailureFor( goog.editor.BrowserFeature.NORMALIZE_CORRUPTS_ALL_TEXT_NODES); try { assertEquals( 'first text node should be corrupted and replaced by sibling', secondTextNode, root.firstChild); } catch (e) { expectedFailures.handleException(e); } } } </script> </body> </html>