aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOmar Rizwan <omar@omar.website>2020-12-29 02:35:03 -0800
committerOmar Rizwan <omar@omar.website>2020-12-29 02:35:03 -0800
commit5f15ab1c379fcd254785a398775fe12ceefdbe60 (patch)
treeb27e7e589c1434691cddad7c4a86c206498cf64f
parentb8181bd6f520bbb7f6aa2b26cf0d05ed5a0a9545 (diff)
improve test reliability; try clear scriptsForTab (doesn't work yet)
-rw-r--r--extension/background.js3
-rw-r--r--test/Makefile5
-rwxr-xr-xtest/testbin0 -> 49784 bytes
-rwxr-xr-xtest/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
new file mode 100755
index 0000000..36de26f
--- /dev/null
+++ b/test/test
Binary files differ
diff --git a/test.c b/test/test.c
index 76b353d..f715b44 100755
--- a/test.c
+++ b/test/test.c
@@ -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");
}