Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(20)

Side by Side Diff: LayoutTests/editing/spelling/spellcheck-disable-enable.html

Issue 70073005: Refactoring spellcheck-disable-enable.html to use async path for spellcheck (Closed) Base URL: https://chromium.googlesource.com/chromium/blink@master
Patch Set: type misspellings via execCommand as it spellcheks better than just focus Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | LayoutTests/editing/spelling/spellcheck-disable-enable-expected.txt » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <html> 2 <html>
3 <head> 3 <head>
4 <script src="../../resources/js-test.js"></script> 4 <script src="../../resources/js-test.js"></script>
5 </head> 5 </head>
6 <body onload="test(document.getElementById('destination'), document.getElementBy Id('frame').contentWindow.document);"> 6 <body onload="test(document.getElementById('destination'), document.getElementBy Id('frame').contentWindow.document);">
7 <pre id="console"></pre>
8 <div id="container"> 7 <div id="container">
9 <div id="destination" contentEditable></div> 8 <div id="destination" contentEditable></div>
10 <iframe id="frame" src="data:text/html,<body contenteditable></body>"></iframe > 9 <iframe id="frame" src="data:text/html,<body contenteditable></body>"></iframe >
11 </div> 10 </div>
12 11
13 <script> 12 <script>
14 description("Spell check markers should be removed from the whole page when disa bling spell checker but " + 13 description("Spell check markers should be removed from the whole page when disa bling spell checker "
15 "they should be restored in the focused editable if spell checker gets enabled. " + 14 + "but they should be restored in the focused editable if spell checker gets enabled. "
16 "To test manually type something with mispellings in the above editable element and iframe and turn " + 15 + "To test manually, turn spell checker off - misspelling markers should dis appear. "
17 "spell checker off - misspelling markers should disappear. Having the editable f ocused " + 16 + "Having the editable focused, turn spell checker on. Misspellings in the e ditable should be marked.");
18 "turn spell checker on again. Misspellings in the editable should be marked agai n.");
19 17
20 jsTestIsAsync = true; 18 jsTestIsAsync = true;
21 19
22 var destination_elm = null; 20 function hasSpellingMarkerOnSetting(element, enableSpellChecking)
23 var destination_elm_in_frame = null; 21 {
22 internals.setContinuousSpellCheckingEnabled(enableSpellChecking);
23 return !!internals.markerCountForNode(element.firstChild, "spelling");
24 }
24 25
25 function test(destination, frame_doc) 26 var editableDiv = null;
27 var editableBodyInFrame = null;
28
29 function test(div, frameDocument)
26 { 30 {
27 if (!window.internals) 31 editableDiv = div;
28 { 32 editableBodyInFrame = frameDocument.body;
29 document.getElementById("console").innerHTML = "Automatic testing imposs ible. Test manually.\n"; 33
34 // Type misspellings to trigger spellchecking on editable fields.
35 editableDiv.focus();
36 document.execCommand("InsertText", false, "zz.");
37 editableBodyInFrame.focus();
38 frameDocument.execCommand("InsertText", false, "zz.");
39
40 if (!window.internals) {
41 debug("Automatic testing impossible. Test manually.");
30 return; 42 return;
31 } 43 }
32 44
33 internals.settings.setAsynchronousSpellCheckingEnabled(false); 45 internals.settings.setAsynchronousSpellCheckingEnabled(true);
34 internals.settings.setUnifiedTextCheckerEnabled(true); 46 internals.settings.setUnifiedTextCheckerEnabled(true);
35 47
36 destination_elm = destination; 48 shouldBecomeEqual('hasSpellingMarkerOnSetting(editableDiv, true)', 'true', f unction() {
37 destination_elm_in_frame = frame_doc.body; 49 shouldBecomeEqual('hasSpellingMarkerOnSetting(editableBodyInFrame, true) ', 'true', function() {
38 destination_elm.focus(); 50 // Turn off spellchecking, all misspellings should disappear.
39 document.execCommand("InsertText", false, "zz."); 51 shouldBecomeEqual('hasSpellingMarkerOnSetting(editableDiv, false)', 'false', function() {
40 shouldBe('internals.markerCountForNode(destination_elm.childNodes[0], "spell ing")', '1'); 52 shouldBecomeEqual('hasSpellingMarkerOnSetting(editableBodyInFram e, false)', 'false', function() {
41 destination_elm_in_frame.focus(); 53 // Focus element and turn on spellchecking.
42 frame_doc.execCommand("InsertText", false, "zz."); 54 // Only misspellings of the focused element should be restor ed.
43 shouldBe('internals.markerCountForNode(destination_elm_in_frame.childNodes[0 ], "spelling")', '1'); 55 editableDiv.focus();
44 internals.setContinuousSpellCheckingEnabled(false); 56 shouldBecomeEqual('hasSpellingMarkerOnSetting(editableDiv, t rue)', 'true', function() {
45 shouldBe('internals.markerCountForNode(destination_elm.childNodes[0], "spell ing")', '0'); 57 shouldBecomeEqual('hasSpellingMarkerOnSetting(editableBo dyInFrame, true)', 'false', finishJSTest);
46 shouldBe('internals.markerCountForNode(destination_elm_in_frame.childNodes[0 ], "spelling")', '0'); 58 });
47 destination_elm.focus(); 59 });
48 internals.setContinuousSpellCheckingEnabled(true); 60 });
49 shouldBe('internals.markerCountForNode(destination_elm.childNodes[0], "spell ing")', '1'); 61 });
50 62 });
51 finishJSTest();
52 } 63 }
53 64
54 </script> 65 </script>
55 </body> 66 </body>
56 </html> 67 </html>
OLDNEW
« no previous file with comments | « no previous file | LayoutTests/editing/spelling/spellcheck-disable-enable-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698