summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/Makefile1
-rw-r--r--test/README.md12
-rw-r--r--test/test-resources/test-page.html (renamed from test/test-page.html)0
-rw-r--r--test/test-resources/test-script.js (renamed from test/test-script.js)0
-rw-r--r--test/test-resources/test-textarea.html (renamed from test/test-textarea.html)0
-rw-r--r--test/test.c4
-rw-r--r--test/test.js21
7 files changed, 36 insertions, 2 deletions
diff --git a/test/Makefile b/test/Makefile
index 060a265..9659a23 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -1,4 +1,5 @@
run-test: test
+ node test.js
./test
test: test.c
diff --git a/test/README.md b/test/README.md
new file mode 100644
index 0000000..31460f9
--- /dev/null
+++ b/test/README.md
@@ -0,0 +1,12 @@
+# test
+
+Two separate test 'suites': one in `test.js` that uses node, and one
+in `test.c` that is an integration test that actually tests against
+the extension in browser.
+
+Right now, you need to have Chrome open (I haven't tried Firefox or
+Safari), and you'll want to make sure a window other than the
+extension console is focused (the console is non-debuggable, so it
+breaks the test).
+
+Run `make` in this folder.
diff --git a/test/test-page.html b/test/test-resources/test-page.html
index 5ae2887..5ae2887 100644
--- a/test/test-page.html
+++ b/test/test-resources/test-page.html
diff --git a/test/test-script.js b/test/test-resources/test-script.js
index a23567e..a23567e 100644
--- a/test/test-script.js
+++ b/test/test-resources/test-script.js
diff --git a/test/test-textarea.html b/test/test-resources/test-textarea.html
index 9c460fa..9c460fa 100644
--- a/test/test-textarea.html
+++ b/test/test-resources/test-textarea.html
diff --git a/test/test.c b/test/test.c
index e18197c..4ad3dd3 100644
--- a/test/test.c
+++ b/test/test.c
@@ -55,7 +55,7 @@ int main() {
}
{
- assert(system("echo file://$(pwd)/test-page.html > ../fs/mnt/tabs/create") == 0);
+ assert(system("echo file://$(pwd)/test-resources/test-page.html > ../fs/mnt/tabs/create") == 0);
assert(file_contents_equal("../fs/mnt/tabs/last-focused/title.txt", "Title of Test Page"));
assert(file_contents_equal("../fs/mnt/tabs/last-focused/text.txt", "Body Text of Test Page"));
@@ -87,7 +87,7 @@ int main() {
}
{
- assert(system("echo file://$(pwd)/test-textarea.html > ../fs/mnt/tabs/create") == 0);
+ assert(system("echo file://$(pwd)/test-resources/test-textarea.html > ../fs/mnt/tabs/create") == 0);
{
assert(system("echo \"document.getElementById('ta').value\" > ../fs/mnt/tabs/last-focused/evals/ta.js") == 0);
diff --git a/test/test.js b/test/test.js
new file mode 100644
index 0000000..1288bf4
--- /dev/null
+++ b/test/test.js
@@ -0,0 +1,21 @@
+const assert = require('assert');
+
+// mock chrome namespace
+global.chrome = {};
+// run background.js
+const {router, findRoute} = require('../extension/background');
+
+(async () => {
+ const tabRoute = await router['/tabs/by-id/*'].readdir();
+ assert(['.', '..', 'url.txt', 'title.txt', 'text.txt']
+ .every(file => tabRoute.entries.includes(file)));
+
+ assert.deepEqual(await router['/'].readdir(),
+ { entries: ['.', '..', 'windows', 'extensions', 'tabs', 'runtime'] });
+ assert.deepEqual(await router['/tabs'].readdir(),
+ { entries: ['.', '..', 'create',
+ 'by-id', 'by-title', 'last-focused'] });
+
+ assert.deepEqual(findRoute('/tabs/by-id/TABID/url.txt'),
+ router['/tabs/by-id/*/url.txt']);
+})();