<!DOCTYPE> <html> <!-- https://bugzilla.mozilla.org/show_bug.cgi?id=1140105 --> <head> <title>Test for Bug 1140105</title> <script src="/tests/SimpleTest/SimpleTest.js"></script> <link rel="stylesheet" href="/tests/SimpleTest/test.css"> <script src="/tests/SimpleTest/EventUtils.js"></script> </head> <body> <div id="display"> </div> <div id="content" contenteditable><font face="Arial">1234567890</font></div> <pre id="test"> </pre> <script class="testbody" type="application/javascript"> /** Test for Bug 1140105 **/ SimpleTest.waitForExplicitFinish(); SimpleTest.waitForFocus(function() { var div = document.getElementById("content"); div.focus(); synthesizeMouseAtCenter(div, {}); synthesizeKey("VK_LEFT", {}); var sel = window.getSelection(); var selRange = sel.getRangeAt(0); is(selRange.endContainer.nodeName, "#text", "selection should be in text node"); is(selRange.endOffset, 9, "offset should be 9"); var firstHas = {}; var anyHas = {}; var allHas = {}; var editor = getEditor(); var atomService = SpecialPowers.Cc["@mozilla.org/atom-service;1"].getService(SpecialPowers.Ci.nsIAtomService); var propAtom = atomService.getAtom("font"); editor.getInlineProperty(propAtom, "face", "Arial", firstHas, anyHas, allHas); is(firstHas.value, true, "Test for Arial: firstHas: true expected"); is(anyHas.value, true, "Test for Arial: anyHas: true expected"); is(allHas.value, true, "Test for Arial: allHas: true expected"); editor.getInlineProperty(propAtom, "face", "Courier", firstHas, anyHas, allHas); is(firstHas.value, false, "Test for Courier: firstHas: false expected"); is(anyHas.value, false, "Test for Courier: anyHas: false expected"); is(allHas.value, false, "Test for Courier: allHas: false expected"); SimpleTest.finish(); }); function getEditor() { var Ci = SpecialPowers.Ci; var editingSession = SpecialPowers.wrap(window) .QueryInterface(Ci.nsIInterfaceRequestor) .getInterface(Ci.nsIWebNavigation) .QueryInterface(Ci.nsIInterfaceRequestor) .getInterface(Ci.nsIEditingSession); var editor = editingSession.getEditorForWindow(window); editor.QueryInterface(Ci.nsIHTMLEditor); return editor; } </script> </body> </html>