mirror of
https://github.com/onionshare/onionshare.git
synced 2024-10-01 01:35:40 -04:00
Added test_autostop_timer, test_autostop_timer_too_short, and test_unreadable_file
This commit is contained in:
parent
53e5515f38
commit
366d77f37a
@ -59,7 +59,7 @@ class GuiBaseTest(unittest.TestCase):
|
|||||||
@classmethod
|
@classmethod
|
||||||
def tearDownClass(cls):
|
def tearDownClass(cls):
|
||||||
# Quit
|
# Quit
|
||||||
QtCore.QTimer.singleShot(0, cls.gui.close_dialog.accept_button.click)
|
QtCore.QTimer.singleShot(200, cls.gui.close_dialog.accept_button.click)
|
||||||
cls.gui.close()
|
cls.gui.close()
|
||||||
|
|
||||||
cls.gui.cleanup()
|
cls.gui.cleanup()
|
||||||
@ -127,7 +127,7 @@ class GuiBaseTest(unittest.TestCase):
|
|||||||
def close_all_tabs(self):
|
def close_all_tabs(self):
|
||||||
for _ in range(self.gui.tabs.count()):
|
for _ in range(self.gui.tabs.count()):
|
||||||
tab = self.gui.tabs.widget(0)
|
tab = self.gui.tabs.widget(0)
|
||||||
QtCore.QTimer.singleShot(0, tab.close_dialog.accept_button.click)
|
QtCore.QTimer.singleShot(200, tab.close_dialog.accept_button.click)
|
||||||
self.gui.tabs.tabBar().tabButton(0, QtWidgets.QTabBar.RightSide).click()
|
self.gui.tabs.tabBar().tabButton(0, QtWidgets.QTabBar.RightSide).click()
|
||||||
|
|
||||||
def gui_loaded(self):
|
def gui_loaded(self):
|
||||||
@ -380,7 +380,7 @@ class GuiBaseTest(unittest.TestCase):
|
|||||||
def autostop_timer_widget_hidden(self, tab):
|
def autostop_timer_widget_hidden(self, tab):
|
||||||
"""Test that the auto-stop timer widget is hidden when share has started"""
|
"""Test that the auto-stop timer widget is hidden when share has started"""
|
||||||
self.assertFalse(
|
self.assertFalse(
|
||||||
tab.get_mode().mode_settings_widget.autostop_timer_container.isVisible()
|
tab.get_mode().mode_settings_widget.autostop_timer_widget.isVisible()
|
||||||
)
|
)
|
||||||
|
|
||||||
def server_timed_out(self, tab, wait):
|
def server_timed_out(self, tab, wait):
|
||||||
|
@ -163,7 +163,7 @@ class TestShare(GuiBaseTest):
|
|||||||
|
|
||||||
# A nasty hack to avoid the Alert dialog that blocks the rest of the test
|
# A nasty hack to avoid the Alert dialog that blocks the rest of the test
|
||||||
if not tab.settings.get("general", "public"):
|
if not tab.settings.get("general", "public"):
|
||||||
QtCore.QTimer.singleShot(0, self.accept_dialog)
|
QtCore.QTimer.singleShot(200, self.accept_dialog)
|
||||||
|
|
||||||
# In public mode, we should still be running (no rate-limiting)
|
# In public mode, we should still be running (no rate-limiting)
|
||||||
if tab.settings.get("general", "public"):
|
if tab.settings.get("general", "public"):
|
||||||
@ -305,24 +305,6 @@ class TestShare(GuiBaseTest):
|
|||||||
self.run_all_share_mode_started_tests(tab)
|
self.run_all_share_mode_started_tests(tab)
|
||||||
self.run_all_share_mode_individual_file_download_tests(tab)
|
self.run_all_share_mode_individual_file_download_tests(tab)
|
||||||
|
|
||||||
def run_all_share_mode_timer_tests(self, tab):
|
|
||||||
"""Auto-stop timer tests in share mode"""
|
|
||||||
self.run_all_share_mode_setup_tests(tab)
|
|
||||||
self.set_timeout(tab, 5)
|
|
||||||
self.run_all_share_mode_started_tests(tab)
|
|
||||||
self.autostop_timer_widget_hidden(tab)
|
|
||||||
self.server_timed_out(tab, 10000)
|
|
||||||
self.web_server_is_stopped(tab)
|
|
||||||
|
|
||||||
def run_all_share_mode_unreadable_file_tests(self, tab):
|
|
||||||
"""Attempt to share an unreadable file"""
|
|
||||||
self.run_all_share_mode_setup_tests(tab)
|
|
||||||
QtCore.QTimer.singleShot(0, self.accept_dialog)
|
|
||||||
tab.get_mode().server_status.file_selection.file_list.add_file(
|
|
||||||
"/tmp/nonexistent.txt"
|
|
||||||
)
|
|
||||||
self.file_selection_widget_has_files(tab, 2)
|
|
||||||
|
|
||||||
# Tests
|
# Tests
|
||||||
|
|
||||||
@pytest.mark.gui
|
@pytest.mark.gui
|
||||||
@ -527,3 +509,68 @@ class TestShare(GuiBaseTest):
|
|||||||
self.run_all_share_mode_download_tests(tab)
|
self.run_all_share_mode_download_tests(tab)
|
||||||
|
|
||||||
self.close_all_tabs()
|
self.close_all_tabs()
|
||||||
|
|
||||||
|
@pytest.mark.gui
|
||||||
|
def test_autostop_timer(self):
|
||||||
|
"""
|
||||||
|
Test the autostop timer
|
||||||
|
"""
|
||||||
|
tab = self.new_share_tab()
|
||||||
|
tab.get_mode().mode_settings_widget.toggle_advanced_button.click()
|
||||||
|
tab.get_mode().mode_settings_widget.autostop_timer_checkbox.click()
|
||||||
|
|
||||||
|
self.run_all_common_setup_tests()
|
||||||
|
self.run_all_share_mode_setup_tests(tab)
|
||||||
|
self.set_timeout(tab, 5)
|
||||||
|
self.run_all_share_mode_started_tests(tab)
|
||||||
|
self.autostop_timer_widget_hidden(tab)
|
||||||
|
self.server_timed_out(tab, 10000)
|
||||||
|
self.web_server_is_stopped(tab)
|
||||||
|
|
||||||
|
self.close_all_tabs()
|
||||||
|
|
||||||
|
@pytest.mark.gui
|
||||||
|
def test_autostop_timer_too_short(self):
|
||||||
|
"""
|
||||||
|
Test the autostop timer when the timeout is too short
|
||||||
|
"""
|
||||||
|
tab = self.new_share_tab()
|
||||||
|
tab.get_mode().mode_settings_widget.toggle_advanced_button.click()
|
||||||
|
tab.get_mode().mode_settings_widget.autostop_timer_checkbox.click()
|
||||||
|
|
||||||
|
def accept_dialog():
|
||||||
|
window = tab.common.gui.qtapp.activeWindow()
|
||||||
|
if window:
|
||||||
|
window.close()
|
||||||
|
|
||||||
|
self.run_all_common_setup_tests()
|
||||||
|
self.run_all_share_mode_setup_tests(tab)
|
||||||
|
# Set a low timeout
|
||||||
|
self.set_timeout(tab, 2)
|
||||||
|
QtTest.QTest.qWait(2100)
|
||||||
|
QtCore.QTimer.singleShot(2200, accept_dialog)
|
||||||
|
tab.get_mode().server_status.server_button.click()
|
||||||
|
self.assertEqual(tab.get_mode().server_status.status, 0)
|
||||||
|
|
||||||
|
self.close_all_tabs()
|
||||||
|
|
||||||
|
@pytest.mark.gui
|
||||||
|
def test_unreadable_file(self):
|
||||||
|
"""
|
||||||
|
Sharing an unreadable file should throw a warning
|
||||||
|
"""
|
||||||
|
tab = self.new_share_tab()
|
||||||
|
|
||||||
|
def accept_dialog():
|
||||||
|
window = tab.common.gui.qtapp.activeWindow()
|
||||||
|
if window:
|
||||||
|
window.close()
|
||||||
|
|
||||||
|
self.run_all_share_mode_setup_tests(tab)
|
||||||
|
QtCore.QTimer.singleShot(200, accept_dialog)
|
||||||
|
tab.get_mode().server_status.file_selection.file_list.add_file(
|
||||||
|
"/tmp/nonexistent.txt"
|
||||||
|
)
|
||||||
|
self.file_selection_widget_has_files(tab, 3)
|
||||||
|
|
||||||
|
self.close_all_tabs()
|
||||||
|
Loading…
Reference in New Issue
Block a user