12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- <!DOCTYPE HTML>
- <html>
- <!--
- https://bugzilla.mozilla.org/show_bug.cgi?id=1059163
- -->
- <head>
- <title>Basic test for repeat sendKey events</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=1059163">Mozilla Bug 1059163</a>
- <p id="display"></p>
- <pre id="test">
- <script class="testbody" type="application/javascript;version=1.7">
- inputmethod_setup(function() {
- runTest();
- });
- // The frame script running in the file
- function appFrameScript() {
- let document = content.document;
- let window = content.document.defaultView;
- let t = document.getElementById('text');
- t.focus();
- let range = document.createRange();
- range.selectNodeContents(t);
- range.collapse(false);
- let selection = window.getSelection();
- selection.removeAllRanges();
- selection.addRange(range);
- addMessageListener('test:InputMethod:clear', function() {
- t.innerHTML = '';
- });
- }
- function runTest() {
- let im = navigator.mozInputMethod;
- // Set current page as an input method.
- SpecialPowers.wrap(im).setActive(true);
- // Create an app frame to recieve keyboard inputs.
- let app = document.createElement('iframe');
- app.src = 'file_test_bug1066515.html';
- app.setAttribute('mozbrowser', true);
- document.body.appendChild(app);
- app.addEventListener('mozbrowserloadend', function() {
- let mm = SpecialPowers.getBrowserFrameMessageManager(app);
- mm.loadFrameScript('data:,(' + encodeURIComponent(appFrameScript.toString()) + ')();', false);
- im.oninputcontextchange = function() {
- is(im.inputcontext.type, 'contenteditable', 'type');
- is(im.inputcontext.inputType, 'textarea', 'inputType');
- if (im.inputcontext) {
- im.oninputcontextchange = null;
- register();
- }
- };
- function register() {
- im.inputcontext.onselectionchange = function() {
- im.inputcontext.onselectionchange = null;
- is(im.inputcontext.textBeforeCursor, '', 'textBeforeCursor');
- is(im.inputcontext.textAfterCursor, '', 'textAfterCursor');
- is(im.inputcontext.selectionStart, 0, 'selectionStart');
- is(im.inputcontext.selectionEnd, 0, 'selectionEnd');
- inputmethod_cleanup();
- };
- mm.sendAsyncMessage('test:InputMethod:clear');
- }
- });
- }
- </script>
- </pre>
- </body>
- </html>
|