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>