import {assert} from "chai"; const xml = require("tns-core-modules/xml"); describe("angular xml parser", () => { let last_element = null; let last_attrs = null; let parser = null; beforeEach(() => { parser = new xml.XmlParser(function (event) { switch (event.eventType) { case xml.ParserEventType.StartElement: last_element = event.elementName; last_attrs = event.attributes; break; } }); parser.angularSyntax = true; }); it("parses [property] binding", () => { parser.parse(""); assert.equal('TextField', last_element); assert.equal(last_attrs['[text]'], 'somevar'); }); it("parses (event) binding", () => { parser.parse(""); assert.equal('TextField', last_element); assert.equal(last_attrs['(tap)'], 'onTap(blah)'); }); it("parses (^event) binding", () => { parser.parse(""); assert.equal('TextField', last_element); assert.equal(last_attrs['(^tap)'], 'onTap(blah)'); }); it("parses #id attribute", () => { parser.parse(""); assert.equal('TextField', last_element); assert.equal(last_attrs['#firstName'], ''); }); it("parses #id attribute followed by another", () => { parser.parse(""); assert.equal('TextField', last_element); assert.equal(last_attrs['#firstName'], ''); assert.equal(last_attrs['text'], 'Name'); }); it("detects equals without value", () => { parser.parse(""); assert.isFalse(last_attrs); }); it("detects no equals with quoted value", () => { parser.parse(""); assert.isFalse(last_attrs); }); it("detects unclosed tag after no value attribute", () => { parser.parse(" { parser.angularSyntax = false; parser.parse(""); assert.isFalse(last_attrs); }); });