| OLD | NEW |
| (Empty) | |
| 1 define([ 'util/report' ], function (report) { |
| 2 function classes(el) { |
| 3 return el.className.split(/\s+/g); |
| 4 } |
| 5 |
| 6 function addClass(el, className) { |
| 7 el.className += ' ' + className; |
| 8 } |
| 9 |
| 10 function removeClass(el, className) { |
| 11 // wtb classList (damnit Safari!) |
| 12 el.className = classes(el).filter(function (c) { |
| 13 return c !== className; |
| 14 }).join(' '); |
| 15 } |
| 16 |
| 17 function testResultNameAccept(name) { |
| 18 return name !== 'pass'; |
| 19 } |
| 20 |
| 21 var testDom = { |
| 22 endTest: function (domId, err, results) { |
| 23 var el = document.getElementById(domId); |
| 24 if (!el) { |
| 25 throw new Error('Could not find element #' + domId); |
| 26 } |
| 27 |
| 28 function findSlot(name) { |
| 29 var elements = el.querySelectorAll('[data-property]'); |
| 30 var i; |
| 31 for (i = 0; i < elements.length; ++i) { |
| 32 var element = elements[i]; |
| 33 if (element.getAttribute('data-property') === name) { |
| 34 return element; |
| 35 } |
| 36 } |
| 37 |
| 38 return null; |
| 39 } |
| 40 |
| 41 function fillSlots(name, value) { |
| 42 if (!testResultNameAccept(name)) { |
| 43 return; |
| 44 } |
| 45 |
| 46 if (value === null || typeof value === 'undefined') { |
| 47 return; |
| 48 } |
| 49 |
| 50 if (typeof value === 'object') { |
| 51 Object.keys(value).forEach(function (subName) { |
| 52 fillSlots(subName, value[subName]); |
| 53 }); |
| 54 } else { |
| 55 var slot = findSlot(name); |
| 56 if (slot) { |
| 57 slot.textContent = value; |
| 58 } else { |
| 59 //console.warn('Could not find slot ' + name + ' for ' +
domId, value); |
| 60 } |
| 61 } |
| 62 } |
| 63 |
| 64 fillSlots('', results); |
| 65 |
| 66 removeClass(el, 'pass'); |
| 67 removeClass(el, 'fail'); |
| 68 removeClass(el, 'error'); |
| 69 |
| 70 if (err) { |
| 71 addClass(el, 'error'); |
| 72 |
| 73 var errorMessageEl = el.querySelector('.error-message'); |
| 74 if (errorMessageEl) { |
| 75 errorMessageEl.textContent = err; |
| 76 } |
| 77 } else if (results && results.passed) { |
| 78 addClass(el, 'pass'); |
| 79 } else { |
| 80 addClass(el, 'fail'); |
| 81 } |
| 82 |
| 83 } |
| 84 }; |
| 85 |
| 86 return testDom; |
| 87 }); |
| OLD | NEW |