content/base/test/unit/test_xmlserializer.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

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

mercurial