blob: 53673d3f570575c2d6451c838174690ab42c5271 [file] [log] [blame]
#!/usr/bin/env python
class BrowserDriverFactory(object):
browser_drivers = {}
platforms = set()
browsers = set()
@classmethod
def available_platforms(cls):
return list(cls.platforms)
@classmethod
def available_browsers(cls):
return list(cls.browsers)
@classmethod
def add_browser_driver(cls, platform, browser_name, browser_driver_class):
cls.platforms.add(platform)
cls.browsers.add(browser_name)
if platform not in cls.browser_drivers:
cls.browser_drivers[platform] = {}
cls.browser_drivers[platform][browser_name] = browser_driver_class
@classmethod
def create(cls, platform, browser_name):
if browser_name not in cls.browser_drivers[platform]:
raise ValueError("Browser \"%s\" is not available on platform \"%s\"" % (browser_name, platform))
return cls.browser_drivers[platform][browser_name]()