aboutsummaryrefslogtreecommitdiff
path: root/contexts/data/lib/closure-library/closure/goog/ui/richtextspellchecker_test.html
diff options
context:
space:
mode:
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/ui/richtextspellchecker_test.html')
-rw-r--r--contexts/data/lib/closure-library/closure/goog/ui/richtextspellchecker_test.html247
1 files changed, 0 insertions, 247 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/ui/richtextspellchecker_test.html b/contexts/data/lib/closure-library/closure/goog/ui/richtextspellchecker_test.html
deleted file mode 100644
index 3a4929e..0000000
--- a/contexts/data/lib/closure-library/closure/goog/ui/richtextspellchecker_test.html
+++ /dev/null
@@ -1,247 +0,0 @@
-<!DOCTYPE html>
-<html>
-<!--
-Copyright 2007 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.
--->
-<head>
-<meta http-equiv="X-UA-Compatible" content="IE=edge">
-<title>Closure Unit Tests - goog.ui.RichTextSpellChecker</title>
-<script src="../base.js"></script>
-<script>
- goog.require('goog.dom');
- goog.require('goog.testing.jsunit');
- goog.require('goog.ui.RichTextSpellChecker');
-</script>
-</head>
-<body>
-
-<div id="test1"></div>
-<div id="test2"></div>
-<div id="test3"></div>
-
-<script>
-
-var attributeSet = ['b', 'u', 'del', 'i'];
-var vocabulary = ['test', 'words', 'a', 'few', 'missspelling', 'iggnore'];
-
-// We don't use Math.random() to make test predictable. Math.random is not
-// repeatable, so a success on the dev machine != success in the lab (or on
-// other dev machines). This is the same pseudorandom logic that CRT rand()
-// uses.
-var rseed = 1;
-function random(range) {
- rseed = (rseed * 1103515245 + 12345) & 0xffffffff;
- return ((rseed >> 16) & 0x7fff) % range;
-};
-
-function localSpellCheckingFunction(words, spellChecker, callback) {
- var len = words.length;
- var results = [];
- for (var i = 0; i < len; i++) {
- var word = words[i];
- var found = false;
- // Last two words are considered misspellings
- for (var j = 0 ; j < vocabulary.length - 2 ; ++j) {
- if (vocabulary[j] == word) {
- found = true;
- break;
- }
- }
- if (found) {
- results.push([word, goog.spell.SpellCheck.WordStatus.VALID]);
- } else {
- results.push([word, goog.spell.SpellCheck.WordStatus.INVALID,
- ['foo','bar']]);
- }
- }
- callback.call(spellChecker, results);
-};
-
-function generateRandomSpace() {
- var string = '';
- var nSpace = 1 + random(4);
- for (var i = 0; i < nSpace ; ++i) {
- string += ' ';
- }
- return string;
-};
-
-function generateRandomString(maxWords) {
- var string = '';
- var nWords = 1 + random(maxWords);
- for (var i = 0; i < nWords ; ++i) {
- string += vocabulary[random(vocabulary.length)];
- string += generateRandomSpace();
- }
- return string;
-};
-
-function generateRandomHtml(rootNode, branchFactor, attributes, numAttr) {
- if (numAttr == 0) {
- var text = document.createTextNode(generateRandomString(10));
- rootNode.appendChild(text);
- return;
- }
-
- var lastElementWasText = false;
- for (var i = 0; i < branchFactor; ++i) {
- var rand = random(10);
- if (rand < 8 && !lastElementWasText) {
- lastElementWasText = true;
- var text = document.createTextNode(generateRandomString(10));
- rootNode.appendChild(text);
- } else {
- lastElementWasText = false;
-
- var rand = random(numAttr);
- var index = 0;
- for (;;) {
- while (attributes[index] == null) {
- ++index;
- }
- if (rand == 0)
- break;
- ++index;
- --rand;
- };
-
- var attr = attributes[index];
- var el = document.createElement(attr);
- rootNode.appendChild(el);
- rand = random(10);
- if (rand == 0) {
- el.className = 'goog-quote';
- }
- attributes[index] = null;
- generateRandomHtml(el, branchFactor, attributes, numAttr-1);
- attributes[index] = attr;
- }
- }
-};
-
-var timerQueue = [];
-function processTimerQueue() {
- while (timerQueue.length > 0) {
- var fn = timerQueue.shift();
- fn();
- }
-};
-
-function localTimer(fn, delay, obj) {
- if (obj) {
- fn = goog.bind(fn, obj);
- }
- timerQueue.push(fn);
- return timerQueue.length;
-};
-
-function testDocumentIntegrity() {
- var handler = new goog.spell.SpellCheck(localSpellCheckingFunction);
- var s = new goog.ui.RichTextSpellChecker(handler);
- s.asyncWordsPerBatch_ = 100;
- var el = document.getElementById('test1');
- s.decorate(el);
- generateRandomHtml(el, 4, attributeSet, attributeSet.length);
- var el2 = el.cloneNode(true);
-
- var timerSav = goog.Timer.callOnce;
- goog.Timer.callOnce = localTimer;
-
- s.setExcludeMarker('goog-quote');
- s.check();
- processTimerQueue();
- s.ignoreWord('iggnore');
- processTimerQueue();
- s.check();
- processTimerQueue();
- s.resume();
- processTimerQueue();
-
- goog.Timer.callOnce = timerSav;
-
- assertEquals('Spell checker run should not change the underlying element.',
- el2.innerHTML, el.innerHTML);
- s.dispose();
-};
-
-function testExcludeMarkers() {
- var handler = new goog.spell.SpellCheck(localSpellCheckingFunction);
- var s = new goog.ui.RichTextSpellChecker(handler);
- s.setExcludeMarker(['DIV.goog-quote', 'goog-comment', 'SPAN.goog-note']);
- assertArrayEquals(['goog-quote', 'goog-comment', 'goog-note'],
- s.excludeMarker);
- assertArrayEquals(['DIV', undefined, 'SPAN'], s.excludeTags);
- var el = document.getElementById('test1');
- el.innerHTML = '<div class="goog-quote"></div>' +
- '<div class="goog-yes">skip</div>' +
- '<div class="goog-note"></div>' +
- '<div class="goog-comment"></div>' +
- '<br>';
- var children = el.childNodes;
- var length = children.length;
- assertEquals(5, length);
-
- assertTrue(s.isExcluded_(children[0]));
- assertFalse(s.isExcluded_(children[1]));
- assertFalse(s.isExcluded_(children[2]));
- assertTrue(s.isExcluded_(children[3]));
- assertFalse(s.isExcluded_(children[4]));
-}
-
-function testBiggerDocument() {
- var handler = new goog.spell.SpellCheck(localSpellCheckingFunction);
- var s = new goog.ui.RichTextSpellChecker(handler);
- var el = document.getElementById('test2');
- s.decorate(el);
- generateRandomHtml(el, 4, attributeSet, attributeSet.length);
- var el2 = el.cloneNode(true);
-
- var timerSav = goog.Timer.callOnce;
- goog.Timer.callOnce = localTimer;
-
- s.check();
- processTimerQueue();
- s.resume();
- processTimerQueue();
-
- goog.Timer.callOnce = timerSav;
-
- assertEquals('Spell checker run should not change the underlying element.',
- el2.innerHTML, el.innerHTML);
- s.dispose();
-};
-
-function testElementOverflow() {
- var handler = new goog.spell.SpellCheck(localSpellCheckingFunction);
- var s = new goog.ui.RichTextSpellChecker(handler);
- s.asyncWordsPerBatch_ = 100;
- var el = document.getElementById('test3');
- s.decorate(el);
- var text = generateRandomString(200);
- el.appendChild(document.createTextNode(text));
-
- var el2 = el.cloneNode(true);
-
- var timerSav = goog.Timer.callOnce;
- goog.Timer.callOnce = localTimer;
-
- s.check();
- processTimerQueue();
- s.check();
- processTimerQueue();
- s.resume();
- processTimerQueue();
-
- goog.Timer.callOnce = timerSav;
-
- assertEquals('Spell checker run should not change the underlying element.',
- el2.innerHTML, el.innerHTML);
- s.dispose();
-};
-
-</script>
-</body>
-</html>