mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-15 11:01:21 +08:00
53 lines
1.6 KiB
TypeScript
53 lines
1.6 KiB
TypeScript
import {assert} from "chai";
|
|
import * as xmlModule from "xml";
|
|
var xml: typeof xmlModule = require("../tns-core-modules/xml");
|
|
|
|
describe("xml parser", () => {
|
|
let last_element = null;
|
|
let last_attrs = null;
|
|
let last_data = null;
|
|
let parser = null;
|
|
|
|
beforeEach(() => {
|
|
parser = new xml.XmlParser(function (event: xmlModule.ParserEvent) {
|
|
switch (event.eventType) {
|
|
case xml.ParserEventType.StartElement:
|
|
last_element = event.elementName;
|
|
last_attrs = event.attributes;
|
|
break;
|
|
case xml.ParserEventType.Text:
|
|
last_data = event.data;
|
|
break;
|
|
}
|
|
});
|
|
});
|
|
|
|
it("handles whitespace around attribute =", () => {
|
|
parser.parse("<TextField text = \n 'hello' />");
|
|
|
|
assert.equal('TextField', last_element);
|
|
assert.equal('hello', last_attrs['text']);
|
|
});
|
|
|
|
it("resolves entities", () => {
|
|
parser.parse("<element><>"&'</element>");
|
|
assert.equal("<>\"&'", last_data);
|
|
});
|
|
|
|
it("resolves greek letter entities in attributes", () => {
|
|
parser.parse("<element text='Ω'>blah</element>");
|
|
assert.equal("Ω", last_attrs.text);
|
|
});
|
|
|
|
it("resolves entities in element text", () => {
|
|
parser.parse("<element>Ω</element>");
|
|
assert.equal("Ω", last_data);
|
|
});
|
|
|
|
it("resolves <> inside quotes", () => {
|
|
parser.parse("<element name='<&>' blah=\"b<a&>\"/>");
|
|
assert.equal("<&>", last_attrs.name);
|
|
assert.equal("b<a&>", last_attrs.blah);
|
|
});
|
|
});
|