3 <title>Test for IME state of contenteditable on readonly state change
</title>
4 <script src=
"chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
5 <script src=
"file_ime_state_test_helper.js"></script>
6 <script src=
"file_test_ime_state_in_contenteditable_on_readonly_change.js"></script>
7 <link rel=
"stylesheet" href=
"chrome://mochikit/content/tests/SimpleTest/test.css">
11 /* import-globals-from file_ime_state_test_helper.js */
12 /* import-globals-from file_test_ime_state_in_contenteditable_on_readonly_change.js */
14 SimpleTest
.waitForExplicitFinish();
15 SimpleTest
.waitForFocus(async () => {
16 const tipWrapper
= new TIPWrapper(window
);
17 const editingHost
= document
.querySelector("div[contenteditable]");
18 await (async
function test_ime_state_in_contenteditable_on_readonly_change() {
19 const tester
= new IMEStateInContentEditableOnReadonlyChangeTester();
20 tester
.checkResultOfPreparation(await tester
.prepareToRun(editingHost
, editingHost
), window
, tipWrapper
);
21 tester
.checkResultOfMakingHTMLEditorReadonly(await tester
.runToMakeHTMLEditorReadonly());
22 tester
.checkResultOfMakingHTMLEditorEditable(await tester
.runToMakeHTMLEditorEditable());
23 tester
.checkResultOfRemovingContentEditableAttribute(await tester
.runToRemoveContentEditableAttribute());
27 await (async
function test_ime_state_in_button_in_contenteditable_on_readonly_change() {
28 const tester
= new IMEStateInContentEditableOnReadonlyChangeTester();
29 const button
= editingHost
.querySelector("button");
30 tester
.checkResultOfPreparation(await tester
.prepareToRun(editingHost
, button
), window
, tipWrapper
);
31 tester
.checkResultOfMakingHTMLEditorReadonly(await tester
.runToMakeHTMLEditorReadonly());
32 tester
.checkResultOfMakingHTMLEditorEditable(await tester
.runToMakeHTMLEditorEditable());
33 tester
.checkResultOfRemovingContentEditableAttribute(await tester
.runToRemoveContentEditableAttribute());
37 await (async
function test_ime_state_of_text_controls_in_contenteditable_on_readonly_change() {
38 const tester
= new IMEStateOfTextControlInContentEditableOnReadonlyChangeTester();
40 index
< IMEStateOfTextControlInContentEditableOnReadonlyChangeTester
.numberOfTextControlTypes
;
42 tester
.checkResultOfPreparation(await tester
.prepareToRun(index
, editingHost
), window
, tipWrapper
);
43 tester
.checkResultOfMakingParentEditingHost(await tester
.runToMakeParentEditingHost());
44 tester
.checkResultOfMakingHTMLEditorReadonly(await tester
.runToMakeHTMLEditorReadonly());
45 tester
.checkResultOfMakingHTMLEditorEditable(await tester
.runToMakeHTMLEditorEditable());
46 tester
.checkResultOfMakingParentNonEditable(await tester
.runToMakeParentNonEditingHost());
49 editingHost
.setAttribute("contenteditable", "");
52 await (async
function test_ime_state_outside_contenteditable_on_readonly_change() {
53 const tester
= new IMEStateOutsideContentEditableOnReadonlyChangeTester();
55 index
< IMEStateOutsideContentEditableOnReadonlyChangeTester
.numberOfFocusTargets
;
57 tester
.checkResultOfPreparation(await tester
.prepareToRun(index
, editingHost
), window
, tipWrapper
);
58 tester
.checkResultOfMakingParentEditingHost(await tester
.runToMakeParentEditingHost());
59 tester
.checkResultOfMakingHTMLEditorReadonly(await tester
.runToMakeHTMLEditorReadonly());
60 tester
.checkResultOfMakingHTMLEditorEditable(await tester
.runToMakeHTMLEditorEditable());
61 tester
.checkResultOfMakingParentNonEditable(await tester
.runToMakeParentNonEditingHost());
64 editingHost
.setAttribute("contenteditable", "");
71 <body><div contenteditable
><br><button>button
</button></div></body>