Socket
Socket
Sign inDemoInstall

browscap

Package Overview
Dependencies
0
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.1.3 to 0.2.0

browscap.ini

42

browscap.js

@@ -40,3 +40,5 @@ var browsers = []

.replace(/\?/g, '.?')
+ '$')
.replace(/\+/g, '\\+')
+ '$'),
__pattern__: pattern
}

@@ -51,20 +53,30 @@

if (name == 'Browser' && value[0] == '"' && value.slice(-1) == '"') {
if (value[0] == '"' && value.slice(-1) == '"') {
value = value.slice(1, -1)
}
if (name != 'Parent') {
current[name] = value
} else {
// Copy properties from the parent's entry
var i = patternIndex.lastIndexOf(value)
for (var key in browserArray[i]) {
if (key != '__regex__' && key != 'Parent') {
current[key] = browserArray[i][key]
}
current[name] = value
}
})
//copy properties from parent definition, with up to depth=2 parents
for (var depth = 0; depth < 2; depth++) {
for (var i = 0; i < browserArray.length; i++) {
var current = browserArray[i]
if (current.hasOwnProperty('Parent')) {
var j = patternIndex.lastIndexOf(current['Parent'])
for (var key in browserArray[j]) {
if (key != '__regex__' && key != 'Parent' && typeof browserArray[i][key] == 'undefined') {
browserArray[i][key] = browserArray[j][key]
}
}
}
})
}
}
browserArray.sort(function(a, b) {
return b.__pattern__.length - a.__pattern__.length;
});
return browserArray

@@ -77,3 +89,3 @@ }

}
// Test user agent against each browser regex

@@ -80,0 +92,0 @@ for (var i = 0; i < browsers.length; i++) {

{ "name" : "browscap"
, "description" : "PHP's get_browser/browscap.ini for Node"
, "version" : "0.1.3"
, "version" : "0.2.0"
, "author" : "Dan Grossman"

@@ -5,0 +5,0 @@ , "contributors" :

@@ -1,59 +0,32 @@

var browscap = require('browscap');
var browscap = require('./browscap');
//browscap.setIni('php_browscap.ini');
console.log("Running tests...");
var passed = 0;
var failed = 0;
var passed = 0, failed = 0, i = 1;
var browser = browscap.getBrowser("Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; WinTSI 05.11.2009)");
if (browser['Browser'] == 'IE' && browser['Version'] == '8.0') {
console.log(browser['Browser'] + " " + browser['Version']);
passed++;
} else {
console.log("Failed to identify IE 8.0");
console.log(browser['Browser'] + " " + browser['Version']);
failed++;
}
var tests = [
{ ua: 'Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; Media Center PC 4.0; SLCC1; .NET CLR 3.0.04320)', browser: 'IE', version: '8.0' },
{ ua: 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.1.13) Gecko/20100914 Firefox/3.5.13', browser: 'Firefox', version: '3.5' },
{ ua: 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10', browser: 'Firefox', version: '3.6' },
{ ua: 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.3; WOW64; Trident/7.0; Touch; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; Tablet PC 2.0; IPH 1.1.21.4019; ASU2JS)', browser: 'IE', version: '11.0' },
{ ua: 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36', browser: 'Chrome', version: '35.0' }
]
var browser = browscap.getBrowser("Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.1.13) Gecko/20100914 Firefox/3.5.13");
if (browser['Browser'] == 'Firefox' && browser['Version'] == '3.5') {
console.log(browser['Browser'] + " " + browser['Version']);
passed++;
} else {
console.log("Failed to identify Firefox 3.5");
console.log(browser['Browser'] + " " + browser['Version']);
failed++;
}
var browser = browscap.getBrowser("Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10");
if (browser['Browser'] == 'Firefox' && browser['Version'] == '3.6') {
console.log(browser['Browser'] + " " + browser['Version']);
passed++;
} else {
console.log("Failed to identify Firefox 3.6");
console.log(browser['Browser'] + " " + browser['Version']);
failed++;
for (var j in tests) {
var test = tests[j];
var browser = browscap.getBrowser(test.ua);
if (browser['Browser'] == test['browser'] && browser['Version'] == test['version']) {
console.log("PASSED test " + i + ":");
passed++;
} else {
console.log("FAILED test " + i + " (expected " + test['browser'] + " " + test['version'] + "):");
failed++;
}
i++;
console.log(browser);
console.log("\n=====\n");
}
var browser = browscap.getBrowser("Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20060127 Netscape/8.1");
if (browser['Browser'] == 'Netscape' && browser['Version'] == '8.1') {
console.log(browser['Browser'] + " " + browser['Version']);
passed++;
} else {
console.log("Failed to identify Netscape 8.1");
console.log(browser['Browser'] + " " + browser['Version']);
failed++;
}
var browser = browscap.getBrowser("Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.63 Safari/534.3");
if (browser['Browser'] == 'Chrome' && browser['Version'] == '6.0') {
console.log(browser['Browser'] + " " + browser['Version']);
passed++;
} else {
console.log("Failed to identify Chrome 6.0");
console.log(browser['Browser'] + " " + browser['Version']);
failed++;
}
console.log("Passed " + passed + "/" + (passed + failed) + " tests");
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc