]> git.parisson.com Git - pdf.js.git/commitdiff
Add a user.js file Firefox profile. Change HTTP server to run on background thread.
authorRob Sayre <sayrer@gmail.com>
Thu, 23 Jun 2011 18:24:36 +0000 (11:24 -0700)
committerRob Sayre <sayrer@gmail.com>
Thu, 23 Jun 2011 18:24:36 +0000 (11:24 -0700)
test/resources/firefox/user.js [new file with mode: 0644]
test/test.py

diff --git a/test/resources/firefox/user.js b/test/resources/firefox/user.js
new file mode 100644 (file)
index 0000000..55d9ced
--- /dev/null
@@ -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);
\ No newline at end of file
index d751a58be90ea55e5720467a46c1720ab2030798..c6bb637a263a3fe91f5b199d76a0a14ba24f4d21 100644 (file)
@@ -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:
         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):
 
     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():
     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):
     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():
     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__':