mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 19:35:51 +00:00
Bug 718500 - View > Character Encoding > Auto-Detect menupopup is broken. r=smontagu
This commit is contained in:
parent
3cb9a88bc2
commit
a917609af0
@ -238,7 +238,6 @@ nsCharsetConverterManager::GetList(const nsACString& aCategory,
|
||||
*aResult = NULL;
|
||||
|
||||
nsresult rv;
|
||||
nsCAutoString alias;
|
||||
|
||||
nsCOMPtr<nsICategoryManager> catman = do_GetService(NS_CATEGORYMANAGER_CONTRACTID, &rv);
|
||||
if (NS_FAILED(rv))
|
||||
@ -262,18 +261,13 @@ nsCharsetConverterManager::GetList(const nsACString& aCategory,
|
||||
if (!supStr)
|
||||
continue;
|
||||
|
||||
nsCAutoString fullName(aPrefix);
|
||||
|
||||
nsCAutoString name;
|
||||
if (NS_FAILED(supStr->GetData(name)))
|
||||
continue;
|
||||
|
||||
fullName += name;
|
||||
rv = GetCharsetAlias(fullName.get(), alias);
|
||||
if (NS_FAILED(rv))
|
||||
continue;
|
||||
|
||||
rv = array->AppendElement(alias) ? NS_OK : NS_ERROR_OUT_OF_MEMORY;
|
||||
nsCAutoString fullName(aPrefix);
|
||||
fullName.Append(name);
|
||||
NS_ENSURE_TRUE(array->AppendElement(fullName), NS_ERROR_OUT_OF_MEMORY);
|
||||
}
|
||||
|
||||
return NS_NewAdoptingUTF8StringEnumerator(aResult, array);
|
||||
@ -317,7 +311,6 @@ nsCharsetConverterManager::GetCharsetAlias(const char * aCharset,
|
||||
nsCOMPtr<nsICharsetAlias> csAlias(do_GetService(NS_CHARSETALIAS_CONTRACTID, &rv));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
nsAutoString pref;
|
||||
rv = csAlias->GetPreferred(nsDependentCString(aCharset), aResult);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
|
219
intl/uconv/tests/unit/test_bug718500.js
Normal file
219
intl/uconv/tests/unit/test_bug718500.js
Normal file
@ -0,0 +1,219 @@
|
||||
var detectList = [
|
||||
"chardet.universal_charset_detector",
|
||||
"chardet.ja_parallel_state_machine",
|
||||
"chardet.ko_parallel_state_machine",
|
||||
"chardet.zhtw_parallel_state_machine",
|
||||
"chardet.zhcn_parallel_state_machine",
|
||||
"chardet.zh_parallel_state_machine",
|
||||
"chardet.cjk_parallel_state_machine",
|
||||
"chardet.off",
|
||||
"chardet.ruprob",
|
||||
"chardet.ukprob",
|
||||
];
|
||||
|
||||
var encoderList = [
|
||||
"ISO-8859-1",
|
||||
"windows-1252",
|
||||
"x-mac-roman",
|
||||
"UTF-8",
|
||||
"us-ascii",
|
||||
"ISO-8859-2",
|
||||
"ISO-8859-3",
|
||||
"ISO-8859-4",
|
||||
"ISO-8859-5",
|
||||
"ISO-8859-6",
|
||||
"ISO-8859-6-I",
|
||||
"ISO-8859-6-E",
|
||||
"ISO-8859-7",
|
||||
"ISO-8859-8",
|
||||
"ISO-8859-8-I",
|
||||
"ISO-8859-8-E",
|
||||
"ISO-8859-9",
|
||||
"ISO-8859-10",
|
||||
"ISO-8859-13",
|
||||
"ISO-8859-14",
|
||||
"ISO-8859-15",
|
||||
"ISO-8859-16",
|
||||
"ISO-IR-111",
|
||||
"windows-1250",
|
||||
"windows-1251",
|
||||
"windows-1253",
|
||||
"windows-1254",
|
||||
"windows-1255",
|
||||
"windows-1256",
|
||||
"windows-1257",
|
||||
"windows-1258",
|
||||
"TIS-620",
|
||||
"windows-874",
|
||||
"ISO-8859-11",
|
||||
"KOI8-R",
|
||||
"KOI8-U",
|
||||
"x-mac-ce",
|
||||
"x-mac-greek",
|
||||
"x-mac-turkish",
|
||||
"x-mac-croatian",
|
||||
"x-mac-romanian",
|
||||
"x-mac-cyrillic",
|
||||
"x-mac-icelandic",
|
||||
"armscii-8",
|
||||
"x-viet-tcvn5712",
|
||||
"VISCII",
|
||||
"x-viet-vps",
|
||||
"UTF-7",
|
||||
"x-imap4-modified-utf7",
|
||||
"UTF-16",
|
||||
"UTF-16BE",
|
||||
"UTF-16LE",
|
||||
"T.61-8bit",
|
||||
"x-user-defined",
|
||||
"x-mac-arabic",
|
||||
"x-mac-devanagari",
|
||||
"x-mac-farsi",
|
||||
"x-mac-gurmukhi",
|
||||
"x-mac-gujarati",
|
||||
"x-mac-hebrew",
|
||||
|
||||
"Adobe-Symbol-Encoding",
|
||||
"x-zapf-dingbats",
|
||||
"x-tscii",
|
||||
"x-tamilttf-0",
|
||||
|
||||
"IBM850",
|
||||
"IBM852",
|
||||
"IBM855",
|
||||
"IBM857",
|
||||
"IBM862",
|
||||
"IBM864",
|
||||
"IBM864i",
|
||||
"IBM866",
|
||||
"Shift_JIS",
|
||||
"ISO-2022-JP",
|
||||
"EUC-JP",
|
||||
"jis_0201",
|
||||
"x-euc-tw",
|
||||
"Big5",
|
||||
"Big5-HKSCS",
|
||||
"hkscs-1",
|
||||
"EUC-KR",
|
||||
"x-johab",
|
||||
"x-windows-949",
|
||||
"GB2312",
|
||||
"gbk",
|
||||
"HZ-GB-2312",
|
||||
"gb18030",
|
||||
];
|
||||
|
||||
var decoderList = [
|
||||
"ISO-8859-1",
|
||||
"windows-1252",
|
||||
"x-mac-roman",
|
||||
"UTF-8",
|
||||
"us-ascii",
|
||||
"ISO-8859-2",
|
||||
"ISO-8859-3",
|
||||
"ISO-8859-4",
|
||||
"ISO-8859-5",
|
||||
"ISO-8859-6",
|
||||
"ISO-8859-6-I",
|
||||
"ISO-8859-6-E",
|
||||
"ISO-8859-7",
|
||||
"ISO-8859-8",
|
||||
"ISO-8859-8-I",
|
||||
"ISO-8859-8-E",
|
||||
"ISO-8859-9",
|
||||
"ISO-8859-10",
|
||||
"ISO-8859-13",
|
||||
"ISO-8859-14",
|
||||
"ISO-8859-15",
|
||||
"ISO-8859-16",
|
||||
"ISO-IR-111",
|
||||
"windows-1250",
|
||||
"windows-1251",
|
||||
"windows-1253",
|
||||
"windows-1254",
|
||||
"windows-1255",
|
||||
"windows-1256",
|
||||
"windows-1257",
|
||||
"windows-1258",
|
||||
"TIS-620",
|
||||
"windows-874",
|
||||
"ISO-8859-11",
|
||||
"KOI8-R",
|
||||
"KOI8-U",
|
||||
"x-mac-ce",
|
||||
"x-mac-greek",
|
||||
"x-mac-turkish",
|
||||
"x-mac-croatian",
|
||||
"x-mac-romanian",
|
||||
"x-mac-cyrillic",
|
||||
"x-mac-icelandic",
|
||||
"armscii-8",
|
||||
"x-viet-tcvn5712",
|
||||
"VISCII",
|
||||
"x-viet-vps",
|
||||
"UTF-7",
|
||||
"x-imap4-modified-utf7",
|
||||
"UTF-16",
|
||||
"UTF-16BE",
|
||||
"UTF-16LE",
|
||||
"T.61-8bit",
|
||||
"x-user-defined",
|
||||
"x-mac-arabic",
|
||||
"x-mac-devanagari",
|
||||
"x-mac-farsi",
|
||||
"x-mac-gurmukhi",
|
||||
"x-mac-gujarati",
|
||||
"x-mac-hebrew",
|
||||
"IBM850",
|
||||
"IBM852",
|
||||
"IBM855",
|
||||
"IBM857",
|
||||
"IBM862",
|
||||
"IBM864",
|
||||
"IBM864i",
|
||||
"IBM866",
|
||||
"Shift_JIS",
|
||||
"ISO-2022-JP",
|
||||
"EUC-JP",
|
||||
"x-euc-tw",
|
||||
"Big5",
|
||||
"Big5-HKSCS",
|
||||
"EUC-KR",
|
||||
"x-johab",
|
||||
"x-windows-949",
|
||||
"GB2312",
|
||||
"gbk",
|
||||
"HZ-GB-2312",
|
||||
"gb18030",
|
||||
"ISO-2022-KR",
|
||||
"ISO-2022-CN",
|
||||
];
|
||||
|
||||
function verifyList(aEnumerator, aList)
|
||||
{
|
||||
var count = 0;
|
||||
|
||||
while (aEnumerator.hasMore()) {
|
||||
var result = aEnumerator.getNext();
|
||||
for (var i = 0; i < aList.length; i++) {
|
||||
if (result == aList[i]) {
|
||||
count++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (i == aList.length) {
|
||||
do_throw("Unknown chardet: " + result);
|
||||
}
|
||||
}
|
||||
do_check_eq(count, aList.length);
|
||||
}
|
||||
|
||||
function run_test()
|
||||
{
|
||||
var cm = Components.classes["@mozilla.org/charset-converter-manager;1"]
|
||||
.getService(Components.interfaces.nsICharsetConverterManager);
|
||||
|
||||
verifyList(cm.GetCharsetDetectorList(), detectList);
|
||||
verifyList(cm.getEncoderList(), encoderList);
|
||||
verifyList(cm.getDecoderList(), decoderList);
|
||||
}
|
@ -29,6 +29,7 @@ tail =
|
||||
[test_bug699673.js]
|
||||
[test_bug90411.js]
|
||||
[test_bug713519.js]
|
||||
[test_bug718500.js]
|
||||
[test_charset_conversion.js]
|
||||
[test_decode_8859-1.js]
|
||||
[test_decode_8859-10.js]
|
||||
|
Loading…
Reference in New Issue
Block a user