tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

binary.py (1227B)


      1 import os
      2 
      3 from tests.support.asserts import assert_error, assert_success
      4 
      5 
      6 def test_bad_binary(new_session, configuration):
      7    # skipif annotations are forbidden in wpt
      8    if os.path.exists("/bin/echo"):
      9        capabilities = configuration["capabilities"].copy()
     10        capabilities["moz:firefoxOptions"]["binary"] = "/bin/echo"
     11 
     12        response, _ = new_session({"capabilities": {"alwaysMatch": capabilities}})
     13        assert_error(response, "invalid argument")
     14 
     15 
     16 def test_shell_script_binary(new_session, configuration):
     17    # skipif annotations are forbidden in wpt
     18    if os.path.exists("/bin/bash"):
     19        capabilities = configuration["capabilities"].copy()
     20        binary = configuration["browser"]["binary"]
     21 
     22        path = os.path.abspath("firefox.sh")
     23        assert not os.path.exists(path)
     24        try:
     25            script = f"""#!/bin/bash\n\n"{binary}" $@\n"""
     26            with open("firefox.sh", "w") as f:
     27                f.write(script)
     28            os.chmod(path, 0o744)
     29            capabilities["moz:firefoxOptions"]["binary"] = path
     30            response, _ = new_session({"capabilities": {"alwaysMatch": capabilities}})
     31            assert_success(response)
     32        finally:
     33            os.unlink(path)