improve test reliability; try clear scriptsForTab (doesn't work yet)

This commit is contained in:
Omar Rizwan 2020-12-29 02:35:03 -08:00
parent b8181bd6f5
commit 5f15ab1c37
4 changed files with 16 additions and 11 deletions

View file

@ -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?)
}
});
})();

5
test/Makefile Normal file
View file

@ -0,0 +1,5 @@
run-test: test
./test
test: test.c
cc -o $@ $^

BIN
test/test Executable file

Binary file not shown.

View file

@ -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");
}