UNPKG

siesta-lite

Version:

Stress-free JavaScript unit testing and functional testing tool, works in NodeJS and browsers

67 lines (59 loc) 2.2 kB
/* Siesta 5.6.1 Copyright(c) 2009-2022 Bryntum AB https://bryntum.com/contact https://bryntum.com/products/siesta/license */ Role('Siesta.Util.Role.CanParseBrowser', { methods : { parseBrowser : function (uaString) { var browser = 'unknown' var version = '' var match if (match = /Edg\/(\d+(\.\d+)*)/i.exec(uaString)) { browser = "Edge Chromium" version = match[ 1 ] } else if (match = /Firefox\/((?:\d+\.?)+)/.exec(uaString)) { browser = "Firefox" version = match[ 1 ] } else if (match = /chrome.+? edge\/(\d+(\.\d+)?)/i.exec(uaString)) { browser = "Edge" version = match[ 1 ] } else if (match = /Chrome\/((?:\d+\.?)+)/.exec(uaString)) { browser = "Chrome" version = match[ 1 ] } else if (match = /MSIE\s*((?:\d+\.?)+)/.exec(uaString)) { browser = "IE" version = match[ 1 ] } else if (uaString.match(/trident/i) && (match = /rv.(\d\d\.?\d?)/.exec(uaString))) { browser = "IE" version = match[ 1 ] } else if (match = /Apple.*Version\/((?:\d+\.?)+)\s*(?=Safari\/((?:\d+\.?)+))/.exec(uaString)) { browser = "Safari" version = match[ 1 ] + ' (' + match[ 2 ] + ')' } else if (match = /PhantomJS\/(\d+\.\d+\.\d+)/.exec(uaString)) { browser = "PhantomJS" version = match[ 1 ] } else if (match = /SlimerJS\/(\d+\.\d+\.\d+)/.exec(uaString)) { browser = "SlimerJS" version = match[ 1 ] } else if (match = /NodeJS\/(.+)/.exec(uaString)) { browser = "NodeJS" version = match[ 1 ] } return { name : browser, version : version } } } });