|
@@ -1,4 +1,6 @@
|
|
|
-import { IXmlElement } from "../../../src/Common/FileIO/Xml.ts";
|
|
|
+import {IXmlElement} from "../../../src/Common/FileIO/Xml.ts";
|
|
|
+import {TestUtils} from "../../Util/TestUtils";
|
|
|
+import {OSMD} from "../../../src/OSMD/OSMD";
|
|
|
|
|
|
// Test XML simple document
|
|
|
let xmlTestData: string = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\
|
|
@@ -9,35 +11,74 @@ let xmlTestData: string = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\
|
|
|
|
|
|
|
|
|
describe("XML interface", () => {
|
|
|
- let parser: DOMParser = new DOMParser();
|
|
|
- let doc: Document = parser.parseFromString(xmlTestData, "text/xml");
|
|
|
- let documentElement: IXmlElement = new IXmlElement(doc.documentElement);
|
|
|
-
|
|
|
- it("test IXmlElement", (done: MochaDone) => {
|
|
|
- // Test name attribute
|
|
|
- chai.expect(documentElement.name).to.equal("score-partwise");
|
|
|
- // Test element method
|
|
|
- chai.should().exist(documentElement.element("identification"));
|
|
|
- // Test value attribute
|
|
|
- chai.expect(documentElement
|
|
|
- .element("identification")
|
|
|
- .element("encoding")
|
|
|
- .element("software").value).to.equal("Example Software name");
|
|
|
- done();
|
|
|
- });
|
|
|
-
|
|
|
- it("test IXmlAttribute", (done: MochaDone) => {
|
|
|
- // Test attributes method
|
|
|
- chai.expect(
|
|
|
- documentElement.element("credit").attributes()[0].name
|
|
|
- ).to.equal("page");
|
|
|
-
|
|
|
- let creditWords: IXmlElement =
|
|
|
- documentElement.element("credit").element("credit-words");
|
|
|
- // Test attributes method
|
|
|
- chai.expect(creditWords.attributes().length).to.equal(2);
|
|
|
- // Test value attribute
|
|
|
- chai.expect(creditWords.attribute("justify").value).to.equal("center");
|
|
|
- done();
|
|
|
- });
|
|
|
+ let parser: DOMParser = new DOMParser();
|
|
|
+ let doc: Document = parser.parseFromString(xmlTestData, "text/xml");
|
|
|
+ let documentElement: IXmlElement = new IXmlElement(doc.documentElement);
|
|
|
+
|
|
|
+
|
|
|
+ // Test all the following xml files:
|
|
|
+ let scores: string[] = [
|
|
|
+ "an chloe - mozart.xml",
|
|
|
+ "AnDieFerneGeliebte_Beethoven.xml",
|
|
|
+ "CharlesGounod_Meditation.xml",
|
|
|
+ "das veilchen - mozart.xml",
|
|
|
+ "Dichterliebe01.xml",
|
|
|
+ "JohannSebastianBach_Air.xml",
|
|
|
+ "JohannSebastianBach_PraeludiumInCDur_BWV846_1.xml",
|
|
|
+ "JosephHaydn_ConcertanteCello.xml",
|
|
|
+ "mandoline - debussy.xml",
|
|
|
+ "MozartTrio.mxl",
|
|
|
+ "MozartTrio.mxl.base64",
|
|
|
+ "MuzioClementi_SonatinaOpus36No1_Part1.xml",
|
|
|
+ "MuzioClementi_SonatinaOpus36No1_Part2.xml",
|
|
|
+ "MuzioClementi_SonatinaOpus36No3_Part1.xml",
|
|
|
+ "MuzioClementi_SonatinaOpus36No3_Part2.xml",
|
|
|
+ "ScottJoplin_EliteSyncopations.xml",
|
|
|
+ "ScottJoplin_The_Entertainer.xml",
|
|
|
+ "TelemannWV40.102_Sonate-Nr.1.1-Dolce.xml",
|
|
|
+ "TelemannWV40.102_Sonate-Nr.1.2-Allegro-F-Dur.xml",
|
|
|
+ "ActorPreludeSample.xml"];
|
|
|
+ for (let score of scores) {
|
|
|
+ testFile(score);
|
|
|
+ }
|
|
|
+
|
|
|
+ // Generates a test for a mxl file name
|
|
|
+ function testFile(scoreName: string): void {
|
|
|
+ it(scoreName, (done: MochaDone) => {
|
|
|
+ // Load the xml file content
|
|
|
+ let score: Document = TestUtils.getScore(scoreName);
|
|
|
+ let div: HTMLElement = document.createElement("div");
|
|
|
+ let osmd: OSMD = new OSMD(div);
|
|
|
+ osmd.load(score);
|
|
|
+ done();
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ it("test IXmlElement", (done: MochaDone) => {
|
|
|
+ // Test name attribute
|
|
|
+ chai.expect(documentElement.name).to.equal("score-partwise");
|
|
|
+ // Test element method
|
|
|
+ chai.should().exist(documentElement.element("identification"));
|
|
|
+ // Test value attribute
|
|
|
+ chai.expect(documentElement
|
|
|
+ .element("identification")
|
|
|
+ .element("encoding")
|
|
|
+ .element("software").value).to.equal("Example Software name");
|
|
|
+ done();
|
|
|
+ });
|
|
|
+
|
|
|
+ it("test IXmlAttribute", (done: MochaDone) => {
|
|
|
+ // Test attributes method
|
|
|
+ chai.expect(
|
|
|
+ documentElement.element("credit").attributes()[0].name
|
|
|
+ ).to.equal("page");
|
|
|
+
|
|
|
+ let creditWords: IXmlElement =
|
|
|
+ documentElement.element("credit").element("credit-words");
|
|
|
+ // Test attributes method
|
|
|
+ chai.expect(creditWords.attributes().length).to.equal(2);
|
|
|
+ // Test value attribute
|
|
|
+ chai.expect(creditWords.attribute("justify").value).to.equal("center");
|
|
|
+ done();
|
|
|
+ });
|
|
|
});
|