forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			198 lines
		
	
	
	
		
			4.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			198 lines
		
	
	
	
		
			4.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /* Any copyright is dedicated to the Public Domain.
 | |
|    http://creativecommons.org/publicdomain/zero/1.0/ */
 | |
| 
 | |
| "use strict";
 | |
| 
 | |
| let contextMenu;
 | |
| 
 | |
| const example_base =
 | |
|   // eslint-disable-next-line @microsoft/sdl/no-insecure-url
 | |
|   "http://example.com/browser/browser/base/content/test/contextMenu/";
 | |
| const MAIN_URL = example_base + "subtst_contextmenu_keyword.html";
 | |
| 
 | |
| add_task(async function test_setup() {
 | |
|   await BrowserTestUtils.openNewForegroundTab(gBrowser, MAIN_URL);
 | |
| 
 | |
|   const chrome_base =
 | |
|     "chrome://mochitests/content/browser/browser/base/content/test/contextMenu/";
 | |
|   const contextmenu_common = chrome_base + "contextmenu_common.js";
 | |
|   /* import-globals-from contextmenu_common.js */
 | |
|   Services.scriptloader.loadSubScript(contextmenu_common, this);
 | |
| });
 | |
| 
 | |
| add_task(async function test_text_input_spellcheck_noform() {
 | |
|   await test_contextmenu(
 | |
|     "#input_text_no_form",
 | |
|     [
 | |
|       "context-undo",
 | |
|       false,
 | |
|       "context-redo",
 | |
|       false,
 | |
|       "---",
 | |
|       null,
 | |
|       "context-cut",
 | |
|       null, // ignore the enabled/disabled states; there are race conditions
 | |
|       // in the edit commands but they're not relevant for what we're testing.
 | |
|       "context-copy",
 | |
|       null,
 | |
|       "context-paste",
 | |
|       null, // ignore clipboard state
 | |
|       "context-delete",
 | |
|       null,
 | |
|       "context-selectall",
 | |
|       null,
 | |
|       "---",
 | |
|       null,
 | |
|       "spell-check-enabled",
 | |
|       true,
 | |
|       "spell-dictionaries",
 | |
|       true,
 | |
|       [
 | |
|         "spell-check-dictionary-en-US",
 | |
|         true,
 | |
|         "---",
 | |
|         null,
 | |
|         "spell-add-dictionaries",
 | |
|         true,
 | |
|       ],
 | |
|       null,
 | |
|     ],
 | |
|     {
 | |
|       waitForSpellCheck: true,
 | |
|       async preCheckContextMenuFn() {
 | |
|         await SpecialPowers.spawn(
 | |
|           gBrowser.selectedBrowser,
 | |
|           [],
 | |
|           async function() {
 | |
|             let doc = content.document;
 | |
|             let input = doc.getElementById("input_text_no_form");
 | |
|             input.setAttribute("spellcheck", "true");
 | |
|             input.clientTop; // force layout flush
 | |
|           }
 | |
|         );
 | |
|       },
 | |
|     }
 | |
|   );
 | |
| });
 | |
| 
 | |
| add_task(async function test_text_input_spellcheck_loginform() {
 | |
|   await test_contextmenu(
 | |
|     "#login_text",
 | |
|     [
 | |
|       "manage-saved-logins",
 | |
|       true,
 | |
|       "---",
 | |
|       null,
 | |
|       "context-undo",
 | |
|       false,
 | |
|       "context-redo",
 | |
|       false,
 | |
|       "---",
 | |
|       null,
 | |
|       "context-cut",
 | |
|       null, // ignore the enabled/disabled states; there are race conditions
 | |
|       // in the edit commands but they're not relevant for what we're testing.
 | |
|       "context-copy",
 | |
|       null,
 | |
|       "context-paste",
 | |
|       null, // ignore clipboard state
 | |
|       "context-delete",
 | |
|       null,
 | |
|       "context-selectall",
 | |
|       null,
 | |
|       "---",
 | |
|       null,
 | |
|       "spell-check-enabled",
 | |
|       true,
 | |
|       "spell-dictionaries",
 | |
|       true,
 | |
|       [
 | |
|         "spell-check-dictionary-en-US",
 | |
|         true,
 | |
|         "---",
 | |
|         null,
 | |
|         "spell-add-dictionaries",
 | |
|         true,
 | |
|       ],
 | |
|       null,
 | |
|     ],
 | |
|     {
 | |
|       waitForSpellCheck: true,
 | |
|       async preCheckContextMenuFn() {
 | |
|         await SpecialPowers.spawn(
 | |
|           gBrowser.selectedBrowser,
 | |
|           [],
 | |
|           async function() {
 | |
|             let doc = content.document;
 | |
|             let input = doc.getElementById("login_text");
 | |
|             input.setAttribute("spellcheck", "true");
 | |
|             input.clientTop; // force layout flush
 | |
|           }
 | |
|         );
 | |
|       },
 | |
|     }
 | |
|   );
 | |
| });
 | |
| 
 | |
| add_task(async function test_text_input_spellcheck_searchform() {
 | |
|   await test_contextmenu(
 | |
|     "#search_text",
 | |
|     [
 | |
|       "context-undo",
 | |
|       false,
 | |
|       "context-redo",
 | |
|       false,
 | |
|       "---",
 | |
|       null,
 | |
|       "context-cut",
 | |
|       null, // ignore the enabled/disabled states; there are race conditions
 | |
|       // in the edit commands but they're not relevant for what we're testing.
 | |
|       "context-copy",
 | |
|       null,
 | |
|       "context-paste",
 | |
|       null, // ignore clipboard state
 | |
|       "context-delete",
 | |
|       null,
 | |
|       "context-selectall",
 | |
|       null,
 | |
|       "---",
 | |
|       null,
 | |
|       "context-keywordfield",
 | |
|       null,
 | |
|       "---",
 | |
|       null,
 | |
|       "spell-check-enabled",
 | |
|       true,
 | |
|       "spell-dictionaries",
 | |
|       true,
 | |
|       [
 | |
|         "spell-check-dictionary-en-US",
 | |
|         true,
 | |
|         "---",
 | |
|         null,
 | |
|         "spell-add-dictionaries",
 | |
|         true,
 | |
|       ],
 | |
|       null,
 | |
|     ],
 | |
|     {
 | |
|       waitForSpellCheck: true,
 | |
|       async preCheckContextMenuFn() {
 | |
|         await SpecialPowers.spawn(
 | |
|           gBrowser.selectedBrowser,
 | |
|           [],
 | |
|           async function() {
 | |
|             let doc = content.document;
 | |
|             let input = doc.getElementById("search_text");
 | |
|             input.setAttribute("spellcheck", "true");
 | |
|             input.clientTop; // force layout flush
 | |
|           }
 | |
|         );
 | |
|       },
 | |
|     }
 | |
|   );
 | |
| });
 | |
| 
 | |
| add_task(async function test_cleanup() {
 | |
|   BrowserTestUtils.removeTab(gBrowser.selectedTab);
 | |
| });
 | 
