OSMD.js 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. "use strict";
  2. var chai = require("chai");
  3. var OSMD_1 = require("../../../src/OSMD/OSMD");
  4. var TestUtils_1 = require("../../Util/TestUtils");
  5. describe("OSMD Main Export", function () {
  6. it("no container", function (done) {
  7. chai.expect(function () {
  8. return new OSMD_1.OSMD(undefined);
  9. }).to.throw(/container/);
  10. done();
  11. });
  12. it("container", function (done) {
  13. var div = document.createElement("div");
  14. chai.expect(function () {
  15. return new OSMD_1.OSMD(div);
  16. }).to.not.throw(Error);
  17. done();
  18. });
  19. it("load MXL from string", function (done) {
  20. var mxl = TestUtils_1.TestUtils.getMXL("MozartTrio");
  21. var div = document.createElement("div");
  22. var osmd = new OSMD_1.OSMD(div);
  23. osmd.load(mxl).then(function (_) {
  24. osmd.render();
  25. done();
  26. }, done);
  27. });
  28. it("load invalid MXL from string", function (done) {
  29. var mxl = "\x50\x4b\x03\x04";
  30. var div = document.createElement("div");
  31. var osmd = new OSMD_1.OSMD(div);
  32. osmd.load(mxl).then(function (_) {
  33. done(new Error("Corrupted MXL appears to be loaded correctly"));
  34. }, function (exc) {
  35. if (exc.message.toLowerCase().match(/invalid/)) {
  36. done();
  37. }
  38. else {
  39. done(new Error("Unexpected error: " + exc.message));
  40. }
  41. });
  42. });
  43. it("load XML string", function (done) {
  44. var score = TestUtils_1.TestUtils.getScore("MuzioClementi_SonatinaOpus36No1_Part1");
  45. var xml = new XMLSerializer().serializeToString(score);
  46. var div = document.createElement("div");
  47. var osmd = new OSMD_1.OSMD(div);
  48. osmd.load(xml).then(function (_) {
  49. osmd.render();
  50. done();
  51. }, done);
  52. });
  53. it("load XML Document", function (done) {
  54. var score = TestUtils_1.TestUtils.getScore("MuzioClementi_SonatinaOpus36No1_Part1");
  55. var div = document.createElement("div");
  56. var osmd = new OSMD_1.OSMD(div);
  57. osmd.load(score).then(function (_) {
  58. osmd.render();
  59. done();
  60. }, done);
  61. });
  62. it("load invalid XML string", function (done) {
  63. var xml = "<?xml";
  64. var div = document.createElement("div");
  65. var osmd = new OSMD_1.OSMD(div);
  66. osmd.load(xml).then(function (_) {
  67. done(new Error("Corrupted XML appears to be loaded correctly"));
  68. }, function (exc) {
  69. if (exc.message.toLowerCase().match(/partwise/)) {
  70. done();
  71. }
  72. else {
  73. done(new Error("Unexpected error: " + exc.message));
  74. }
  75. });
  76. });
  77. it("render without loading", function (done) {
  78. var div = document.createElement("div");
  79. var osmd = new OSMD_1.OSMD(div);
  80. chai.expect(function () {
  81. return osmd.render();
  82. }).to.throw(/load/);
  83. done();
  84. });
  85. });