Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 function xmlEncode(aFile, aFlags, aCharset) {
7 if(aFlags == undefined) aFlags = 0;
8 if(aCharset == undefined) aCharset = "UTF-8";
10 var doc = do_parse_document(aFile, "text/xml");
12 var encoder = Components.classes["@mozilla.org/layout/documentEncoder;1?type=text/xml"]
13 .createInstance(nsIDocumentEncoder);
14 encoder.setCharset(aCharset);
15 encoder.init(doc, "text/xml", aFlags);
16 return encoder.encodeToString();
17 }
19 function run_test()
20 {
21 var result, expected;
22 const de = Components.interfaces.nsIDocumentEncoder;
24 result = xmlEncode("1_original.xml", de.OutputLFLineBreak);
25 expected =loadContentFile("1_result.xml");
26 do_check_eq(expected, result);
28 result = xmlEncode("2_original.xml", de.OutputLFLineBreak);
29 expected = loadContentFile("2_result_1.xml");
30 do_check_eq(expected, result);
32 result = xmlEncode("2_original.xml", de.OutputCRLineBreak);
33 expected = expected.replace(/\n/g, "\r");
34 do_check_eq(expected, result);
36 result = xmlEncode("2_original.xml", de.OutputLFLineBreak | de.OutputCRLineBreak);
37 expected = expected.replace(/\r/mg, "\r\n");
38 do_check_eq(expected, result);
40 result = xmlEncode("2_original.xml", de.OutputLFLineBreak | de.OutputFormatted);
41 expected = loadContentFile("2_result_2.xml");
42 do_check_eq(expected, result);
44 result = xmlEncode("2_original.xml", de.OutputLFLineBreak | de.OutputFormatted | de.OutputWrap);
45 expected = loadContentFile("2_result_3.xml");
46 do_check_eq(expected, result);
48 result = xmlEncode("2_original.xml", de.OutputLFLineBreak | de.OutputWrap);
49 expected = loadContentFile("2_result_4.xml");
50 do_check_eq(expected, result);
52 result = xmlEncode("3_original.xml", de.OutputLFLineBreak | de.OutputFormatted | de.OutputWrap);
53 expected = loadContentFile("3_result.xml");
54 do_check_eq(expected, result);
56 result = xmlEncode("3_original.xml", de.OutputLFLineBreak | de.OutputWrap);
57 expected = loadContentFile("3_result_2.xml");
58 do_check_eq(expected, result);
60 // tests on namespaces
61 var doc = do_parse_document("4_original.xml", "text/xml");
63 var encoder = Components.classes["@mozilla.org/layout/documentEncoder;1?type=text/xml"]
64 .createInstance(nsIDocumentEncoder);
65 encoder.setCharset("UTF-8");
66 encoder.init(doc, "text/xml", de.OutputLFLineBreak);
68 result = encoder.encodeToString();
69 expected = loadContentFile("4_result_1.xml");
70 do_check_eq(expected, result);
72 encoder.setNode(doc.documentElement.childNodes[9]);
73 result = encoder.encodeToString();
74 expected = loadContentFile("4_result_2.xml");
75 do_check_eq(expected, result);
77 encoder.setNode(doc.documentElement.childNodes[7].childNodes[1]);
78 result = encoder.encodeToString();
79 expected = loadContentFile("4_result_3.xml");
80 do_check_eq(expected, result);
82 encoder.setNode(doc.documentElement.childNodes[11].childNodes[1]);
83 result = encoder.encodeToString();
84 expected = loadContentFile("4_result_4.xml");
85 do_check_eq(expected, result);
87 encoder.setCharset("UTF-8");
88 // it doesn't support this flags
89 encoder.init(doc, "text/xml", de.OutputLFLineBreak | de.OutputFormatted | de.OutputWrap);
90 encoder.setWrapColumn(40);
91 result = encoder.encodeToString();
92 expected = loadContentFile("4_result_5.xml");
93 do_check_eq(expected, result);
95 encoder.init(doc, "text/xml", de.OutputLFLineBreak | de.OutputWrap);
96 encoder.setWrapColumn(40);
97 result = encoder.encodeToString();
98 expected = loadContentFile("4_result_6.xml");
99 do_check_eq(expected, result);
101 }