1<!doctype html>
2<html lang="en-us">
3  <head>
4    <meta charset="utf-8">
5    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
6    <link rel="shortcut icon" href="data:image/x-icon;," type="image/x-icon">
7    <link rel="stylesheet" href="../common/emscripten.css"/>
8    <link rel="stylesheet" href="../common/testing.css"/>
9    <title>sqlite3 tester #1 (Worker thread)</title>
10    <style>
11      body {
12          font-family: monospace;
13      }
14    </style>
15  </head>
16  <body>
17    <h1 id='color-target'>sqlite3 WASM/JS tester #1 (Worker thread)</h1>
18    <div>See <a href='tester1.html' target='tester1.html'>tester1.html</a>
19      for the UI-thread variant.</div>
20    <div class='input-wrapper'>
21      <input type='checkbox' id='cb-log-reverse'>
22      <label for='cb-log-reverse'>Reverse log order?</label>
23    </div>
24    <div id='test-output'></div>
25    <script>(function(){
26      const logTarget = document.querySelector('#test-output');
27      const logHtml = function(cssClass,...args){
28        const ln = document.createElement('div');
29        if(cssClass){
30          for(const c of (Array.isArray(cssClass) ? cssClass : [cssClass])){
31            ln.classList.add(c);
32          }
33        }
34        ln.append(document.createTextNode(args.join(' ')));
35        logTarget.append(ln);
36      };
37      const cbReverse = document.querySelector('#cb-log-reverse');
38      const cbReverseIt = ()=>{
39        logTarget.classList[cbReverse.checked ? 'add' : 'remove']('reverse');
40      };
41      cbReverse.addEventListener('change',cbReverseIt,true);
42      cbReverseIt();
43      const w = new Worker("tester1.js?sqlite3.dir=jswasm");
44      w.onmessage = function({data}){
45        switch(data.type){
46            case 'log':
47              logHtml(data.payload.cssClass, ...data.payload.args);
48              break;
49            case 'error':
50              logHtml('error', ...data.payload.args);
51              break;
52            case 'test-result':
53              document.querySelector('#color-target').classList.add(
54                data.payload.pass ? 'tests-pass' : 'tests-fail'
55              );
56              break;
57            default:
58              logHtml('error',"Unhandled message:",data.type);
59        };
60      };
61    })();</script>
62  </body>
63</html>
64