michael@0: function test() { michael@0: waitForExplicitFinish(); michael@0: michael@0: var rootDir = "http://mochi.test:8888/browser/docshell/test/browser/"; michael@0: gBrowser.selectedTab = gBrowser.addTab(rootDir + "file_bug234628-11.html"); michael@0: gBrowser.selectedBrowser.addEventListener("load", afterOpen, true); michael@0: } michael@0: michael@0: function afterOpen(event) { michael@0: if (event.target != gBrowser.contentDocument) { michael@0: return; michael@0: } michael@0: michael@0: gBrowser.selectedBrowser.removeEventListener("load", afterOpen, true); michael@0: gBrowser.selectedBrowser.addEventListener("load", afterChangeCharset, true); michael@0: michael@0: is(gBrowser.contentDocument.documentElement.textContent.indexOf('\u20AC'), 193, "Parent doc should be windows-1252 initially"); michael@0: michael@0: is(gBrowser.contentDocument.getElementsByTagName("iframe")[0].contentDocument.documentElement.textContent.indexOf('\u20AC'), 107, "Child doc should be utf-8 initially"); michael@0: michael@0: BrowserSetForcedCharacterSet("windows-1251"); michael@0: } michael@0: michael@0: function afterChangeCharset(event) { michael@0: if (event.target != gBrowser.contentDocument) { michael@0: return; michael@0: } michael@0: michael@0: gBrowser.selectedBrowser.removeEventListener("load", afterChangeCharset, true); michael@0: michael@0: is(gBrowser.contentDocument.documentElement.textContent.indexOf('\u0402'), 193, "Parent doc should decode as windows-1251 subsequently"); michael@0: is(gBrowser.contentDocument.getElementsByTagName("iframe")[0].contentDocument.documentElement.textContent.indexOf('\u20AC'), 107, "Child doc should decode as utf-8 subsequently"); michael@0: michael@0: is(gBrowser.contentDocument.characterSet, "windows-1251", "Parent doc should report windows-1251 subsequently"); michael@0: is(gBrowser.contentDocument.getElementsByTagName("iframe")[0].contentDocument.characterSet, "UTF-8", "Child doc should report UTF-8 subsequently"); michael@0: michael@0: gBrowser.removeCurrentTab(); michael@0: finish(); michael@0: }