|
42 | 42 | status = null, |
43 | 43 | realtimeReadout = null, |
44 | 44 | currentTest = null, |
45 | | - fieldContainer = null; |
| 45 | + fieldContainer = null, |
| 46 | + saveButton = null; |
46 | 47 |
|
47 | 48 | var inputIgnoredEvent = false, |
48 | 49 | validationFailedEvent = false, |
|
56 | 57 | realtimeReadout = $( "#realtimeReadout" ); |
57 | 58 | currentTest = $( "#currentTest" ); |
58 | 59 | fieldContainer = $( "#fieldContainer" ); |
| 60 | + saveButton = $( "#saveButton" ); |
59 | 61 | } ); |
60 | 62 |
|
| 63 | + function saveReport( xml ) { |
| 64 | + var uriContent = "data:application/octet-stream," + encodeURIComponent( report ); |
| 65 | + } |
| 66 | + |
61 | 67 | function resetEventFlags() { |
62 | 68 | log( "resetting event flags" ); |
63 | 69 |
|
|
144 | 150 | } |
145 | 151 | } |
146 | 152 |
|
| 153 | + function download( filename, text ) { |
| 154 | + var a = $( "<a/>", { |
| 155 | + "href" : "data:text/plain;charset=utf-8," + encodeURIComponent( text ), |
| 156 | + "download" : filename |
| 157 | + } ); |
| 158 | + |
| 159 | + // Odd... jQuery.click() doesn't trigger the link, even if it's appended to the page first. |
| 160 | + // Oh well, regular ol' JS to the rescue. |
| 161 | + |
| 162 | + var event = document.createEvent( "MouseEvents" ); |
| 163 | + event.initEvent( "click", true, true ); |
| 164 | + a[0].dispatchEvent( event ); |
| 165 | + } |
| 166 | + |
147 | 167 | if( validateTestCases(testCases) ) { |
148 | 168 | QUnit.config.hidepassed = true; |
149 | 169 |
|
|
175 | 195 | } |
176 | 196 |
|
177 | 197 | realtimeReadout.remove(); |
178 | | - document.getElementById( "done" ).style.visibility = "visible"; |
| 198 | + $( "#done" ).css( "visibility", "visible" ); |
179 | 199 |
|
180 | | - if( typeof console !== "undefined" ) { |
181 | | - console.log( report.xml ); // TODO: Export this out of the browser |
182 | | - } |
| 200 | + saveButton.on( "click", function() { |
| 201 | + function zeroPad( datePart ) { |
| 202 | + return datePart < 10 ? "0" + datePart : datePart; |
| 203 | + } |
| 204 | + |
| 205 | + var d = new Date(); |
| 206 | + |
| 207 | + var year = d.getFullYear(), |
| 208 | + month = zeroPad( d.getMonth() + 1 ), |
| 209 | + day = zeroPad( d.getDate() ), |
| 210 | + hour = zeroPad( d.getHours() ), |
| 211 | + min = zeroPad( d.getMinutes() ), |
| 212 | + sec = zeroPad( d.getSeconds() ); |
| 213 | + |
| 214 | + var timestamp = year + "-" + month + "-" + day + "_" + hour + "-" + min + "-" + sec; |
| 215 | + |
| 216 | + download( "RestrictedTextField-TestResult-" + timestamp + ".xml", report.xml ); |
| 217 | + } ); |
| 218 | + |
| 219 | + $( "#saveContainer" ).css( "visibility", "visible" ); |
183 | 220 | } ); |
184 | 221 |
|
185 | 222 | QUnit.cases( testCases ).test( "Test", function(params) { |
|
0 commit comments