diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/Makefile | 1 | ||||
-rw-r--r-- | test/README.md | 12 | ||||
-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.c | 4 | ||||
-rw-r--r-- | test/test.js | 21 |
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']); +})(); |