diff options
author | Micah Lee <micah@micahflee.com> | 2020-06-30 10:56:25 -0700 |
---|---|---|
committer | Micah Lee <micah@micahflee.com> | 2020-06-30 10:56:25 -0700 |
commit | 17b0af98f27c1550c115226450ac244a45832b56 (patch) | |
tree | 04560f5f13eeb19a3eb3f82fc10e0c358b2c86ba /tests | |
parent | 40b43b66ab788c60fe3753f9c44207e360ff8fad (diff) | |
parent | f65e50f399f1716162343d84b6003957adc46185 (diff) | |
download | onionshare-17b0af98f27c1550c115226450ac244a45832b56.tar.gz onionshare-17b0af98f27c1550c115226450ac244a45832b56.zip |
Merge branch 'develop' into 910_flatpak
Diffstat (limited to 'tests')
-rw-r--r-- | tests/gui_base_test.py | 17 | ||||
-rwxr-xr-x | tests/run.sh | 4 | ||||
-rw-r--r-- | tests/test_gui_receive.py | 1 | ||||
-rw-r--r-- | tests/test_gui_share.py | 68 | ||||
-rw-r--r-- | tests/test_gui_tabs.py | 3 | ||||
-rw-r--r-- | tests/test_gui_website.py | 3 |
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): |