Mercurial > hg > webaudioevaluationtool
changeset 668:6455bee85090
Implemented repeat function of tests
author | Nicholas Jillings <n.g.r.jillings@se14.qmul.ac.uk> |
---|---|
date | Fri, 10 Apr 2015 16:21:57 +0100 |
parents | 2cc25941c433 |
children | c8eb821710fa |
files | ape.js core.js |
diffstat | 2 files changed, 42 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/ape.js Fri Apr 10 15:30:44 2015 +0100 +++ b/ape.js Fri Apr 10 16:21:57 2015 +0100 @@ -42,7 +42,26 @@ // Should put in an error function here incase of malprocessed or malformed XML // Extract the different test XML DOM trees - testXMLSetups = xmlDoc.find('audioHolder'); + var audioHolders = xmlDoc.find('audioHolder'); + audioHolders.each(function(index,element) { + var repeatN = element.attributes['repeatCount'].value; + for (var r=0; r<=repeatN; r++) { + testXMLSetups[testXMLSetups.length] = element; + } + }); + + // New check if we need to randomise the test order + var randomise = xmlSetup.attributes['randomiseOrder']; + if (randomise != undefine) { + randomise = Boolean(randomise.value); + } else { + randomise = false; + } + if (randomise) + { + // TODO: Implement Randomisation!! + } + // Create the top div for the Title element var titleAttr = xmlSetup[0].attributes['title']; @@ -241,7 +260,7 @@ // Now process any pre-test commands - var preTest = testXMLSetups.find('PreTest')[0]; + var preTest = $(testXMLSetups[id]).find('PreTest')[0]; if (preTest.children.length > 0) { currentState = 'testRunPre-'+id; @@ -298,13 +317,13 @@ { //Specific test pre-test var testId = currentState.substr(11,currentState.length-10); - var preTest = testXMLSetups.find('PreTest')[testId]; + var preTest = $(testXMLSetups[testId]).find('PreTest')[0]; this.value = preTestButtonClick(preTest,this.value); } else if (currentState.substr(0,11) == 'testRunPost') { // Specific test post-test var testId = currentState.substr(12,currentState.length-11); - var preTest = testXMLSetups.find('PostTest')[testId]; + var preTest = $(testXMLSetups[testId]).find('PostTest')[0]; this.value = preTestButtonClick(preTest,this.value); } else if (currentState == 'postTest') { @@ -416,12 +435,13 @@ currentState = 'testRun-'+testId; } else if (currentState.substr(0,11) == 'testRunPost') { + var testId = currentState.substr(12,currentState.length-11); testEnded(testId); } else if (currentState.substr(0,7) == 'testRun') { var testId = currentState.substr(8,currentState.length-7); // Check if we have any post tests to perform - var postXML = testXMLSetups.find('PostTest')[testId]; + var postXML = $(testXMLSetups[testId]).find('PostTest')[0]; if (postXML.children.length > 0) { currentState = 'testRunPost-'+testId; @@ -440,11 +460,14 @@ function testEnded(testId) { + var xmlDoc = interfaceXMLSave(); + testResultsHolders; if (testXMLSetups.length-1 > testId) { // Yes we have another test to perform - currentState = 'testRun-'+Number(testId)+1; - loadTest(testId+1); + testId = (Number(testId)+1); + currentState = 'testRun-'+testId; + loadTest(testId); } else { console.log('Testing Completed!'); currentState = 'postTest'; @@ -465,6 +488,16 @@ } } +function pageXMLSave(testId) +{ + // Saves a specific test page + var xmlDoc = document.createElement("AudioHolder"); + var testXML = testXMLSetups[testId]; + xmlDoc.id = testXML.id; + xmlDoc.repeatCount = testXML.attributes['repeatCount'].value; + +} + // Only other global function which must be defined in the interface class. Determines how to create the XML document. function interfaceXMLSave(){ // Create the XML string to be exported with results
--- a/core.js Fri Apr 10 15:30:44 2015 +0100 +++ b/core.js Fri Apr 10 16:21:57 2015 +0100 @@ -23,8 +23,8 @@ var audioContext; // Hold the browser web audio API var projectXML; // Hold the parsed setup XML -var testXMLSetups; // Hold the parsed test instances -var testResultsHolders; // Hold the results from each test for publishing to XML +var testXMLSetups = []; // Hold the parsed test instances +var testResultsHolders =[]; // Hold the results from each test for publishing to XML var currentTestHolder; // Hold an intermediate results during test - metrics var audioEngineContext; // The custome AudioEngine object var projectReturn; // Hold the URL for the return