|
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/. */ |
|
5 |
|
6 function xmlEncode(aFile, aFlags, aCharset) { |
|
7 if(aFlags == undefined) aFlags = 0; |
|
8 if(aCharset == undefined) aCharset = "UTF-8"; |
|
9 |
|
10 var doc = do_parse_document(aFile, "text/xml"); |
|
11 |
|
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 } |
|
18 |
|
19 function run_test() |
|
20 { |
|
21 var result, expected; |
|
22 const de = Components.interfaces.nsIDocumentEncoder; |
|
23 |
|
24 result = xmlEncode("1_original.xml", de.OutputLFLineBreak); |
|
25 expected =loadContentFile("1_result.xml"); |
|
26 do_check_eq(expected, result); |
|
27 |
|
28 result = xmlEncode("2_original.xml", de.OutputLFLineBreak); |
|
29 expected = loadContentFile("2_result_1.xml"); |
|
30 do_check_eq(expected, result); |
|
31 |
|
32 result = xmlEncode("2_original.xml", de.OutputCRLineBreak); |
|
33 expected = expected.replace(/\n/g, "\r"); |
|
34 do_check_eq(expected, result); |
|
35 |
|
36 result = xmlEncode("2_original.xml", de.OutputLFLineBreak | de.OutputCRLineBreak); |
|
37 expected = expected.replace(/\r/mg, "\r\n"); |
|
38 do_check_eq(expected, result); |
|
39 |
|
40 result = xmlEncode("2_original.xml", de.OutputLFLineBreak | de.OutputFormatted); |
|
41 expected = loadContentFile("2_result_2.xml"); |
|
42 do_check_eq(expected, result); |
|
43 |
|
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); |
|
47 |
|
48 result = xmlEncode("2_original.xml", de.OutputLFLineBreak | de.OutputWrap); |
|
49 expected = loadContentFile("2_result_4.xml"); |
|
50 do_check_eq(expected, result); |
|
51 |
|
52 result = xmlEncode("3_original.xml", de.OutputLFLineBreak | de.OutputFormatted | de.OutputWrap); |
|
53 expected = loadContentFile("3_result.xml"); |
|
54 do_check_eq(expected, result); |
|
55 |
|
56 result = xmlEncode("3_original.xml", de.OutputLFLineBreak | de.OutputWrap); |
|
57 expected = loadContentFile("3_result_2.xml"); |
|
58 do_check_eq(expected, result); |
|
59 |
|
60 // tests on namespaces |
|
61 var doc = do_parse_document("4_original.xml", "text/xml"); |
|
62 |
|
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); |
|
67 |
|
68 result = encoder.encodeToString(); |
|
69 expected = loadContentFile("4_result_1.xml"); |
|
70 do_check_eq(expected, result); |
|
71 |
|
72 encoder.setNode(doc.documentElement.childNodes[9]); |
|
73 result = encoder.encodeToString(); |
|
74 expected = loadContentFile("4_result_2.xml"); |
|
75 do_check_eq(expected, result); |
|
76 |
|
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); |
|
81 |
|
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); |
|
86 |
|
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); |
|
94 |
|
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); |
|
100 |
|
101 } |