Browse Source

Add a user.js file Firefox profile. Change HTTP server to run on background thread.

Rob Sayre 14 years ago
parent
commit
f777fcf792
  1. 33
      test/resources/firefox/user.js
  2. 42
      test/test.py

33
test/resources/firefox/user.js

@ -0,0 +1,33 @@ @@ -0,0 +1,33 @@
user_pref("browser.console.showInPanel", true);
user_pref("browser.dom.window.dump.enabled", true);
user_pref("browser.firstrun.show.localepicker", false);
user_pref("browser.firstrun.show.uidiscovery", false);
user_pref("dom.allow_scripts_to_close_windows", true);
user_pref("dom.disable_open_during_load", false);
user_pref("dom.max_script_run_time", 0); // no slow script dialogs
user_pref("dom.max_chrome_script_run_time", 0);
user_pref("dom.popup_maximum", -1);
user_pref("dom.send_after_paint_to_content", true);
user_pref("dom.successive_dialog_time_limit", 0);
user_pref("security.warn_submit_insecure", false);
user_pref("browser.shell.checkDefaultBrowser", false);
user_pref("shell.checkDefaultClient", false);
user_pref("browser.warnOnQuit", false);
user_pref("accessibility.typeaheadfind.autostart", false);
user_pref("javascript.options.showInConsole", true);
user_pref("devtools.errorconsole.enabled", true);
user_pref("layout.debug.enable_data_xbl", true);
user_pref("browser.EULA.override", true);
user_pref("javascript.options.tracejit.content", true);
user_pref("javascript.options.methodjit.content", true);
user_pref("javascript.options.jitprofiling.content", true);
user_pref("javascript.options.methodjit_always", false);
user_pref("gfx.color_management.force_srgb", true);
user_pref("network.manage-offline-status", false);
user_pref("test.mousescroll", true);
user_pref("network.http.prompt-temp-redirect", false);
user_pref("media.cache_size", 100);
user_pref("security.warn_viewing_mixed", false);
user_pref("app.update.enabled", false);
user_pref("browser.panorama.experienced_first_run", true); // Assume experienced
user_pref("dom.w3c_touch_events.enabled", true);

42
test/test.py

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
import json, platform, os, sys, subprocess, urllib, urllib2
import json, platform, os, shutil, sys, subprocess, tempfile, threading, urllib, urllib2
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
import SocketServer
from optparse import OptionParser
from urlparse import urlparse
@ -69,8 +70,11 @@ class Result: @@ -69,8 +70,11 @@ class Result:
self.snapshot = snapshot
self.failure = failure
class TestServer(SocketServer.TCPServer):
allow_reuse_address = True
class PDFTestHandler(BaseHTTPRequestHandler):
# Disable annoying noise by default
def log_request(code=0, size=0):
if VERBOSE:
@ -78,7 +82,6 @@ class PDFTestHandler(BaseHTTPRequestHandler): @@ -78,7 +82,6 @@ class PDFTestHandler(BaseHTTPRequestHandler):
def do_GET(self):
url = urlparse(self.path)
print "GET",url
# Ignore query string
path, _ = url.path, url.query
path = os.path.abspath(os.path.realpath(DOC_ROOT + os.sep + path))
@ -143,6 +146,19 @@ class BrowserCommand(): @@ -143,6 +146,19 @@ class BrowserCommand():
def _fixupMacPath(self):
self.path = self.path + "/Contents/MacOS/firefox-bin"
def setup(self):
self.tempDir = tempfile.mkdtemp()
self.profileDir = os.path.join(self.tempDir, "profile")
shutil.copytree(os.path.join(DOC_ROOT, "test", "resources", "firefox"),
self.profileDir)
def teardown(self):
shutil.rmtree(self.tempDir)
def start(self, url):
cmds = [self.path, "-no-remote", "-profile", self.profileDir, url]
subprocess.call(cmds)
def makeBrowserCommands(browserManifestFile):
with open(browserManifestFile) as bmf:
browsers = [BrowserCommand(browser) for browser in json.load(bmf)]
@ -196,11 +212,13 @@ def setUp(options): @@ -196,11 +212,13 @@ def setUp(options):
State.remaining = len(testBrowsers) * len(manifestList)
for b in testBrowsers:
print 'Launching', b.name
qs = 'browser='+ urllib.quote(b.name) +'&manifestFile='+ urllib.quote(options.manifestFile)
subprocess.Popen(( os.path.abspath(os.path.realpath(b.path)),
'http://localhost:8080/test/test_slave.html?'+ qs))
try:
b.setup()
print 'Launching', b.name
qs = 'browser='+ urllib.quote(b.name) +'&manifestFile='+ urllib.quote(options.manifestFile)
b.start('http://localhost:8080/test/test_slave.html?'+ qs)
finally:
b.teardown()
def check(task, results, browser):
failed = False
@ -350,12 +368,12 @@ def main(): @@ -350,12 +368,12 @@ def main():
if options == None:
sys.exit(1)
setUp(options)
server = HTTPServer(('127.0.0.1', 8080), PDFTestHandler)
while not State.done:
server.handle_request()
httpd = TestServer(('127.0.0.1', 8080), PDFTestHandler)
httpd_thread = threading.Thread(target=httpd.serve_forever)
httpd_thread.setDaemon(True)
httpd_thread.start()
setUp(options)
processResults()
if __name__ == '__main__':

Loading…
Cancel
Save