Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(15)

Unified Diff: tools/testing/run_selenium.py

Issue 8469016: Adding in-browser correctness testing via selenium. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: '' Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/testing/run_selenium.py
===================================================================
--- tools/testing/run_selenium.py (revision 0)
+++ tools/testing/run_selenium.py (revision 0)
@@ -0,0 +1,57 @@
+#!/usr/bin/python
+
+# Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+#
+
+"""Script to actually open browsers and perform the test, and reports back with
+the result"""
+
+import platform
+import selenium
+from selenium.webdriver.support.ui import WebDriverWait
+import sys
+
+
+def runTestInBrowser(browser):
+ browser.get("file://" + sys.argv[1])
+ element = WebDriverWait(browser, 10).until( \
+ lambda driver : ('PASS' in driver.page_source) or \
+ ('FAIL' in driver.page_source))
+ source = browser.page_source
+ browser.close()
+ return source
+
+def Main():
+ browser = selenium.webdriver.Firefox() # Get local session of firefox
+ firefox_source = runTestInBrowser(browser)
+
+ # Note: you need ChromeDriver in your path to run chrome, in addition to
ngeoffray 2011/11/11 09:20:50 nit: chrome -> Chrome
+ #installing Chrome.
+ # TODO(efortuna): Currently disabled for ease of setup for running on other
+ # developer machines. Uncomment when frog is robust enough to be tested on
+ # multiple platforms at once.
+ #browser = selenium.webdriver.Chrome()
+ #chrome_source = runTestInBrowser(browser)
+
+ ie_source = ''
+ if platform.system() == 'Windows':
+ browser = selenium.webdriver.Ie()
+ ie_source = runTestInBrowser(browser)
+
+ #TODO(efortuna): Test if all three return correct responses. If not, throw
+ #error particular to that browser.
+ if ('PASS' in firefox_source):
+ print 'Content-Type: text/plain\nPASS'
+ return 0
+ else:
+ index = firefox_source.find('<body>')
+ index += len('<body>')
+ end_index = firefox_source.find('<script')
+ print firefox_source[index : end_index]
+ return 1
+
+
+if __name__ == "__main__":
+ sys.exit(Main())
Property changes on: tools/testing/run_selenium.py
___________________________________________________________________
Added: svn:executable
+ *

Powered by Google App Engine
This is Rietveld 408576698