file_bug616841.xhtml (2043B)
1 <?xml version="1.0"?> 2 <?xml-stylesheet href="chrome://global/skin" type="text/css"?> 3 <?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" 4 type="text/css"?> 5 <!-- 6 https://bugzilla.mozilla.org/show_bug.cgi?id=616841 7 --> 8 <window title="Mozilla Bug 616841" 9 xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" 10 onload="start()"> 11 <label value="Mozilla Bug 616841"/> 12 <!-- test code goes here --> 13 <script type="application/javascript"><![CDATA[ 14 /* global messageManager, sendAsyncMessage */ 15 const FRAME_SCRIPT = 16 "data:,addMessageListener(\n"+ 17 " 'cmp',\n"+ 18 " function (m) {\n"+ 19 " sendAsyncMessage('cmp', { i: m.json.i,\n"+ 20 " cmp: m.json.a.localeCompare(m.json.b) });\n"+ 21 " });\n"+ 22 "sendAsyncMessage('contentReady');"; 23 24 var toCompare = [ [ "C", "D" ], 25 [ "D", "C" ], 26 [ "\u010C", "D" ], 27 [ "D", "\u010C" ] ]; 28 var nCmps = 0; 29 30 function recvContentReady() { 31 for (var i = 0; i < toCompare.length; ++i) { 32 var pair = toCompare[i]; 33 messageManager.broadcastAsyncMessage("cmp", 34 { i, a: pair[0], b: pair[1] }); 35 } 36 } 37 38 function recvCmp(m) { 39 var i = m.json.i, cmp = m.json.cmp; 40 var pair = toCompare[i]; 41 window.arguments[0].is(pair[0].localeCompare(pair[1]), cmp, "localeCompare returned same result in frame script"); 42 43 if (toCompare.length == ++nCmps) { 44 messageManager.removeMessageListener("cmp", recvCmp); 45 finish(); 46 } 47 } 48 49 function start() { 50 messageManager.addMessageListener("contentReady", recvContentReady); 51 messageManager.addMessageListener("cmp", recvCmp); 52 messageManager.loadFrameScript(FRAME_SCRIPT, true); 53 } 54 55 function finish() { 56 window.arguments[0].setTimeout(function() { this.done(); }, 0); 57 window.close(); 58 } 59 60 ]]></script> 61 62 <browser id="browser" type="content" src="about:blank"/> 63 </window>