content/base/test/unit/test_xmlserializer.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:33dfe3a271c0
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 }

mercurial