浏览代码

Added tests for container's width (fixes #23)

Andrea Condoluci 9 年之前
父节点
当前提交
7abd80e67c

+ 54 - 0
dist/test/Common/OSMD/OSMD.js

@@ -3,6 +3,7 @@ var chai = require("chai");
 var OSMD_1 = require("../../../src/OSMD/OSMD");
 var TestUtils_1 = require("../../Util/TestUtils");
 describe("OSMD Main Export", function () {
+    var container1;
     it("no container", function (done) {
         chai.expect(function () {
             return new OSMD_1.OSMD(undefined);
@@ -59,6 +60,30 @@ describe("OSMD Main Export", function () {
             done();
         }, done);
     });
+    it("load MXL Document by URL", function (done) {
+        var url = "base/test/data/MozartTrio.mxl";
+        var div = document.createElement("div");
+        var osmd = new OSMD_1.OSMD(div);
+        osmd.load(url).then(function (_) {
+            osmd.render();
+            done();
+        }, done);
+    });
+    it("load MXL Document by invalid URL", function (done) {
+        var url = "http://www.google.com";
+        var div = document.createElement("div");
+        var osmd = new OSMD_1.OSMD(div);
+        osmd.load(url).then(function (_) {
+            done(new Error("Invalid URL appears to be loaded correctly"));
+        }, function (exc) {
+            if (exc.message.toLowerCase().match(/url/)) {
+                done();
+            }
+            else {
+                done(new Error("Unexpected error: " + exc.message));
+            }
+        });
+    });
     it("load invalid XML string", function (done) {
         var xml = "<?xml";
         var div = document.createElement("div");
@@ -82,4 +107,33 @@ describe("OSMD Main Export", function () {
         }).to.throw(/load/);
         done();
     });
+    before(function () {
+        container1 = document.createElement("div");
+        document.body.appendChild(container1);
+    });
+    after(function () {
+        document.body.removeChild(container1);
+    });
+    it("test width 500", function (done) {
+        var div = container1;
+        div.style.width = "500px";
+        var osmd = new OSMD_1.OSMD(div);
+        var score = TestUtils_1.TestUtils.getScore("MuzioClementi_SonatinaOpus36No1_Part1");
+        osmd.load(score).then(function (_) {
+            osmd.render();
+            chai.expect(div.offsetWidth).to.equal(500);
+            done();
+        }, done).catch(done);
+    });
+    it("test width 200", function (done) {
+        var div = container1;
+        div.style.width = "200px";
+        var osmd = new OSMD_1.OSMD(div);
+        var score = TestUtils_1.TestUtils.getScore("MuzioClementi_SonatinaOpus36No1_Part1");
+        osmd.load(score).then(function (_) {
+            osmd.render();
+            chai.expect(div.offsetWidth).to.equal(200);
+            done();
+        }, done).catch(done);
+    });
 });

+ 8 - 5
dist/test/MusicalScore/Graphical/VexFlow/VexFlowMusicSheetDrawer.js

@@ -5,7 +5,7 @@ var MusicSheetReader_1 = require("../../../../src/MusicalScore/ScoreIO/MusicShee
 var VexFlowMusicSheetCalculator_1 = require("../../../../src/MusicalScore/Graphical/VexFlow/VexFlowMusicSheetCalculator");
 var TestUtils_1 = require("../../../Util/TestUtils");
 var Xml_1 = require("../../../../src/Common/FileIO/Xml");
-var fraction_1 = require("../../../../src/Common/DataObjects/fraction");
+var Fraction_1 = require("../../../../src/Common/DataObjects/Fraction");
 var DrawingEnums_1 = require("../../../../src/MusicalScore/Graphical/DrawingEnums");
 describe("VexFlow Music Sheet Drawer", function () {
     it(".drawSheet (Clementi pt. 1)", function (done) {
@@ -17,15 +17,18 @@ describe("VexFlow Music Sheet Drawer", function () {
         var reader = new MusicSheetReader_1.MusicSheetReader();
         var sheet = reader.createMusicSheet(new Xml_1.IXmlElement(partwise), "path");
         var gms = new GraphicalMusicSheet_1.GraphicalMusicSheet(sheet, calc);
-        gms.Cursors.push(gms.calculateCursorLineAtTimestamp(new fraction_1.Fraction(), DrawingEnums_1.OutlineAndFillStyleEnum.PlaybackCursor));
-        // Create heading in the test page
+        gms.Cursors.push(gms.calculateCursorLineAtTimestamp(new Fraction_1.Fraction(), DrawingEnums_1.OutlineAndFillStyleEnum.PlaybackCursor));
         var h1 = document.createElement("h1");
         h1.textContent = "VexFlowMusicSheetDrawer Test Output";
         document.body.appendChild(h1);
-        // Create the canvas in the document:
+        var titles = document.createElement("div");
+        document.body.appendChild(titles);
         var canvas = document.createElement("canvas");
         document.body.appendChild(canvas);
-        (new VexFlowMusicSheetDrawer_1.VexFlowMusicSheetDrawer(document.body, canvas)).drawSheet(gms);
+        (new VexFlowMusicSheetDrawer_1.VexFlowMusicSheetDrawer(titles, canvas)).drawSheet(gms);
+        document.body.removeChild(h1);
+        document.body.removeChild(titles);
+        document.body.removeChild(canvas);
         done();
     });
 });

+ 41 - 0
test/Common/OSMD/OSMD.ts

@@ -4,6 +4,7 @@ import {TestUtils} from "../../Util/TestUtils";
 
 
 describe("OSMD Main Export", () => {
+    let container1: HTMLElement;
 
     it("no container", (done: MochaDone) => {
         chai.expect(() => {
@@ -136,4 +137,44 @@ describe("OSMD Main Export", () => {
         done();
     });
 
+    before((): void => {
+        // Create the container for the "test width" test
+        container1 = document.createElement("div");
+        document.body.appendChild(container1);
+    });
+    after((): void => {
+        // Destroy the container for the "test width" test
+        document.body.removeChild(container1);
+    });
+
+    it("test width 500", (done: MochaDone) => {
+        let div: HTMLElement = container1;
+        div.style.width = "500px";
+        let osmd: OSMD = new OSMD(div);
+        let score: Document = TestUtils.getScore("MuzioClementi_SonatinaOpus36No1_Part1");
+        osmd.load(score).then(
+            (_: {}) => {
+                osmd.render();
+                chai.expect(div.offsetWidth).to.equal(500);
+                done();
+            },
+            done
+        ).catch(done);
+    });
+
+    it("test width 200", (done: MochaDone) => {
+        let div: HTMLElement = container1;
+        div.style.width = "200px";
+        let osmd: OSMD = new OSMD(div);
+        let score: Document = TestUtils.getScore("MuzioClementi_SonatinaOpus36No1_Part1");
+        osmd.load(score).then(
+            (_: {}) => {
+                osmd.render();
+                chai.expect(div.offsetWidth).to.equal(200);
+                done();
+            },
+            done
+        ).catch(done);
+    });
+
 });

+ 7 - 1
test/MusicalScore/Graphical/VexFlow/VexFlowMusicSheetDrawer.ts

@@ -26,9 +26,15 @@ describe("VexFlow Music Sheet Drawer", () => {
         h1.textContent = "VexFlowMusicSheetDrawer Test Output";
         document.body.appendChild(h1);
         // Create the canvas in the document:
+        let titles: HTMLElement = document.createElement("div");
+        document.body.appendChild(titles);
         let canvas: HTMLCanvasElement = document.createElement("canvas");
         document.body.appendChild(canvas);
-        (new VexFlowMusicSheetDrawer(document.body, canvas)).drawSheet(gms);
+        (new VexFlowMusicSheetDrawer(titles, canvas)).drawSheet(gms);
+        // Clean up document.body
+        document.body.removeChild(h1);
+        document.body.removeChild(titles);
+        document.body.removeChild(canvas);
         done();
     });
 

+ 0 - 0
test/MusicalScore/ScoreCalculation/MusicSheetCalculator_Test.ts → test/MusicalScore/ScoreCalculation/MusicSheetCalculator.ts