summaryrefslogtreecommitdiff
path: root/tests/TorGuiBaseTest.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/TorGuiBaseTest.py')
-rw-r--r--tests/TorGuiBaseTest.py114
1 files changed, 69 insertions, 45 deletions
diff --git a/tests/TorGuiBaseTest.py b/tests/TorGuiBaseTest.py
index 8bd963bd..434a525d 100644
--- a/tests/TorGuiBaseTest.py
+++ b/tests/TorGuiBaseTest.py
@@ -16,20 +16,21 @@ from onionshare_gui.mode.receive_mode import ReceiveMode
from .GuiBaseTest import GuiBaseTest
+
class TorGuiBaseTest(GuiBaseTest):
@staticmethod
def set_up(test_settings):
- '''Create GUI with given settings'''
+ """Create GUI with given settings"""
# Create our test file
- testfile = open('/tmp/test.txt', 'w')
- testfile.write('onionshare')
+ testfile = open("/tmp/test.txt", "w")
+ testfile.write("onionshare")
testfile.close()
# Create a test dir and files
- if not os.path.exists('/tmp/testdir'):
- testdir = os.mkdir('/tmp/testdir')
- testfile = open('/tmp/testdir/test.txt', 'w')
- testfile.write('onionshare')
+ if not os.path.exists("/tmp/testdir"):
+ testdir = os.mkdir("/tmp/testdir")
+ testfile = open("/tmp/testdir/test.txt", "w")
+ testfile.write("onionshare")
testfile.close()
common = Common()
@@ -38,8 +39,8 @@ class TorGuiBaseTest(GuiBaseTest):
strings.load_strings(common)
# Get all of the settings in test_settings
- test_settings['connection_type'] = 'automatic'
- test_settings['data_dir'] = '/tmp/OnionShare'
+ test_settings["connection_type"] = "automatic"
+ test_settings["data_dir"] = "/tmp/OnionShare"
for key, val in common.settings.default_settings.items():
if key not in test_settings:
test_settings[key] = val
@@ -51,13 +52,21 @@ class TorGuiBaseTest(GuiBaseTest):
app = OnionShare(common, testonion, False, 0)
web = Web(common, False, False)
- open('/tmp/settings.json', 'w').write(json.dumps(test_settings))
-
- gui = OnionShareGui(common, testonion, qtapp, app, ['/tmp/test.txt', '/tmp/testdir'], '/tmp/settings.json', False)
+ open("/tmp/settings.json", "w").write(json.dumps(test_settings))
+
+ gui = OnionShareGui(
+ common,
+ testonion,
+ qtapp,
+ app,
+ ["/tmp/test.txt", "/tmp/testdir"],
+ "/tmp/settings.json",
+ False,
+ )
return gui
def history_indicator(self, mode, public_mode):
- '''Test that we can make sure the history is toggled off, do an action, and the indiciator works'''
+ """Test that we can make sure the history is toggled off, do an action, and the indiciator works"""
# Make sure history is toggled off
if mode.history.isVisible():
QtTest.QTest.mouseClick(mode.toggle_history, QtCore.Qt.LeftButton)
@@ -70,15 +79,17 @@ class TorGuiBaseTest(GuiBaseTest):
(socks_address, socks_port) = self.gui.app.onion.get_tor_socks_port()
session = requests.session()
session.proxies = {}
- session.proxies['http'] = 'socks5h://{}:{}'.format(socks_address, socks_port)
+ session.proxies["http"] = "socks5h://{}:{}".format(socks_address, socks_port)
if type(mode) == ReceiveMode:
# Upload a file
- files = {'file[]': open('/tmp/test.txt', 'rb')}
+ files = {"file[]": open("/tmp/test.txt", "rb")}
if not public_mode:
- path = 'http://{}/{}/upload'.format(self.gui.app.onion_host, mode.web.slug)
+ path = "http://{}/{}/upload".format(
+ self.gui.app.onion_host, mode.web.password
+ )
else:
- path = 'http://{}/upload'.format(self.gui.app.onion_host)
+ path = "http://{}/upload".format(self.gui.app.onion_host)
response = session.post(path, files=files)
QtTest.QTest.qWait(4000)
@@ -87,7 +98,9 @@ class TorGuiBaseTest(GuiBaseTest):
if public_mode:
path = "http://{}/download".format(self.gui.app.onion_host)
else:
- path = "http://{}/{}/download".format(self.gui.app.onion_host, mode.web.slug)
+ path = "http://{}/{}/download".format(
+ self.gui.app.onion_host, mode.web.password
+ )
response = session.get(path)
QtTest.QTest.qWait(4000)
@@ -100,61 +113,72 @@ class TorGuiBaseTest(GuiBaseTest):
self.assertFalse(mode.toggle_history.indicator_label.isVisible())
def have_an_onion_service(self):
- '''Test that we have a valid Onion URL'''
- self.assertRegex(self.gui.app.onion_host, r'[a-z2-7].onion')
+ """Test that we have a valid Onion URL"""
+ self.assertRegex(self.gui.app.onion_host, r"[a-z2-7].onion")
def web_page(self, mode, string, public_mode):
- '''Test that the web page contains a string'''
+ """Test that the web page contains a string"""
(socks_address, socks_port) = self.gui.app.onion.get_tor_socks_port()
socks.set_default_proxy(socks.SOCKS5, socks_address, socks_port)
s = socks.socksocket()
s.settimeout(60)
s.connect((self.gui.app.onion_host, 80))
if not public_mode:
- path = '/{}'.format(mode.server_status.web.slug)
+ path = "/{}".format(mode.server_status.web.password)
else:
- path = '/'
- http_request = 'GET {} HTTP/1.0\r\n'.format(path)
- http_request += 'Host: {}\r\n'.format(self.gui.app.onion_host)
- http_request += '\r\n'
- s.sendall(http_request.encode('utf-8'))
- with open('/tmp/webpage', 'wb') as file_to_write:
+ path = "/"
+ http_request = "GET {} HTTP/1.0\r\n".format(path)
+ http_request += "Host: {}\r\n".format(self.gui.app.onion_host)
+ http_request += "\r\n"
+ s.sendall(http_request.encode("utf-8"))
+ with open("/tmp/webpage", "wb") as file_to_write:
while True:
- data = s.recv(1024)
- if not data:
- break
- file_to_write.write(data)
+ data = s.recv(1024)
+ if not data:
+ break
+ file_to_write.write(data)
file_to_write.close()
- f = open('/tmp/webpage')
+ f = open("/tmp/webpage")
self.assertTrue(string in f.read())
f.close()
def have_copy_url_button(self, mode, public_mode):
- '''Test that the Copy URL button is shown and that the clipboard is correct'''
+ """Test that the Copy URL button is shown and that the clipboard is correct"""
self.assertTrue(mode.server_status.copy_url_button.isVisible())
- QtTest.QTest.mouseClick(mode.server_status.copy_url_button, QtCore.Qt.LeftButton)
+ QtTest.QTest.mouseClick(
+ mode.server_status.copy_url_button, QtCore.Qt.LeftButton
+ )
clipboard = self.gui.qtapp.clipboard()
if public_mode:
- self.assertEqual(clipboard.text(), 'http://{}'.format(self.gui.app.onion_host))
+ self.assertEqual(
+ clipboard.text(), "http://{}".format(self.gui.app.onion_host)
+ )
else:
- self.assertEqual(clipboard.text(), 'http://{}/{}'.format(self.gui.app.onion_host, mode.server_status.web.slug))
-
+ self.assertEqual(
+ clipboard.text(),
+ "http://{}/{}".format(
+ self.gui.app.onion_host, mode.server_status.web.password
+ ),
+ )
# Stealth tests
def copy_have_hidserv_auth_button(self, mode):
- '''Test that the Copy HidservAuth button is shown'''
+ """Test that the Copy HidservAuth button is shown"""
self.assertTrue(mode.server_status.copy_hidservauth_button.isVisible())
def hidserv_auth_string(self):
- '''Test the validity of the HidservAuth string'''
- self.assertRegex(self.gui.app.auth_string, r'HidServAuth {} [a-zA-Z1-9]'.format(self.gui.app.onion_host))
-
-
+ """Test the validity of the HidservAuth string"""
+ self.assertRegex(
+ self.gui.app.auth_string,
+ r"HidServAuth {} [a-zA-Z1-9]".format(self.gui.app.onion_host),
+ )
# Miscellaneous tests
def tor_killed_statusbar_message_shown(self, mode):
- '''Test that the status bar message shows Tor was disconnected'''
+ """Test that the status bar message shows Tor was disconnected"""
self.gui.app.onion.c = None
QtTest.QTest.qWait(1000)
- self.assertTrue(mode.status_bar.currentMessage(), strings._('gui_tor_connection_lost'))
+ self.assertTrue(
+ mode.status_bar.currentMessage(), strings._("gui_tor_connection_lost")
+ )