diff options
author | Wojtek Kosior <koszko@koszko.org> | 2021-11-24 15:53:00 +0100 |
---|---|---|
committer | Wojtek Kosior <koszko@koszko.org> | 2021-12-01 21:06:28 +0100 |
commit | 93dd73600e91eb19e11f5ca57f9429a85cf0150f (patch) | |
tree | 1e90890a39798f6cd9a1c0886d1234ccc187f5b3 /test/unit/test_basic.py | |
parent | 463e6830faf5bb81474ac55cf95eed6ae68cc684 (diff) | |
download | browser-extension-93dd73600e91eb19e11f5ca57f9429a85cf0150f.tar.gz browser-extension-93dd73600e91eb19e11f5ca57f9429a85cf0150f.zip |
improve unit testing approach
Unit tests were moved to their own subdirectory.
Fixtures common to many unit tests were moved to test/unit/conftest.py.
A facility to execute scripts in page's global scope was added.
A workaround was employed to present information about errors in injected scripts.
Sample unit tests for regexes in common/patterns.js were added.
Diffstat (limited to 'test/unit/test_basic.py')
-rw-r--r-- | test/unit/test_basic.py | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/test/unit/test_basic.py b/test/unit/test_basic.py new file mode 100644 index 0000000..cbe5c8c --- /dev/null +++ b/test/unit/test_basic.py @@ -0,0 +1,41 @@ +# SPDX-License-Identifier: CC0-1.0 + +""" +Haketilo unit tests - base +""" + +# This file is part of Haketilo +# +# Copyright (C) 2021, Wojtek Kosior +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the CC0 1.0 Universal License as published by +# the Creative Commons Corporation. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# CC0 1.0 Universal License for more details. + +import pytest + +def test_driver(driver): + """ + A trivial test case that verifies mocked web pages served by proxy can be + accessed by the browser driven. + """ + for proto in ['http://', 'https://']: + driver.get(proto + 'gotmyowndoma.in') + element = driver.find_element_by_tag_name('title') + title = driver.execute_script('return arguments[0].innerText;', element) + assert "Schrodinger's Document" in title + +def test_script_loader(execute_in_page, load_into_page): + """ + A trivial test case that verifies Haketilo's .js files can be properly + loaded into a test page together with their dependencies. + """ + load_into_page('common/stored_types.js', ['common'], + page='https://gotmyowndoma.in') + + assert execute_in_page('returnval(TYPE_PREFIX.VAR);') == '_' |