diff options
author | Omar Rizwan <omar@omar.website> | 2020-12-29 02:35:03 -0800 |
---|---|---|
committer | Omar Rizwan <omar@omar.website> | 2020-12-29 02:35:03 -0800 |
commit | 5f15ab1c379fcd254785a398775fe12ceefdbe60 (patch) | |
tree | b27e7e589c1434691cddad7c4a86c206498cf64f | |
parent | b8181bd6f520bbb7f6aa2b26cf0d05ed5a0a9545 (diff) |
improve test reliability; try clear scriptsForTab (doesn't work yet)
-rw-r--r-- | extension/background.js | 3 | ||||
-rw-r--r-- | test/Makefile | 5 | ||||
-rwxr-xr-x | test/test | bin | 0 -> 49784 bytes | |||
-rwxr-xr-x | test/test.c (renamed from test.c) | 19 |
4 files changed, 16 insertions, 11 deletions
diff --git a/extension/background.js b/extension/background.js index ab15933..4de9b67 100644 --- a/extension/background.js +++ b/extension/background.js @@ -84,14 +84,13 @@ const BrowserState = { scriptsForTab: {} }; chrome.debugger.onEvent.addListener((source, method, params) => { console.log(source, method, params); - if (method === "Page.") { + if (method === "Page.frameStartedLoading") { // we're gonna assume we're always plugged into both Page and Debugger. BrowserState.scriptsForTab[source.tabId] = []; } else if (method === "Debugger.scriptParsed") { BrowserState.scriptsForTab[source.tabId] = BrowserState.scriptsForTab[source.tabId] || []; BrowserState.scriptsForTab[source.tabId].push(params); - // FIXME: clear these out when page changes in tab (how?) } }); })(); diff --git a/test/Makefile b/test/Makefile new file mode 100644 index 0000000..060a265 --- /dev/null +++ b/test/Makefile @@ -0,0 +1,5 @@ +run-test: test + ./test + +test: test.c + cc -o $@ $^ diff --git a/test/test b/test/test Binary files differnew file mode 100755 index 0000000..36de26f --- /dev/null +++ b/test/test @@ -5,6 +5,7 @@ #include <stdio.h> #include <stdlib.h> +#include <sys/stat.h> #include <unistd.h> #include <assert.h> @@ -24,20 +25,20 @@ char* expand(char* phrase) { // expand path with wildcard // integration tests int main() { - assert(system("node extension/background.js --unhandled-rejections=strict") == 0); // run quick local JS tests + assert(system("node ../extension/background.js --unhandled-rejections=strict") == 0); // run quick local JS tests // reload the extension so we know it's the latest code. - system("echo reload > fs/mnt/runtime/reload"); // this may error, but it should still have effect - // FIXME: race here - sleep(4); + system("echo reload > ../fs/mnt/runtime/reload 2>/dev/null"); // this may error, but it should still have effect + // spin until the extension reloads. + struct stat st; while (stat("../fs/mnt/tabs", &st) != 0) {} + + assert(file_contents_equal(expand("../fs/mnt/extensions/TabFS*/enabled"), "true")); // FIXME: synthesize some kind of web page - assert(system("echo about:blank > fs/mnt/tabs/create") == 0); + assert(system("echo about:blank > ../fs/mnt/tabs/create") == 0); // FIXME: race here - assert(file_contents_equal("fs/mnt/tabs/last-focused/url.txt", "about:blank")); - assert(system("echo remove > fs/mnt/tabs/last-focused/control") == 0); - - assert(file_contents_equal(expand("fs/mnt/extensions/TabFS*/enabled"), "true")); + assert(file_contents_equal("../fs/mnt/tabs/last-focused/url.txt", "about:blank")); + assert(system("echo remove > ../fs/mnt/tabs/last-focused/control") == 0); assert(1); printf("Done!\n"); } |