/**
* @licstart The following is the entire license notice for the
* JavaScript code in this page
*
* Copyright 2022 Mozilla Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* @licend The above is the entire license notice for the
* JavaScript code in this page
*/
"use strict";
var _xfa_object = require("../../core/xfa/xfa_object.js");
var _data = require("../../core/xfa/data.js");
var _som = require("../../core/xfa/som.js");
var _parser = require("../../core/xfa/parser.js");
describe("Data serializer", function () {
it("should serialize data with an annotationStorage", function () {
const xml = `
bar
1
Giant Slingshot
1
250.00
250.00
<àé>àé>
2
Road Runner Bait, large bag
5
12.00
60.00
310.00
24.80
334.80
foo
`;
const root = new _parser.XFAParser().parse(xml);
const data = root.datasets.data;
const dataHandler = new _data.DataHandler(root, data);
const storage = new Map();
for (const [path, value] of [["Receipt.Detail[0].Units", "12&3"], ["Receipt.Detail[0].Unit_Price", "456>"], ["Receipt.Detail[0].Total_Price", "789"], ["Receipt.Detail[0].àé", "1011"], ["Receipt.Detail[1].PartNo", "foo-bar😀"], ["Receipt.Detail[1].Description", "hello world"]]) {
storage.set((0, _som.searchNode)(root, data, path)[0][_xfa_object.$uid], {
value
});
}
const serialized = dataHandler.serialize(storage);
const expected = `barfoo1Giant Slingshot12&3456>789<\xC3\xA0\xC3\xA9>1011\xC3\xA0\xC3\xA9>2hello world512.0060.00310.0024.80334.80`;
expect(serialized).toEqual(expected);
});
});