aboutsummaryrefslogtreecommitdiff
path: root/contexts/data/lib/closure-library/closure/goog/ui/plaintextspellchecker_test.html
diff options
context:
space:
mode:
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/ui/plaintextspellchecker_test.html')
-rw-r--r--contexts/data/lib/closure-library/closure/goog/ui/plaintextspellchecker_test.html239
1 files changed, 0 insertions, 239 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/ui/plaintextspellchecker_test.html b/contexts/data/lib/closure-library/closure/goog/ui/plaintextspellchecker_test.html
deleted file mode 100644
index 4ac10ce..0000000
--- a/contexts/data/lib/closure-library/closure/goog/ui/plaintextspellchecker_test.html
+++ /dev/null
@@ -1,239 +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>
-<!--
-This test has not yet been updated to run on IE8. See http://b/hotlist?id=36311
--->
-<!--meta http-equiv="X-UA-Compatible" content="IE=edge"-->
-<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
-<title>Closure Unit Tests - goog.ui.PlainTextSpellChecker</title>
-<script src="../base.js"></script>
-<script>
- goog.require('goog.dom');
- goog.require('goog.testing.jsunit');
- goog.require('goog.ui.PlainTextSpellChecker');
-</script>
-</head>
-<body>
-
-<textarea id="test1" style="width: 50ex; height: 15em;"></textarea>
-<textarea id="test2" style="width: 50ex; height: 15em;"></textarea>
-<textarea id="test3" style="width: 50ex; height: 15em;"></textarea>
-
-<script>
-
-var missspelling = 'missspelling';
-var iggnore = 'iggnore';
-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, doQuotes) {
- var x = random(10);
- var string = '';
- if (doQuotes) {
- if (x == 0) {
- string = 'On xxxxx yyyy wrote:\n> ';
- } else if (x < 3) {
- string = '> ';
- }
- }
-
- var nWords = 1 + random(maxWords);
- for (var i = 0; i < nWords ; ++i) {
- string += vocabulary[random(vocabulary.length)];
- string += generateRandomSpace();
- }
- return string;
-};
-
-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 testPlainTextSpellCheckerNoQuotes() {
- var handler = new goog.spell.SpellCheck(localSpellCheckingFunction);
- var s = new goog.ui.PlainTextSpellChecker(handler);
- s.asyncWordsPerBatch_ = 100;
- var el = document.getElementById('test1');
- s.decorate(el);
- var text = '';
- for (var i = 0 ; i < 10 ; ++i) {
- text += generateRandomString(10, false) + '\n';
- }
- el.value = text;
- // Yes this looks bizzare. This is for '\n' processing.
- // They get converted to CRLF as part of the above statement.
- text = el.value;
-
- var timerSav = goog.Timer.callOnce;
- goog.Timer.callOnce = localTimer;
-
- 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.',
- text, el.value);
- s.dispose();
-};
-
-function testPlainTextSpellCheckerWithQuotes() {
- var handler = new goog.spell.SpellCheck(localSpellCheckingFunction);
- var s = new goog.ui.PlainTextSpellChecker(handler);
- s.asyncWordsPerBatch_ = 100;
- var el = document.getElementById('test2');
- s.decorate(el);
- var text = '';
- for (var i = 0 ; i < 10; ++i) {
- text += generateRandomString(10, true) + '\n';
- }
- el.value = text;
- // Yes this looks bizzare. This is for '\n' processing.
- // They get converted to CRLF as part of the above statement.
- text = el.value;
-
- var timerSav = goog.Timer.callOnce;
- goog.Timer.callOnce = localTimer;
-
- s.setExcludeMarker(new RegExp('\nOn .* wrote:\n(> .*\n)+|\n(> .*\n)', 'g'));
- 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.',
- text, el.value);
- s.dispose();
-};
-
-function testPlainTextSpellCheckerWordReplacement() {
- var handler = new goog.spell.SpellCheck(localSpellCheckingFunction);
- var s = new goog.ui.PlainTextSpellChecker(handler);
- s.asyncWordsPerBatch_ = 100;
- var el = document.getElementById('test3');
- s.decorate(el);
- var text = '';
- for (var i = 0 ; i < 10 ; ++i) {
- text += generateRandomString(10, false) + '\n';
- }
- el.value = text;
-
- var timerSav = goog.Timer.callOnce;
- goog.Timer.callOnce = localTimer;
-
- s.check();
- processTimerQueue();
-
- var container = s.overlay_;
- var wordEl = container.firstChild;
- while (wordEl) {
- if (goog.dom.getTextContent(wordEl) == missspelling) {
- break;
- }
- wordEl = wordEl.nextSibling;
- }
-
- if (!wordEl) {
- assertTrue('Cannot find the world that should have been here.'
- + 'Please revise the test', false);
- return;
- }
-
- s.activeWord_ = missspelling;
- s.activeElement_ = wordEl;
- var suggestions = s.getSuggestions_();
- s.replaceWord(wordEl, missspelling, 'foo');
- assertEquals('Should have set the original word attribute!',
- wordEl.getAttribute(goog.ui.AbstractSpellChecker.ORIGINAL_),
- missspelling);
-
- s.activeWord_ = goog.dom.getTextContent(wordEl);
- s.activeElement_ = wordEl;
- var newSuggestions = s.getSuggestions_();
- assertEquals('Suggestion list should still be present even if the word '
- + 'is now correct!', suggestions, newSuggestions);
-
- s.resume();
- processTimerQueue();
-
- goog.Timer.callOnce = timerSav;
- s.dispose();
-};
-
-
-
-</script>
-</body>
-</html>