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

Unified Diff: tools/chrome_proxy/webdriver/decorators.py

Issue 2826733002: Add Chrome version check decorators (Closed)
Patch Set: Created 3 years, 8 months 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/chrome_proxy/webdriver/decorators.py
diff --git a/tools/chrome_proxy/webdriver/decorators.py b/tools/chrome_proxy/webdriver/decorators.py
index 5da3650523d7dc0cbfe7a41c8f4e27ee38b0440b..c04055febc8a641e8aae6a77c1ecfee5480d0d44 100644
--- a/tools/chrome_proxy/webdriver/decorators.py
+++ b/tools/chrome_proxy/webdriver/decorators.py
@@ -2,7 +2,10 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import re
+
from common import ParseFlags
+from common import TestDriver
# Platform-specific decorators.
@@ -72,3 +75,45 @@ def NotMac(func):
else:
args[0].skipTest('This test does not run on Mac OS.')
return wrapper
+
+chrome_version = None
+
+def GetChromeVersion():
+ with TestDriver() as t:
+ t.LoadURL('http://check.googlezip.net/connect')
bengr 2017/05/05 17:53:28 Maybe use a standard gen_204 page, or just scrape
+ ua = t.ExecuteJavascriptStatement('navigator.userAgent')
+ match = re.search('Chrome/[0-9\.]+', ua)
+ if not match:
+ raise Exception('Could not find Chrome version in User-Agent: %s' % ua)
+ chrome_version = ua[match.start():match.end()]
+ version = chrome_version[chrome_version.find('/') + 1:]
+ version_split = version.split('.')
+ milestone = int(version_split[0])
+ print 'Running on Chrome M%d (%s)' % (milestone, version)
+ return milestone
+
+def ChromeVersionBeforeM(milestone):
+ def puesdo_wrapper(func):
+ def wrapper(*args, **kwargs):
+ global chrome_version
+ if chrome_version == None:
+ chrome_version = GetChromeVersion()
+ if chrome_version < milestone:
+ func(*args, **kwargs)
+ else:
+ args[0].skipTest('This test does not run above M%d.' % milestone)
+ return wrapper
+ return puesdo_wrapper
+
+def ChromeVersionAfterM(milestone):
+ def puesdo_wrapper(func):
+ def wrapper(*args, **kwargs):
+ global chrome_version
+ if chrome_version == None:
+ chrome_version = GetChromeVersion()
+ if chrome_version >= milestone:
+ func(*args, **kwargs)
+ else:
+ args[0].skipTest('This test does not run below M%d.' % milestone)
+ return wrapper
+ return puesdo_wrapper

Powered by Google App Engine
This is Rietveld 408576698