Xml.ts 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import { IXmlElement } from "../../../src/Common/FileIO/Xml.ts";
  2. // Test XML simple document
  3. let xml_test_data: string = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\
  4. <!DOCTYPE score-partwise PUBLIC \"-//Recordare//DTD MusicXML 2.0 Partwise//EN\" \"http://www.musicxml.org/dtds/partwise.dtd\">\
  5. <score-partwise> <identification> <encoding> <software>Example Software name</software> \
  6. <encoding-date>2016-04-04</encoding-date> </encoding> </identification> <credit page=\"1\"> \
  7. <credit-words justify=\"center\" valign=\"top\">Example Credit Words</credit-words> </credit> </score-partwise>";
  8. describe("XML Unit Tests", () => {
  9. let parser: DOMParser = new DOMParser();
  10. let doc: Document = parser.parseFromString(xml_test_data, "text/xml");
  11. let documentElement: IXmlElement = new IXmlElement(doc.documentElement);
  12. it("IXmlElement Tests", (done: MochaDone) => {
  13. // Test name attribute
  14. chai.expect(documentElement.name).to.equal("score-partwise");
  15. // Test element method
  16. chai.should().exist(documentElement.element("identification"));
  17. // Test value attribute
  18. chai.expect(documentElement
  19. .element("identification")
  20. .element("encoding")
  21. .element("software").value).to.equal("Example Software name");
  22. done();
  23. });
  24. it("IXmlAttribute Tests", (done: MochaDone) => {
  25. // Test attributes method
  26. chai.expect(
  27. documentElement.element("credit").attributes()[0].name
  28. ).to.equal("page");
  29. let creditWords: IXmlElement =
  30. documentElement.element("credit").element("credit-words");
  31. // Test attributes method
  32. chai.expect(creditWords.attributes().length).to.equal(2);
  33. // Test value attribute
  34. chai.expect(creditWords.attribute("justify").value).to.equal("center");
  35. done();
  36. });
  37. });