| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 | import {IXmlElement} from "../../../src/Common/FileIO/Xml";import {TestUtils} from "../../Util/TestUtils";import {OpenSheetMusicDisplay} from "../../../src/OpenSheetMusicDisplay/OpenSheetMusicDisplay";// Test XML simple documentconst xmlTestData: string = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\<!DOCTYPE score-partwise PUBLIC \"-//Recordare//DTD MusicXML 2.0 Partwise//EN\" \"http://www.musicxml.org/dtds/partwise.dtd\">\<score-partwise>  <identification>    <encoding>      <software>Example Software name</software>      \<encoding-date>2016-04-04</encoding-date>      </encoding>    </identification>   <credit page=\"1\"> \<credit-words justify=\"center\" valign=\"top\">Example Credit Words</credit-words> </credit>  </score-partwise>";describe("XML interface", () => {    const parser: DOMParser = new DOMParser();    const doc: Document = parser.parseFromString(xmlTestData, "text/xml");    const documentElement: IXmlElement = new IXmlElement(doc.documentElement);    // Test all the following xml files:    const xmlTestset: string[] = [        "ActorPreludeSample.xml",        "Beethoven_AnDieFerneGeliebte.xml",        "CharlesGounod_Meditation.xml",        "Debussy_Mandoline.xml",        "Dichterliebe01.xml",        "JohannSebastianBach_Air.xml",        "JohannSebastianBach_PraeludiumInCDur_BWV846_1.xml",        "JosephHaydn_ConcertanteCello.xml",        "Mozart_AnChloe.xml",        "Mozart_DasVeilchen.xml",        "MuzioClementi_SonatinaOpus36No1_Part1.xml",        "MuzioClementi_SonatinaOpus36No1_Part2.xml",        "MuzioClementi_SonatinaOpus36No3_Part1.xml",        "MuzioClementi_SonatinaOpus36No3_Part2.xml",        "Saltarello.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",        "VariousChordTests.musicxml",    ];    for (const score of xmlTestset) {        testFile(score);    }    // Generates a test for a mxl file name    function testFile(scoreName: string): void {        it(scoreName, (done: Mocha.Done) => {            // Load the xml file content            const score: Document = TestUtils.getScore(scoreName);            const div: HTMLElement = document.createElement("div");            const openSheetMusicDisplay: OpenSheetMusicDisplay =                TestUtils.createOpenSheetMusicDisplay(div);            openSheetMusicDisplay.load(score);            done();        }).timeout(10000);    }    it("test IXmlElement", (done: Mocha.Done) => {        // 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: Mocha.Done) => {        // Test attributes method        chai.expect(            documentElement.element("credit").attributes()[0].name        ).to.equal("page");        const 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();    });});
 |