github.com/web-platform-tests/wpt.fyi@v0.0.0-20240530210107-70cf978996f1/webapp/components/test/test-run.html (about) 1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <script src="../../node_modules/@webcomponents/webcomponentsjs/webcomponents-loader.js"></script> 6 <script src="../../node_modules/wct-browser-legacy/browser.js"></script> 7 8 <script type="module" src="../test-run.js"></script> 9 </head> 10 <body> 11 <test-fixture id="test-run-fixture"> 12 <template> 13 <test-run></test-run> 14 </template> 15 </test-fixture> 16 17 <script type="module"> 18 import { TestRun } from '../test-run.js'; 19 20 suite('<test-run>', () => { 21 let trf = null; 22 23 setup(() => { 24 trf = fixture('test-run-fixture'); 25 trf.set('testRun', { 26 browser_name: 'firefox', 27 time_start: '2018-01-12T12:00:00Z', 28 time_end: '2018-01-12T13:20:00Z', 29 revision: '0123456789', 30 }); 31 }); 32 33 suite('static get properties()', () => { 34 test('testRun', () => { 35 assert.property(TestRun.properties, 'testRun'); 36 assert.property(TestRun.properties.testRun, 'type'); 37 assert.equal(TestRun.properties.testRun.type, Object); 38 }); 39 }); 40 41 suite('TestRun.prototype.*', () => { 42 let sandbox; 43 44 setup(() => { 45 sandbox = sinon.sandbox.create(); 46 // Override the timezone as UTC. 47 for (const method of ['toLocaleDateString', 'toLocaleTimeString']) { 48 const original = Date.prototype[method]; 49 sandbox.stub(Date.prototype, method, function(locale, options) { 50 return original.call( 51 this, 'en-US', Object.assign(options, {timeZone: 'UTC'})); 52 }); 53 } 54 }); 55 56 suite('dateFormat()', () => { 57 test('dateFormat(iso string)', () => { 58 assert.equal(trf.dateFormat('2018-01-12T12:00:00Z'), 'Jan 12, 2018'); 59 }); 60 }); 61 62 test('timeFormat(iso string)', () => { 63 assert.equal(trf.timeFormat('2018-01-12T12:00:00Z'), 'Jan 12 at 12:00 PM'); 64 }); 65 66 suite('timeTaken(testRun Object)', () => { 67 test('1h 20m', () => { 68 const testRun = { 69 time_start: '2018-01-12T12:00:00Z', 70 time_end: '2018-01-12T13:20:00Z', 71 }; 72 assert.equal(trf.timeTaken(testRun), '(took 1.3h)'); 73 }); 74 75 test('0m', () => { 76 const testRun = { 77 time_start: '2018-01-12T12:00:00Z', 78 time_end: '2018-01-12T12:00:00Z', 79 }; 80 assert.equal(trf.timeTaken(testRun), ''); 81 }); 82 }); 83 84 suite('isDiff()', () => { 85 test('isDiff("Diff|diff")', () => { 86 assert.isTrue(trf.isDiff('Diff')); 87 assert.isTrue(trf.isDiff('diff')); 88 }); 89 test('isDiff(anything else)', () => { 90 assert.isFalse(trf.isDiff('literally anything')); 91 }); 92 }); 93 94 suite('shortVersion', () => { 95 test('valid, major only', () => { 96 assert.equal(trf.shortVersion('chrome', '1'), '1'); 97 assert.equal(trf.shortVersion('chrome', '2.3'), '2'); 98 assert.equal(trf.shortVersion('chrome', '3.4.5'), '3'); 99 assert.equal(trf.shortVersion('chrome', '4.5.6.7'), '4'); 100 assert.equal(trf.shortVersion('chrome', '765.687'), '765'); 101 assert.equal(trf.shortVersion('chrome', ' 11.0 '), '11'); 102 assert.equal(trf.shortVersion('chrome', '56.0a'), '56'); 103 }); 104 105 test('valid, major and minor', () => { 106 assert.equal(trf.shortVersion('safari', '1'), '1'); 107 assert.equal(trf.shortVersion('safari', '2.3'), '2.3'); 108 assert.equal(trf.shortVersion('safari', '3.4.5'), '3.4'); 109 assert.equal(trf.shortVersion('safari', '4.5.6.7'), '4.5'); 110 assert.equal(trf.shortVersion('safari', '765.687'), '765.687'); 111 assert.equal(trf.shortVersion('safari', ' 11.0 '), '11.0'); 112 assert.equal(trf.shortVersion('safari', '56.0a'), '56.0'); 113 }); 114 115 test('valid, major and minor', () => { 116 assert.equal(trf.shortVersion('webkitgtk', '1'), '1'); 117 assert.equal(trf.shortVersion('webkitgtk', '2.3'), '2.3'); 118 assert.equal(trf.shortVersion('webkitgtk', '3.4.5'), '3.4'); 119 assert.equal(trf.shortVersion('webkitgtk', '4.5.6.7'), '4.5'); 120 assert.equal(trf.shortVersion('webkitgtk', '765.687'), '765.687'); 121 assert.equal(trf.shortVersion('webkitgtk', ' 11.0 '), '11.0'); 122 assert.equal(trf.shortVersion('webkitgtk', '56.0a'), '56.0'); 123 }); 124 125 test('invalid', () => { 126 assert.equal(trf.shortVersion('chrome', 'five'), 'five'); 127 assert.equal(trf.shortVersion('chrome', ''), ''); 128 assert.equal(trf.shortVersion('safari', 'five'), 'five'); 129 assert.equal(trf.shortVersion('safari', ''), ''); 130 assert.equal(trf.shortVersion('webkitgtk', 'five'), 'five'); 131 assert.equal(trf.shortVersion('webkitgtk', ''), ''); 132 }); 133 }); 134 135 teardown(() => { 136 sandbox.restore(); 137 }); 138 }); 139 }); 140 </script> 141 </body> 142 </html>