123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- <?xml version="1.0"?>
- <?xml-stylesheet href="chrome://global/skin"
- type="text/css"?>
- <?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
- type="text/css"?>
- <!--
- https://bugzilla.mozilla.org/show_bug.cgi?id=434998
- -->
- <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
- title="Mozilla Bug 434998" onload="runTest();">
- <script type="application/javascript"
- src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"/>
- <script type="application/javascript"
- src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
- <body xmlns="http://www.w3.org/1999/xhtml">
- <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=434998"
- target="_blank">Mozilla Bug 434998</a>
- <p/>
- <editor xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
- id="editor"
- type="content-primary"
- editortype="html"
- style="width: 400px; height: 100px; border: thin solid black"/>
- <p/>
- <pre id="test">
- </pre>
- </body>
- <script class="testbody" type="application/javascript">
- <![CDATA[
- SimpleTest.waitForExplicitFinish();
- function EditorContentListener(aEditor)
- {
- this.init(aEditor);
- }
- EditorContentListener.prototype = {
- init : function(aEditor)
- {
- this.mEditor = aEditor;
- },
- QueryInterface : function(aIID)
- {
- if (aIID.equals(Components.interfaces.nsIWebProgressListener) ||
- aIID.equals(Components.interfaces.nsISupportsWeakReference) ||
- aIID.equals(Components.interfaces.nsISupports))
- return this;
- throw Components.results.NS_NOINTERFACE;
- },
- onStateChange : function(aWebProgress, aRequest, aStateFlags, aStatus)
- {
- if (aStateFlags & Components.interfaces.nsIWebProgressListener.STATE_STOP)
- {
- var editor = this.mEditor.getEditor(this.mEditor.contentWindow);
- if (editor) {
- // Should not throw
- var threw = false;
- try {
- this.mEditor.contentDocument.execCommand("bold", false, null);
- } catch (e) {
- threw = true;
- }
- ok(!threw, "The execCommand API should work on <xul:editor>");
- progress.removeProgressListener(progressListener, Components.interfaces.nsIWebProgress.NOTIFY_ALL);
- SimpleTest.finish();
- }
- }
- },
- onProgressChange : function(aWebProgress, aRequest,
- aCurSelfProgress, aMaxSelfProgress,
- aCurTotalProgress, aMaxTotalProgress)
- {
- },
- onLocationChange : function(aWebProgress, aRequest, aLocation, aFlags)
- {
- },
- onStatusChange : function(aWebProgress, aRequest, aStatus, aMessage)
- {
- },
- onSecurityChange : function(aWebProgress, aRequest, aState)
- {
- },
- mEditor: null
- };
- var progress, progressListener;
- function runTest() {
- var newEditorElement = document.getElementById("editor");
- newEditorElement.makeEditable("html", true);
- var docShell = newEditorElement.boxObject.docShell;
- progress = docShell.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIWebProgress);
- progressListener = new EditorContentListener(newEditorElement);
- progress.addProgressListener(progressListener, Components.interfaces.nsIWebProgress.NOTIFY_ALL);
- newEditorElement.setAttribute("src", "data:text/html,");
- }
- ]]>
- </script>
- </window>
|