| Index: tests/selenium/selenium_utilities.py
|
| ===================================================================
|
| --- tests/selenium/selenium_utilities.py (revision 26154)
|
| +++ tests/selenium/selenium_utilities.py (working copy)
|
| @@ -61,7 +61,26 @@
|
| return True
|
| return False
|
|
|
| +def ScreenshotNameFromTestName(name):
|
| + name = StripTestTypeSuffix(name)
|
|
|
| + if name.startswith("Test"):
|
| + # Make sure these are in order.
|
| + prefixes = ["TestStress", "TestSample", "Test"]
|
| + for prefix in prefixes:
|
| + if name.startswith(prefix):
|
| + name = name[len(prefix):]
|
| + break
|
| +
|
| + # Lowercase the name only for custom test methods.
|
| + name = name.lower()
|
| +
|
| + name = name.replace("_", "-")
|
| + name = name.replace("/", "_")
|
| +
|
| + return name
|
| +
|
| +
|
| def StripTestTypeSuffix(name):
|
| """Removes the suffix from name if it is a valid test type."""
|
| name_lower = name.lower()
|
| @@ -205,7 +224,6 @@
|
| file = open(full_path + ".png", 'wb')
|
| file.write(png)
|
| file.close()
|
| - print "Saved screenshot %s." % full_path
|
| return True
|
|
|
| return False
|
| @@ -214,7 +232,7 @@
|
| class SeleniumTestCase(unittest.TestCase):
|
| """Wrapper for TestCase for selenium."""
|
|
|
| - def __init__(self, name, session, browser, path_to_html, test_type=None,
|
| + def __init__(self, name, browser, path_to_html, test_type=None,
|
| sample_path=None, options=None):
|
| """Constructor for SampleTests.
|
|
|
| @@ -229,13 +247,34 @@
|
| """
|
|
|
| unittest.TestCase.__init__(self, name)
|
| - self.session = session
|
| + self.name = name
|
| + self.session = None
|
| self.browser = browser
|
| self.test_type = test_type
|
| self.sample_path = sample_path
|
| - self.options = options
|
| self.path_to_html = path_to_html
|
| + self.screenshots = []
|
| + self.timeout = 10000
|
| + self.client = "g_client"
|
| + # parse options
|
| + for option in options:
|
| + if option.startswith("screenshot"):
|
| + clock = GetArgument(option)
|
| + if clock is None:
|
| + clock = "27.5"
|
| + self.screenshots.append(clock)
|
| + elif option.startswith("timeout"):
|
| + self.timeout = int(GetArgument(option))
|
| + elif option.startswith("client"):
|
| + self.client = GetArgument(option)
|
| +
|
|
|
| + def SetSession(self, session):
|
| + self.session = session
|
| +
|
| + def GetTestTimeout(self):
|
| + return self.timeout
|
| +
|
| def GetURL(self, url):
|
| """Gets a URL for the test."""
|
| return self.session.browserURL + self.path_to_html + url
|
| @@ -267,33 +306,17 @@
|
| g_client which is the o3d client object for that sample. This is
|
| used to take a screenshot.
|
| """
|
| - screenshots = []
|
| - timeout = 10000
|
| - client = "g_client"
|
| -
|
| + self.assertTrue(not self.timeout is None)
|
| + self.assertTrue(not self.client is None)
|
| self.assertTrue(self.test_type in ["small", "medium", "large"])
|
|
|
| - # parse options
|
| - for option in self.options:
|
| - if option.startswith("screenshot"):
|
| - clock = GetArgument(option)
|
| - if clock is None:
|
| - clock = "27.5"
|
| - screenshots.append(clock)
|
| - elif option.startswith("timeout"):
|
| - timeout = GetArgument(option)
|
| - self.assertTrue(not timeout is None)
|
| - elif option.startswith("client"):
|
| - client = GetArgument(option)
|
| - self.assertTrue(not client is None)
|
| -
|
| url = self.GetURL(base_path + self.sample_path + ".html")
|
|
|
| # load the sample.
|
| self.session.open(url)
|
|
|
| # wait for it to initialize.
|
| - self.session.wait_for_condition(ready_condition, timeout)
|
| + self.session.wait_for_condition(ready_condition, self.timeout)
|
|
|
| self.session.run_script(
|
| "if (window.o3d_prepForSelenium) { window.o3d_prepForSelenium(); }")
|
| @@ -303,14 +326,15 @@
|
|
|
| # take a screenshot.
|
| screenshot_id = 1
|
| - for clock in screenshots:
|
| + for clock in self.screenshots:
|
| # if they are animated we need to stop the animation and set the clock
|
| # to some time so we get a known state.
|
| self.session.run_script("g_timeMult = 0")
|
| self.session.run_script("g_clock = " + clock)
|
|
|
| # take a screenshot.
|
| - screenshot = self.sample_path.replace("/", "_") + str(screenshot_id)
|
| + screenshot = self.sample_path.replace("_", "-").replace("/", "_")
|
| + screenshot += str(screenshot_id)
|
| self.assertTrue(TakeScreenShot(self.session, self.browser,
|
| - client, screenshot))
|
| + self.client, screenshot))
|
| screenshot_id += 1
|
|
|