summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMicah Lee <micah@micahflee.com>2020-06-30 10:56:25 -0700
committerMicah Lee <micah@micahflee.com>2020-06-30 10:56:25 -0700
commit17b0af98f27c1550c115226450ac244a45832b56 (patch)
tree04560f5f13eeb19a3eb3f82fc10e0c358b2c86ba /tests
parent40b43b66ab788c60fe3753f9c44207e360ff8fad (diff)
parentf65e50f399f1716162343d84b6003957adc46185 (diff)
downloadonionshare-17b0af98f27c1550c115226450ac244a45832b56.tar.gz
onionshare-17b0af98f27c1550c115226450ac244a45832b56.zip
Merge branch 'develop' into 910_flatpak
Diffstat (limited to 'tests')
-rw-r--r--tests/gui_base_test.py17
-rwxr-xr-xtests/run.sh4
-rw-r--r--tests/test_gui_receive.py1
-rw-r--r--tests/test_gui_share.py68
-rw-r--r--tests/test_gui_tabs.py3
-rw-r--r--tests/test_gui_website.py3
6 files changed, 70 insertions, 26 deletions
diff --git a/tests/gui_base_test.py b/tests/gui_base_test.py
index 87353cd7..fa503faa 100644
--- a/tests/gui_base_test.py
+++ b/tests/gui_base_test.py
@@ -297,6 +297,17 @@ class GuiBaseTest(unittest.TestCase):
f"http://onionshare:{tab.get_mode().server_status.web.password}@127.0.0.1:{tab.app.port}",
)
+ def have_show_qr_code_button(self, tab):
+ """Test that the Show QR Code URL button is shown and that it loads a QR Code Dialog"""
+ self.assertTrue(tab.get_mode().server_status.show_url_qr_code_button.isVisible())
+ def accept_dialog():
+ window = tab.common.gui.qtapp.activeWindow()
+ if window:
+ window.close()
+
+ QtCore.QTimer.singleShot(500, accept_dialog)
+ tab.get_mode().server_status.show_url_qr_code_button.click()
+
def server_status_indicator_says_started(self, tab):
"""Test that the Server Status indicator shows we are started"""
if type(tab.get_mode()) == ReceiveMode:
@@ -388,13 +399,13 @@ class GuiBaseTest(unittest.TestCase):
tab.get_mode().server_status.file_selection.get_num_files(), num
)
- def add_delete_buttons_hidden(self, tab):
- """Test that the add and delete buttons are hidden when the server starts"""
+ def add_remove_buttons_hidden(self, tab):
+ """Test that the add and remove buttons are hidden when the server starts"""
self.assertFalse(
tab.get_mode().server_status.file_selection.add_button.isVisible()
)
self.assertFalse(
- tab.get_mode().server_status.file_selection.delete_button.isVisible()
+ tab.get_mode().server_status.file_selection.remove_button.isVisible()
)
# Auto-stop timer tests
diff --git a/tests/run.sh b/tests/run.sh
index 3c792cd3..184dfc16 100755
--- a/tests/run.sh
+++ b/tests/run.sh
@@ -20,7 +20,7 @@ do
shift
done
-pytest $PARAMS -vvv ./tests/test_cli*.py
+pytest $PARAMS -vvv ./tests/test_cli*.py || exit 1
for filename in ./tests/test_gui_*.py; do
- pytest $PARAMS -vvv --no-qt-log $filename
+ pytest $PARAMS -vvv --no-qt-log $filename || exit 1
done
diff --git a/tests/test_gui_receive.py b/tests/test_gui_receive.py
index 4ee0abd8..bd9cf491 100644
--- a/tests/test_gui_receive.py
+++ b/tests/test_gui_receive.py
@@ -112,6 +112,7 @@ class TestReceive(GuiBaseTest):
self.have_a_password(tab)
self.url_description_shown(tab)
self.have_copy_url_button(tab)
+ self.have_show_qr_code_button(tab)
self.server_status_indicator_says_started(tab)
self.web_page(tab, "Select the files you want to send, then click")
diff --git a/tests/test_gui_share.py b/tests/test_gui_share.py
index c8b6292a..846a5034 100644
--- a/tests/test_gui_share.py
+++ b/tests/test_gui_share.py
@@ -12,8 +12,8 @@ from .gui_base_test import GuiBaseTest
class TestShare(GuiBaseTest):
# Shared test methods
- def deleting_all_files_hides_delete_button(self, tab):
- """Test that clicking on the file item shows the delete button. Test that deleting the only item in the list hides the delete button"""
+ def removing_all_files_hides_remove_button(self, tab):
+ """Test that clicking on the file item shows the remove button. Test that removing the only item in the list hides the remove button"""
rect = tab.get_mode().server_status.file_selection.file_list.visualItemRect(
tab.get_mode().server_status.file_selection.file_list.item(0)
)
@@ -22,12 +22,12 @@ class TestShare(GuiBaseTest):
QtCore.Qt.LeftButton,
pos=rect.center(),
)
- # Delete button should be visible
+ # Remove button should be visible
self.assertTrue(
- tab.get_mode().server_status.file_selection.delete_button.isVisible()
+ tab.get_mode().server_status.file_selection.remove_button.isVisible()
)
- # Click delete, delete button should still be visible since we have one more file
- tab.get_mode().server_status.file_selection.delete_button.click()
+ # Click remove, remove button should still be visible since we have one more file
+ tab.get_mode().server_status.file_selection.remove_button.click()
rect = tab.get_mode().server_status.file_selection.file_list.visualItemRect(
tab.get_mode().server_status.file_selection.file_list.item(0)
)
@@ -37,17 +37,17 @@ class TestShare(GuiBaseTest):
pos=rect.center(),
)
self.assertTrue(
- tab.get_mode().server_status.file_selection.delete_button.isVisible()
+ tab.get_mode().server_status.file_selection.remove_button.isVisible()
)
- tab.get_mode().server_status.file_selection.delete_button.click()
+ tab.get_mode().server_status.file_selection.remove_button.click()
- # No more files, the delete button should be hidden
+ # No more files, the remove button should be hidden
self.assertFalse(
- tab.get_mode().server_status.file_selection.delete_button.isVisible()
+ tab.get_mode().server_status.file_selection.remove_button.isVisible()
)
- def add_a_file_and_delete_using_its_delete_widget(self, tab):
- """Test that we can also delete a file by clicking on its [X] widget"""
+ def add_a_file_and_remove_using_its_remove_widget(self, tab):
+ """Test that we can also remove a file by clicking on its [X] widget"""
num_files = tab.get_mode().server_status.file_selection.get_num_files()
tab.get_mode().server_status.file_selection.file_list.add_file(self.tmpfiles[0])
tab.get_mode().server_status.file_selection.file_list.item(
@@ -55,6 +55,14 @@ class TestShare(GuiBaseTest):
).item_button.click()
self.file_selection_widget_has_files(tab, num_files)
+ def add_a_file_and_remove_using_remove_all_widget(self, tab):
+ """Test that we can also remove all files by clicking on the Remove All widget"""
+ tab.get_mode().server_status.file_selection.file_list.add_file(self.tmpfiles[0])
+ tab.get_mode().server_status.file_selection.file_list.add_file(self.tmpfiles[1])
+ tab.get_mode().remove_all_button.click()
+ # Should be no files after clearing all
+ self.file_selection_widget_has_files(tab, 0)
+
def file_selection_widget_read_files(self, tab):
"""Re-add some files to the list so we can share"""
num_files = tab.get_mode().server_status.file_selection.get_num_files()
@@ -189,7 +197,7 @@ class TestShare(GuiBaseTest):
"""Test that we can cancel a share before it's started up """
self.server_working_on_start_button_pressed(tab)
self.server_status_indicator_says_scheduled(tab)
- self.add_delete_buttons_hidden(tab)
+ self.add_remove_buttons_hidden(tab)
self.mode_settings_widget_is_hidden(tab)
self.set_autostart_timer(tab, 10)
QtTest.QTest.mousePress(
@@ -216,21 +224,22 @@ class TestShare(GuiBaseTest):
self.history_is_not_visible(tab)
self.click_toggle_history(tab)
self.history_is_visible(tab)
- self.deleting_all_files_hides_delete_button(tab)
- self.add_a_file_and_delete_using_its_delete_widget(tab)
+ self.removing_all_files_hides_remove_button(tab)
+ self.add_a_file_and_remove_using_its_remove_widget(tab)
self.file_selection_widget_read_files(tab)
def run_all_share_mode_started_tests(self, tab, startup_time=2000):
"""Tests in share mode after starting a share"""
self.server_working_on_start_button_pressed(tab)
self.server_status_indicator_says_starting(tab)
- self.add_delete_buttons_hidden(tab)
+ self.add_remove_buttons_hidden(tab)
self.mode_settings_widget_is_hidden(tab)
self.server_is_started(tab, startup_time)
self.web_server_is_running(tab)
self.have_a_password(tab)
self.url_description_shown(tab)
self.have_copy_url_button(tab)
+ self.have_show_qr_code_button(tab)
self.server_status_indicator_says_started(tab)
def run_all_share_mode_download_tests(self, tab):
@@ -269,7 +278,7 @@ class TestShare(GuiBaseTest):
self.run_all_share_mode_started_tests(tab)
self.run_all_share_mode_download_tests(tab)
- def run_all_clear_all_button_tests(self, tab):
+ def run_all_clear_all_history_button_tests(self, tab):
"""Test the Clear All history button"""
self.run_all_share_mode_setup_tests(tab)
self.run_all_share_mode_started_tests(tab)
@@ -279,6 +288,11 @@ class TestShare(GuiBaseTest):
self.individual_file_is_viewable_or_not(tab)
self.clear_all_history_items(tab, 2)
+ def run_all_remove_all_file_selection_button_tests(self, tab):
+ """Test the Remove All File Selection button"""
+ self.run_all_share_mode_setup_tests(tab)
+ self.add_a_file_and_remove_using_remove_all_widget(tab)
+
def run_all_share_mode_individual_file_tests(self, tab):
"""Tests in share mode when viewing an individual file"""
self.run_all_share_mode_setup_tests(tab)
@@ -375,15 +389,27 @@ class TestShare(GuiBaseTest):
self.close_all_tabs()
@pytest.mark.gui
- def test_clear_all_button(self):
+ def test_clear_all_history_button(self):
"""
- Test canceling a scheduled share
+ Test clearing all history items
"""
tab = self.new_share_tab()
tab.get_mode().autostop_sharing_checkbox.click()
self.run_all_common_setup_tests()
- self.run_all_clear_all_button_tests(tab)
+ self.run_all_clear_all_history_button_tests(tab)
+
+ self.close_all_tabs()
+
+ @pytest.mark.gui
+ def test_remove_all_file_selection_button(self):
+ """
+ Test remove all file items at once
+ """
+ tab = self.new_share_tab()
+
+ self.run_all_common_setup_tests()
+ self.run_all_remove_all_file_selection_button_tests(tab)
self.close_all_tabs()
@@ -561,6 +587,7 @@ class TestShare(GuiBaseTest):
Rate limit should be triggered
"""
tab = self.new_share_tab()
+
def accept_dialog():
window = tab.common.gui.qtapp.activeWindow()
if window:
@@ -580,6 +607,7 @@ class TestShare(GuiBaseTest):
Public mode should skip the rate limit
"""
tab = self.new_share_tab()
+
def accept_dialog():
window = tab.common.gui.qtapp.activeWindow()
if window:
diff --git a/tests/test_gui_tabs.py b/tests/test_gui_tabs.py
index 47a3d75d..eda30f79 100644
--- a/tests/test_gui_tabs.py
+++ b/tests/test_gui_tabs.py
@@ -138,18 +138,21 @@ class TestTabs(GuiBaseTest):
self.gui.tabs.widget(1).share_button.click()
self.assertFalse(self.gui.tabs.widget(1).new_tab.isVisible())
self.assertTrue(self.gui.tabs.widget(1).share_mode.isVisible())
+ self.assertEqual(self.gui.status_bar.server_status_label.text(), 'Ready to share')
# New tab, receive files
self.gui.tabs.new_tab_button.click()
self.gui.tabs.widget(2).receive_button.click()
self.assertFalse(self.gui.tabs.widget(2).new_tab.isVisible())
self.assertTrue(self.gui.tabs.widget(2).receive_mode.isVisible())
+ self.assertEqual(self.gui.status_bar.server_status_label.text(), 'Ready to receive')
# New tab, publish website
self.gui.tabs.new_tab_button.click()
self.gui.tabs.widget(3).website_button.click()
self.assertFalse(self.gui.tabs.widget(3).new_tab.isVisible())
self.assertTrue(self.gui.tabs.widget(3).website_mode.isVisible())
+ self.assertEqual(self.gui.status_bar.server_status_label.text(), 'Ready to share')
# Close tabs
self.gui.tabs.tabBar().tabButton(0, QtWidgets.QTabBar.RightSide).click()
diff --git a/tests/test_gui_website.py b/tests/test_gui_website.py
index c88a4910..80c74dea 100644
--- a/tests/test_gui_website.py
+++ b/tests/test_gui_website.py
@@ -64,12 +64,13 @@ class TestWebsite(GuiBaseTest):
"""Tests in website mode after starting a share"""
self.server_working_on_start_button_pressed(tab)
self.server_status_indicator_says_starting(tab)
- self.add_delete_buttons_hidden(tab)
+ self.add_remove_buttons_hidden(tab)
self.server_is_started(tab, startup_time)
self.web_server_is_running(tab)
self.have_a_password(tab)
self.url_description_shown(tab)
self.have_copy_url_button(tab)
+ self.have_show_qr_code_button(tab)
self.server_status_indicator_says_started(tab)
def run_all_website_mode_download_tests(self, tab):