12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- <!DOCTYPE HTML>
- <html>
- <!--
- https://bugzilla.mozilla.org/show_bug.cgi?id=1079455
- -->
- <head>
- <title>Sync edit of an input</title>
- <script type="application/javascript;version=1.7" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
- <script type="application/javascript;version=1.7" src="inputmethod_common.js"></script>
- <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"/>
- </head>
- <body>
- <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1079455">Mozilla Bug 1079455</a>
- <p id="display"></p>
- <pre id="test">
- <script class="testbody" type="application/javascript;version=1.7">
- inputmethod_setup(function() {
- runTest();
- });
- let appFrameScript = function appFrameScript() {
- let input = content.document.body.firstElementChild;
- input.focus();
- input.value = 'First1';
- input.blur();
- };
- function runTest() {
- let im = navigator.mozInputMethod;
- let i = 0;
- im.oninputcontextchange = function() {
- let inputcontext = im.inputcontext;
- i++;
- switch (i) {
- case 1:
- ok(!!inputcontext, 'Should receive inputcontext from focus().');
- is(inputcontext.textAfterCursor, 'First');
- break;
- case 2:
- ok(!!inputcontext, 'Should receive inputcontext from value change.');
- is(inputcontext.textBeforeCursor, 'First1');
- break;
- case 3:
- ok(!inputcontext, 'Should lost inputcontext from blur().');
- inputmethod_cleanup();
- break;
- default:
- ok(false, 'Unknown event count.');
- inputmethod_cleanup();
- }
- };
- // Set current page as an input method.
- SpecialPowers.wrap(im).setActive(true);
- let iframe = document.createElement('iframe');
- iframe.src = 'file_test_sync_edit.html';
- iframe.setAttribute('mozbrowser', true);
- document.body.appendChild(iframe);
- let mm = SpecialPowers.getBrowserFrameMessageManager(iframe);
- iframe.addEventListener('mozbrowserloadend', function() {
- mm.loadFrameScript('data:,(' + encodeURIComponent(appFrameScript.toString()) + ')();', false);
- });
- }
- </script>
- </pre>
- </body>
- </html>
|