[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/rclai/NativeScript/patch-1/node-tests/test-angular-xml.ts [Back]  [Original]

import {assert} from "chai";
import xml = require('xml');

describe("angular xml parser", () => {
    let last_element = null;
    let last_attrs = null;
    let parser = null;

    beforeEach(() => {
        parser = new xml.XmlParser(function (event: xml.ParserEvent) {
            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("

Web Proxy Viewer  |  New URL  |  Original Page