]> git.parisson.com Git - pdf.js.git/commitdiff
Add support for Google Chrome.
authorRob Sayre <sayrer@gmail.com>
Tue, 28 Jun 2011 22:20:31 +0000 (15:20 -0700)
committerRob Sayre <sayrer@usun.(none)>
Tue, 28 Jun 2011 22:21:01 +0000 (15:21 -0700)
test/test.py

index 662f2d8e4ef25b085f4c99288f35b42d3a9c8599..f64ffbe27cf271488abddefaad819228613e45a2 100644 (file)
@@ -156,8 +156,7 @@ class PDFTestHandler(BaseHTTPRequestHandler):
 
         State.done = (0 == State.remaining)
 
-# this just does Firefox for now
-class BrowserCommand():
+class BaseBrowserCommand(object):
     def __init__(self, browserRecord):
         self.name = browserRecord["name"]
         self.path = browserRecord["path"]
@@ -170,14 +169,9 @@ class BrowserCommand():
         if not os.path.exists(self.path):
             throw("Path to browser '%s' does not exist." % self.path)
 
-    def _fixupMacPath(self):
-        self.path = os.path.join(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):
         # If the browser is still running, wait up to ten seconds for it to quit
@@ -194,6 +188,18 @@ class BrowserCommand():
         if self.tempDir is not None and os.path.exists(self.tempDir):
             shutil.rmtree(self.tempDir)
 
+    def start(self, url):
+        raise Exception("Can't start BaseBrowserCommand")
+
+class FirefoxBrowserCommand(BaseBrowserCommand):
+    def _fixupMacPath(self):
+        self.path = os.path.join(self.path, "Contents", "MacOS", "firefox-bin")
+
+    def setup(self):
+        super(FirefoxBrowserCommand, self).setup()
+        shutil.copytree(os.path.join(DOC_ROOT, "test", "resources", "firefox"),
+                        self.profileDir)
+
     def start(self, url):
         cmds = [self.path]
         if platform.system() == "Darwin":
@@ -201,9 +207,29 @@ class BrowserCommand():
         cmds.extend(["-no-remote", "-profile", self.profileDir, url])
         self.process = subprocess.Popen(cmds)
 
+class ChromeBrowserCommand(BaseBrowserCommand):
+    def _fixupMacPath(self):
+        self.path = os.path.join(self.path, "Contents", "MacOS", "Google Chrome")
+
+    def start(self, url):
+        cmds = [self.path]
+        cmds.extend(["--user-data-dir=%s" % self.profileDir,
+                     "--no-first-run", "--disable-sync", url])
+        self.process = subprocess.Popen(cmds)
+
+def makeBrowserCommand(browser):
+    path = browser["path"].lower()
+    name = browser["name"].lower()
+    if name.find("firefox") > -1 or path.find("firefox") > -1:
+        return FirefoxBrowserCommand(browser)
+    elif name.find("chrom") > -1 or path.find("chrom") > -1:
+        return ChromeBrowserCommand(browser)
+    else:
+        raise Exception("Unrecognized browser: %s" % browser)
+
 def makeBrowserCommands(browserManifestFile):
     with open(browserManifestFile) as bmf:
-        browsers = [BrowserCommand(browser) for browser in json.load(bmf)]
+        browsers = [makeBrowserCommand(browser) for browser in json.load(bmf)]
     return browsers
 
 def downloadLinkedPDFs(manifestList):