/* Tests conversion of unrepresented characters that should be transliterated
 * to spaces (bug 365345), and some others from transliterate.properties while
 * I'm here
 */

const inSpace = "Hello Space";
const inEnSpace = "Hello\u2002EnSpace";
const inEmSpace = "Hello\u2003EmSpace";
const inEuro = "Hello\u20ACEuro";
const inTamil1000 = "Hello\u0BF2Tamil1000";
const inMonospace9 = "Hello\ud835\udfffMonospace9";
    
const expectedSpace = "Hello Space";
const expectedEnSpace = "Hello EnSpace";
const expectedEmSpace = "Hello EmSpace";
const expectedEuro = "HelloEUREuro";
const expectedTamil1000 = "Hello[1000]Tamil1000";
const expectedMonospace9 = "Hello9Monospace9";

const EntityAfterCharsetConv = 512;
const transliterate = 8;

const charset = "ISO-8859-2";

function run_test() {
    var SaveAsCharset =
	Components.Constructor("@mozilla.org/intl/saveascharset;1",
			       "nsISaveAsCharset",
			       "Init");

    var converter = new SaveAsCharset(charset,
				      EntityAfterCharsetConv, 
				      transliterate);

    var outSpace = converter.Convert(inSpace);
    do_check_eq(outSpace, expectedSpace);

    var outEnSpace = converter.Convert(inEnSpace);
    do_check_eq(outEnSpace, expectedEnSpace);

    var outEmSpace = converter.Convert(inEmSpace);
    do_check_eq(outEmSpace, expectedEmSpace);

    var outEuro = converter.Convert(inEuro);
    do_check_eq(outEuro, expectedEuro);

    var outTamil1000 = converter.Convert(inTamil1000);
    do_check_eq(outTamil1000, expectedTamil1000);

    var outMonospace9 = converter.Convert(inMonospace9);
    do_check_eq(outMonospace9, expectedMonospace9);
}
