浏览代码

Added testing all our demo files (reading+calculating)

Matthias 8 年之前
父节点
当前提交
301df837e4

+ 1 - 1
test/Common/FileIO/Mxl_Test.ts

@@ -26,7 +26,7 @@ describe("MXL Tests", () => {
   }
 
   // Test all the following mxl files:
-  let scores: string[] = ["MozartTrio"];
+  let scores: string[] = ["MozartTrio.mxl"];
   for (let score of scores) {
     testFile(score);
   }

+ 73 - 32
test/Common/FileIO/Xml_Test.ts

@@ -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();
+    });
 });

+ 5 - 5
test/Common/OSMD/OSMD_Test.ts

@@ -22,7 +22,7 @@ describe("OSMD Main Export", () => {
     });
 
     it("load MXL from string", (done: MochaDone) => {
-        let mxl: string = TestUtils.getMXL("MozartTrio");
+        let mxl: string = TestUtils.getMXL("MozartTrio.mxl");
         let div: HTMLElement = document.createElement("div");
         let osmd: OSMD = new OSMD(div);
         osmd.load(mxl).then(
@@ -53,7 +53,7 @@ describe("OSMD Main Export", () => {
     });
 
     it("load XML string", (done: MochaDone) => {
-        let score: Document = TestUtils.getScore("MuzioClementi_SonatinaOpus36No1_Part1");
+        let score: Document = TestUtils.getScore("MuzioClementi_SonatinaOpus36No1_Part1.xml");
         let xml: string = new XMLSerializer().serializeToString(score);
         let div: HTMLElement = document.createElement("div");
         let osmd: OSMD = new OSMD(div);
@@ -67,7 +67,7 @@ describe("OSMD Main Export", () => {
     });
 
     it("load XML Document", (done: MochaDone) => {
-        let score: Document = TestUtils.getScore("MuzioClementi_SonatinaOpus36No1_Part1");
+        let score: Document = TestUtils.getScore("MuzioClementi_SonatinaOpus36No1_Part1.xml");
         let div: HTMLElement = document.createElement("div");
         let osmd: OSMD = new OSMD(div);
         osmd.load(score).then(
@@ -151,7 +151,7 @@ describe("OSMD Main Export", () => {
         let div: HTMLElement = container1;
         div.style.width = "500px";
         let osmd: OSMD = new OSMD(div);
-        let score: Document = TestUtils.getScore("MuzioClementi_SonatinaOpus36No1_Part1");
+        let score: Document = TestUtils.getScore("MuzioClementi_SonatinaOpus36No1_Part1.xml");
         osmd.load(score).then(
             (_: {}) => {
                 osmd.render();
@@ -166,7 +166,7 @@ describe("OSMD Main Export", () => {
         let div: HTMLElement = container1;
         div.style.width = "200px";
         let osmd: OSMD = new OSMD(div);
-        let score: Document = TestUtils.getScore("MuzioClementi_SonatinaOpus36No1_Part1");
+        let score: Document = TestUtils.getScore("MuzioClementi_SonatinaOpus36No1_Part1.xml");
         osmd.load(score).then(
             (_: {}) => {
                 osmd.render();

+ 2 - 2
test/MusicalScore/Graphical/VexFlow/VexFlowMusicSheetDrawer_Test.ts

@@ -11,7 +11,7 @@ import {Fraction} from "../../../../src/Common/DataObjects/Fraction";
 describe("VexFlow Music Sheet Drawer", () => {
 
     it(".drawSheet (Clementi pt. 1)", (done: MochaDone) => {
-        let score: Document = TestUtils.getScore("MuzioClementi_SonatinaOpus36No1_Part1");
+        let score: Document = TestUtils.getScore("MuzioClementi_SonatinaOpus36No1_Part1.xml");
         chai.expect(score).to.not.be.undefined;
         let partwise: Element = TestUtils.getPartWiseElement(score);
         chai.expect(partwise).to.not.be.undefined;
@@ -28,7 +28,7 @@ describe("VexFlow Music Sheet Drawer", () => {
     });
 
     it.skip("With cursor (as rectangle)", (done: MochaDone) => {
-        let score: Document = TestUtils.getScore("MuzioClementi_SonatinaOpus36No1_Part1");
+        let score: Document = TestUtils.getScore("MuzioClementi_SonatinaOpus36No1_Part1.xml");
         chai.expect(score).to.not.be.undefined;
         let partwise: Element = TestUtils.getPartWiseElement(score);
         chai.expect(partwise).to.not.be.undefined;

+ 1 - 1
test/MusicalScore/ScoreCalculation/MusicSheetCalculator_Test.ts

@@ -13,7 +13,7 @@ import {TestUtils} from "../../Util/TestUtils";
 
 describe("Music Sheet Calculator Tests", () => {
     // Initialize variables
-    let filename: string = "MuzioClementi_SonatinaOpus36No1_Part1";
+    let filename: string = "MuzioClementi_SonatinaOpus36No1_Part1.xml";
     let reader: MusicSheetReader = new MusicSheetReader();
     let calculator: MusicSheetCalculator = new VexFlowMusicSheetCalculator();
     let score: IXmlElement;

+ 2 - 2
test/Util/TestUtils.ts

@@ -6,12 +6,12 @@
 export class TestUtils {
 
     public static getScore(name: string): Document {
-        let path: string = "test/data/" + name + ".xml";
+        let path: string = "test/data/" + name;
         return ((window as any).__xml__)[path];
     }
 
     public static getMXL(scoreName: string): string {
-        let path: string = "test/data/" + scoreName + ".mxl";
+        let path: string = "test/data/" + scoreName;
         return ((window as any).__raw__)[path];
     }