From 4c4317b80e0daa50fe3558f35e8f64019aca1c2b Mon Sep 17 00:00:00 2001 From: Sheel Choksi Date: Sat, 3 Aug 2013 11:45:13 -0700 Subject: [PATCH] Update BrowserFlags to include Firefox - DRYs up the browser checking code - Adds in Firefox as another flag - Makes it possible to do checks like `if (env.ieVersion)` to target all IE versions --- spec/helpers/BrowserFlags.js | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/spec/helpers/BrowserFlags.js b/spec/helpers/BrowserFlags.js index fdd80dc4..c8300b62 100644 --- a/spec/helpers/BrowserFlags.js +++ b/spec/helpers/BrowserFlags.js @@ -1,19 +1,23 @@ (function(env) { - env.ieVersion = (function() { + function browserVersion(matchFn) { var userAgent = jasmine.getGlobal().navigator.userAgent; - if (!userAgent) { return Number.MAX_VALUE; } + if (!userAgent) { return void 0; } - var match = /MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(userAgent); + var match = matchFn(userAgent); - return match ? parseFloat(match[1]) : Number.MAX_VALUE; - })(); + return match ? parseFloat(match[1]) : void 0; + } - env.safariVersion = (function() { - var userAgent = jasmine.getGlobal().navigator.userAgent; - if (!userAgent) { return Number.MAX_VALUE; } + env.ieVersion = browserVersion(function(userAgent) { + return /MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(userAgent); + }); - var match = /Safari/.exec(userAgent) && /Version\/([0-9]{0,})/.exec(userAgent); + env.safariVersion = browserVersion(function(userAgent) { + return /Safari/.exec(userAgent) && /Version\/([0-9]{0,})/.exec(userAgent); + }); + + env.firefoxVersion = browserVersion(function(userAgent) { + return /Firefox\/([0-9]{0,})/.exec(userAgent); + }); - return match ? parseFloat(match[1]) : Number.MAX_VALUE; - })(); })(jasmine.getEnv());