Merge branch 'develop' of github.com:faisalman/ua-parser-js into develop

This commit is contained in:
Faisal Salman 2017-10-12 09:19:03 +07:00
commit 5ba5e7abc9
5 changed files with 645 additions and 712 deletions

View File

@ -212,6 +212,12 @@ requirejs(['ua-parser-js'], function(UAParser) {
});
```
## Using CDN
```html
<script src="https://cdn.jsdelivr.net/npm/ua-parser-js@0/dist/ua-parser.min.js"></script>
```
## Using bower
```sh

View File

@ -326,6 +326,9 @@
/version\/([\w\.]+).+?(mobile\s?safari|safari)/i // Safari & Safari Mobile
], [VERSION, NAME], [
/webkit.+?(gsa)\/([\w\.]+).+?(mobile\s?safari|safari)(\/[\w\.]+)/i // Google Search Appliance on iOS
], [[NAME, 'GSA'], VERSION], [
/webkit.+?(mobile\s?safari|safari)(\/[\w\.]+)/i // Safari < 3.0
], [NAME, [VERSION, mapper.str, maps.browser.oldsafari.version]], [
@ -649,9 +652,11 @@
/android.+(\w+)\s+build\/hm\1/i, // Xiaomi Hongmi 'numeric' models
/android.+(hm[\s\-_]*note?[\s_]*(?:\d\w)?)\s+build/i, // Xiaomi Hongmi
/android.+(mi[\s\-_]*(?:one|one[\s_]plus|note lte)?[\s_]*(?:\d\w)?)\s+build/i // Xiaomi Mi
/android.+(mi[\s\-_]*(?:one|one[\s_]plus|note lte)?[\s_]*(?:\d\w)?)\s+build/i, // Xiaomi Mi
/android.+(redmi[\s\-_]*(?:note)?(?:[\s_]*[\w\s]+)?)\s+build/i // Redmi Phones
], [[MODEL, /_/g, ' '], [VENDOR, 'Xiaomi'], [TYPE, MOBILE]], [
/android.+(mi[\s\-_]*(?:pad)?(?:[\s_]*[\w\s]+)?)\s+build/i // Mi Pad tablets
],[[MODEL, /_/g, ' '], [VENDOR, 'Xiaomi'], [TYPE, TABLET]], [
/android.+;\s(m[1-5]\snote)\sbuild/i // Meizu Tablet
], [MODEL, [VENDOR, 'Meizu'], [TYPE, TABLET]], [
@ -874,7 +879,7 @@
/////////////////
// Constructor
////////////////
/*
var Browser = function (name, version) {
this[NAME] = name;
this[VERSION] = version;
@ -889,7 +894,7 @@
};
var Engine = Browser;
var OS = Browser;
*/
var UAParser = function (uastring, extensions) {
if (typeof uastring === 'object') {
@ -903,30 +908,35 @@
var ua = uastring || ((window && window.navigator && window.navigator.userAgent) ? window.navigator.userAgent : EMPTY);
var rgxmap = extensions ? util.extend(regexes, extensions) : regexes;
var browser = new Browser();
var cpu = new CPU();
var device = new Device();
var engine = new Engine();
var os = new OS();
//var browser = new Browser();
//var cpu = new CPU();
//var device = new Device();
//var engine = new Engine();
//var os = new OS();
this.getBrowser = function () {
var browser = { name: undefined, version: undefined };
mapper.rgx.call(browser, ua, rgxmap.browser);
browser.major = util.major(browser.version); // deprecated
return browser;
};
this.getCPU = function () {
var cpu = { architecture: undefined };
mapper.rgx.call(cpu, ua, rgxmap.cpu);
return cpu;
};
this.getDevice = function () {
var device = { vendor: undefined, model: undefined, type: undefined };
mapper.rgx.call(device, ua, rgxmap.device);
return device;
};
this.getEngine = function () {
var engine = { name: undefined, version: undefined };
mapper.rgx.call(engine, ua, rgxmap.engine);
return engine;
};
this.getOS = function () {
var os = { name: undefined, version: undefined };
mapper.rgx.call(os, ua, rgxmap.os);
return os;
};
@ -945,11 +955,11 @@
};
this.setUA = function (uastring) {
ua = uastring;
browser = new Browser();
cpu = new CPU();
device = new Device();
engine = new Engine();
os = new OS();
//browser = new Browser();
//cpu = new CPU();
//device = new Device();
//engine = new Engine();
//os = new OS();
return this;
};
return this;

View File

@ -968,5 +968,15 @@
"version" : "6.5.8.2910",
"major" : "6"
}
},
{
"desc" : "GSA on iOS",
"ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_2 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) GSA/30.1.161623614 Mobile/14F89 Safari/602.1",
"expect" :
{
"name" : "GSA",
"version" : "30.1.161623614",
"major" : "30"
}
}
]

View File

@ -1,9 +1,7 @@
[
{
[{
"desc": "Asus Nexus 7",
"ua": "Mozilla/5.0 (Linux; Android 4.4.2; Nexus 7 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Asus",
"model": "Nexus 7",
"type": "tablet"
@ -12,8 +10,7 @@
{
"desc": "Asus Padfone",
"ua": "Mozilla/5.0 (Linux; Android 4.1.1; PadFone 2 Build/JRO03L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.117 Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Asus",
"model": "PadFone",
"type": "tablet"
@ -22,8 +19,7 @@
{
"desc": "Desktop (IE11 with Tablet string)",
"ua": "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; Tablet PC 2.0; GWX:MANAGED; rv:11.0) like Gecko",
"expect" :
{
"expect": {
"vendor": "undefined",
"model": "undefined",
"type": "undefined"
@ -32,8 +28,7 @@
{
"desc": "HTC Evo Shift 4G",
"ua": "Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; Sprint APA7373KT Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0",
"expect" :
{
"expect": {
"vendor": "HTC",
"model": "Evo Shift 4G",
"type": "mobile"
@ -42,8 +37,7 @@
{
"desc": "HTC Nexus 9",
"ua": "Mozilla/5.0 (Linux; Android 5.0; Nexus 9 Build/LRX21R) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Mobile Crosswalk/7.36.154.13 Safari/537.36",
"expect" :
{
"expect": {
"vendor": "HTC",
"model": "Nexus 9",
"type": "tablet"
@ -52,8 +46,7 @@
{
"desc": "Huawei Honor",
"ua": "Mozilla/5.0 (Linux; U; Android 2.3; xx-xx; U8860 Build/HuaweiU8860) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
"expect" :
{
"expect": {
"vendor": "Huawei",
"model": "U8860",
"type": "mobile"
@ -62,8 +55,7 @@
{
"desc": "Huawei Nexus 6P",
"ua": "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 6P Build/MTC19V) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.81 Mobile Safari/537",
"expect" :
{
"expect": {
"vendor": "Huawei",
"model": "Nexus 6P",
"type": "mobile"
@ -72,8 +64,7 @@
{
"desc": "Huawei P10",
"ua": "Mozilla/5.0 (Linux; Android 7.0; VTR-L09 Build/HUAWEIVTR-L09; xx-xx) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/56.0.2924.87 Mobile Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Huawei",
"model": "VTR-L09",
"type": "mobile"
@ -82,8 +73,7 @@
{
"desc": "Huawei Y3II",
"ua": "Mozilla/5.0 (Linux; U; Android 5.1; xx-xx; HUAWEI LUA-L03 Build/HUAWEILUA-L03) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/39.0.0.0 Mobile Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Huawei",
"model": "LUA-L03",
"type": "mobile"
@ -92,8 +82,7 @@
{
"desc": "iPod",
"ua": "Mozilla/5.0 (iPod touch; CPU iPhone OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B554a Safari/9537.53",
"expect" :
{
"expect": {
"vendor": "Apple",
"model": "iPod touch",
"type": "mobile"
@ -102,8 +91,7 @@
{
"desc": "LG Nexus 4",
"ua": "Mozilla/5.0 (Linux; Android 4.2.1; Nexus 4 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19",
"expect" :
{
"expect": {
"vendor": "LG",
"model": "Nexus 4",
"type": "mobile"
@ -112,8 +100,7 @@
{
"desc": "LG Nexus 5",
"ua": "Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 5 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19",
"expect" :
{
"expect": {
"vendor": "LG",
"model": "Nexus 5",
"type": "mobile"
@ -122,8 +109,7 @@
{
"desc": "Meizu M5 Note",
"ua": "Mozilla/5.0 (Linux; Android 6.0; M5 Note Build/MRA58K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.49 Mobile MQQBrowser/6.2 TBS/043024 Safari/537.36 MicroMessenger/6.5.7.1040 NetType/WIFI Language/zh_CN",
"expect" :
{
"expect": {
"vendor": "Meizu",
"model": "M5 Note",
"type": "tablet"
@ -132,8 +118,7 @@
{
"desc": "Microsoft Lumia 950",
"ua": "Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 950) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Mobile Safari/537.36 Edge/13.10586",
"expect" :
{
"expect": {
"vendor": "Microsoft",
"model": "Lumia 950",
"type": "mobile"
@ -142,8 +127,7 @@
{
"desc": "Motorola Moto X",
"ua": "Mozilla/5.0 (Linux; Android 4.4.4; XT1097 Build/KXE21.187-38) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.109 Mobile Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Motorola",
"model": "XT1097",
"type": "mobile"
@ -152,8 +136,7 @@
{
"desc": "Motorola Nexus 6",
"ua": "Mozilla/5.0 (Linux; Android 5.1.1; Nexus 6 Build/LYZ28E) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.20 Mobile Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Motorola",
"model": "Nexus 6",
"type": "mobile"
@ -162,8 +145,7 @@
{
"desc": "Motorola Droid RAZR 4G",
"ua": "Mozilla/5.0 (Linux; U; Android 2.3; xx-xx; DROID RAZR 4G Build/6.5.1-73_DHD-11_M1-29) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
"expect" :
{
"expect": {
"vendor": "Motorola",
"model": "DROID RAZR 4G",
"type": "mobile"
@ -172,8 +154,7 @@
{
"desc": "iPhone",
"ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53",
"expect" :
{
"expect": {
"vendor": "Apple",
"model": "iPhone",
"type": "mobile"
@ -182,8 +163,7 @@
{
"desc": "Motorola Droid RAZR 4G",
"ua": "Mozilla/5.0 (iPod touch; CPU iPhone OS 7_0_2 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A501 Safari/9537.53",
"expect" :
{
"expect": {
"vendor": "Apple",
"model": "iPod touch",
"type": "mobile"
@ -192,8 +172,7 @@
{
"desc": "Moto X",
"ua": "Mozilla/5.0 (Linux; U; Android 4.2; xx-xx; XT1058 Build/13.9.0Q2.X-70-GHOST-ATT_LE-2) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
"expect" :
{
"expect": {
"vendor": "Motorola",
"model": "XT1058",
"type": "mobile"
@ -202,8 +181,7 @@
{
"desc": "Nokia3xx",
"ua": "Nokia303/14.87 CLDC-1.1",
"expect" :
{
"expect": {
"vendor": "Nokia",
"model": "303",
"type": "mobile"
@ -212,8 +190,7 @@
{
"desc": "OnePlus One",
"ua": "Mozilla/5.0 (Linux; Android 4.4.4; A0001 Build/KTU84Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.59 Mobile Safari/537.36",
"expect" :
{
"expect": {
"vendor": "OnePlus",
"model": "1",
"type": "mobile"
@ -222,8 +199,7 @@
{
"desc": "OPPO R7s",
"ua": "Mozilla/5.0 (Linux; U; Android 4.4.4; zh-cn; OPPO R7s Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko)Version/4.0 Chrome/37.0.0.0 MQQBrowser/7.1 Mobile Safari/537.36",
"expect" :
{
"expect": {
"vendor": "OPPO",
"model": "R7s",
"type": "mobile"
@ -232,8 +208,7 @@
{
"desc": "Philips SmartTV",
"ua": "Opera/9.80 HbbTV/1.1.1 (; Philips; ; ; ; ) NETTV/4.0.2; en) Version/11.60",
"expect" :
{
"expect": {
"vendor": "Philips",
"model": "",
"type": "smarttv"
@ -242,8 +217,7 @@
{
"desc": "Kindle Fire HD",
"ua": "Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; KFTT Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.4 Mobile Safari/535.19 Silk-Accelerated=true",
"expect" :
{
"expect": {
"vendor": "Amazon",
"model": "KFTT",
"type": "tablet"
@ -252,8 +226,7 @@
{
"desc": "Samsung Galaxy Note 8",
"ua": "Mozilla/5.0 (Linux; Android 4.2.2; GT-N5100 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Samsung",
"model": "GT-N5100",
"type": "tablet"
@ -262,8 +235,7 @@
{
"desc": "Samsung SM-C5000",
"ua": "Mozilla/5.0 (Linux; Android 6.0.1; SM-C5000 Build/MMB29M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/51.0.2704.81 Mobile Safari/537.36 wkbrowser 4.1.35 3065",
"expect" :
{
"expect": {
"vendor": "Samsung",
"model": "SM-C5000",
"type": "mobile"
@ -272,8 +244,7 @@
{
"desc": "Samsung SM-T231",
"ua": "Mozilla/5.0 (Linux; Android 4.4.2; SM-T231 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Samsung",
"model": "SM-T231",
"type": "tablet"
@ -282,8 +253,7 @@
{
"desc": "Samsung SM-T700",
"ua": "Mozilla/5.0 (Linux; Android 4.4.2; SM-T700 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Samsung",
"model": "SM-T700",
"type": "tablet"
@ -292,8 +262,7 @@
{
"desc": "Samsung SM-T520",
"ua": "Mozilla/5.0 (Linux; Android 4.4.2; SM-T520 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Samsung",
"model": "SM-T520",
"type": "tablet"
@ -302,8 +271,7 @@
{
"desc": "Samsung SmartTV2011",
"ua": "HbbTV/1.1.1 (;;;;;) Maple;2011",
"expect" :
{
"expect": {
"vendor": "Samsung",
"model": "SmartTV2011",
"type": "smarttv"
@ -312,8 +280,7 @@
{
"desc": "Samsung SmartTV2012",
"ua": "HbbTV/1.1.1 (;Samsung;SmartTV2012;;;) WebKit",
"expect" :
{
"expect": {
"vendor": "Samsung",
"model": "SmartTV2012",
"type": "smarttv"
@ -322,8 +289,7 @@
{
"desc": "Samsung SmartTV2014",
"ua": "HbbTV/1.1.1 (;Samsung;SmartTV2014;T-NT14UDEUC-1060.4;;) WebKit",
"expect" :
{
"expect": {
"vendor": "Samsung",
"model": "SmartTV2014",
"type": "smarttv"
@ -332,8 +298,7 @@
{
"desc": "Samsung SmartTV",
"ua": "Mozilla/5.0 (SMART-TV; Linux; Tizen 2.3) AppleWebkit/538.1 (KHTML, like Gecko) SamsungBrowser/1.0 TV Safari/538.1",
"expect" :
{
"expect": {
"vendor": "Samsung",
"model": "undefined",
"type": "smarttv"
@ -342,8 +307,7 @@
{
"desc": "Sony C5303 (Xperia SP)",
"ua": "Mozilla/5.0 (Linux; Android 4.3; C5303 Build/12.1.A.1.205) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.93 Mobile Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Sony",
"model": "C5303",
"type": "mobile"
@ -352,8 +316,7 @@
{
"desc": "Sony SO-02F (Xperia Z1 F)",
"ua": "Mozilla/5.0 (Linux; Android 4.2.2; SO-02F Build/14.1.H.2.119) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Sony",
"model": "SO-02F",
"type": "mobile"
@ -362,8 +325,7 @@
{
"desc": "Sony D6653 (Xperia Z3)",
"ua": "Mozilla/5.0 (Linux; Android 4.4; D6653 Build/23.0.A.0.376) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Mobile Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Sony",
"model": "D6653",
"type": "mobile"
@ -372,8 +334,7 @@
{
"desc": "Sony Xperia SOL25 (ZL2)",
"ua": "Mozilla/5.0 (Linux; U; Android 4.4; SOL25 Build/17.1.1.C.1.64) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
"expect" :
{
"expect": {
"vendor": "Sony",
"model": "SOL25",
"type": "mobile"
@ -382,8 +343,7 @@
{
"desc": "Sony Xperia SP",
"ua": "Mozilla/5.0 (Linux; Android 4.3; C5302 Build/12.1.A.1.201) AppleWebkit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Sony",
"model": "C5302",
"type": "mobile"
@ -392,8 +352,7 @@
{
"desc": "Sony SGP521 (Xperia Z2 Tablet)",
"ua": "Mozilla/5.0 (Linux; Android 4.4; SGP521 Build/17.1.A.0.432) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Sony",
"model": "Xperia Tablet",
"type": "tablet"
@ -402,8 +361,7 @@
{
"desc": "Sony Tablet S",
"ua": "Mozilla/5.0 (Linux; U; Android 3.1; Sony Tablet S Build/THMAS10000) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13",
"expect" :
{
"expect": {
"vendor": "Sony",
"model": "Xperia Tablet",
"type": "tablet"
@ -412,8 +370,7 @@
{
"desc": "Sony Tablet Z LTE",
"ua": "Mozilla/5.0 (Linux; U; Android 4.1; SonySGP321 Build/10.2.C.0.143) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30",
"expect" :
{
"expect": {
"vendor": "Sony",
"model": "Xperia Tablet",
"type": "tablet"
@ -422,8 +379,7 @@
{
"desc": "Xiaomi 2013023",
"ua": "Mozilla/5.0 (Linux; U; Android 4.2.2; en-US; 2013023 Build/HM2013023) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/10.0.1.512 U3/0.8.0 Mobile Safari/533.1",
"expect" :
{
"expect": {
"vendor": "Xiaomi",
"model": "2013023",
"type": "mobile"
@ -432,8 +388,7 @@
{
"desc": "Xiaomi Hongmi Note 1W",
"ua": "Mozilla/5.0 (Linux; U; Android 4.2.2; zh-CN; HM NOTE 1W Build/JDQ39) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.7.9.439 U3/0.8.0 Mobile Safari/533.1",
"expect" :
{
"expect": {
"vendor": "Xiaomi",
"model": "HM NOTE 1W",
"type": "mobile"
@ -442,8 +397,7 @@
{
"desc": "Xiaomi Mi 3C",
"ua": "Mozilla/5.0 (Linux; U; Android 4.3; zh-CN; MI 3C Build/JLS36C) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.7.9.439 U3/0.8.0 Mobile Safari/533.1",
"expect" :
{
"expect": {
"vendor": "Xiaomi",
"model": "MI 3C",
"type": "mobile"
@ -452,8 +406,7 @@
{
"desc": "Xiaomi Mi Note",
"ua": "Mozilla/5.0 (Linux; Android 4.4.4; MI NOTE LTE Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.76 Mobile Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Xiaomi",
"model": "MI NOTE LTE",
"type": "mobile"
@ -462,8 +415,7 @@
{
"desc": "Xiaomi Mi One Plus",
"ua": "Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; MI-ONE Plus Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
"expect" :
{
"expect": {
"vendor": "Xiaomi",
"model": "MI-ONE Plus",
"type": "mobile"
@ -472,8 +424,7 @@
{
"desc": "PlayStation 4",
"ua": "Mozilla/5.0 (PlayStation 4 3.00) AppleWebKit/537.73 (KHTML, like Gecko)",
"expect" :
{
"expect": {
"vendor": "Sony",
"model": "PlayStation 4",
"type": "console"
@ -482,8 +433,7 @@
{
"desc": "Galaxy Nexus",
"ua": "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19",
"expect" :
{
"expect": {
"vendor": "Samsung",
"model": "Galaxy Nexus",
"type": "mobile"
@ -492,8 +442,7 @@
{
"desc": "Samsung Galaxy S5",
"ua": "Mozilla/5.0 (Linux; Android 5.0; SM-G900F Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.78 Mobile Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Samsung",
"model": "SM-G900F",
"type": "mobile"
@ -502,8 +451,7 @@
{
"desc": "Samsung Galaxy S6",
"ua": "Mozilla/5.0 (Linux; Android 4.4.2; SM-G920I Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Samsung",
"model": "SM-G920I",
"type": "mobile"
@ -512,8 +460,7 @@
{
"desc": "Samsung Galaxy S6 Edge",
"ua": "Mozilla/5.0 (Linux; Android 4.4.2; SM-G925I Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Samsung",
"model": "SM-G925I",
"type": "mobile"
@ -522,406 +469,351 @@
{
"desc": "Samsung Galaxy Note 5 Chrome",
"ua": "Mozilla/5.0 (Linux; Android 5.1.1; SM-N920C Build/LMY47X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.91 Mobile Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Samsung",
"model": "SM-N920C",
"type": "mobile"
}
}
,
},
{
"desc": "Samsung Galaxy Note 5 Samsung Browser",
"ua": "Mozilla/5.0 (Linux; Android 5.1.1; SAMSUNG SM-N920C Build/LMY47X) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Samsung",
"model": "SM-N920C",
"type": "mobile"
}
}
,
},
{
"desc": "Google Chromecast",
"ua": "Mozilla/5.0 (X11; Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.84 Safari/537.36 CrKey/1.22.79313",
"expect" :
{
"expect": {
"vendor": "Google",
"model": "Chromecast"
}
}
,
},
{
"desc": "Google Pixel C",
"ua": "Mozilla/5.0 (Linux; Android 7.0; Pixel C Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/52.0.2743.98 Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Google",
"model": "Pixel C",
"type": "tablet"
}
}
,
},
{
"desc": "Google Pixel",
"ua": "Mozilla/5.0 (Linux; Android 7.1; Pixel Build/NDE63V) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Google",
"model": "Pixel",
"type": "mobile"
}
}
,
},
{
"desc": "Google Pixel",
"ua": "Mozilla/5.0 (Linux; Android 7.1; Pixel XL Build/NDE63X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.85 Mobile Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Google",
"model": "Pixel XL",
"type": "mobile"
}
}
,
},
{
"desc": "Generic Android Device",
"ua": "Mozilla/5.0 (Linux; U; Android 6.0.1; i980 Build/MRA58K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Generic",
"model": "Android 6.0.1"
}
}
,
},
{
"desc": "LG VK Series Tablet",
"ua": "Mozilla/5.0 (Linux; Android 5.0.2; VK700 Build/LRX22G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.84 Safari/537.36",
"expect" :
{
"expect": {
"vendor": "LG",
"model": "VK700",
"type": "tablet"
}
}
,
},
{
"desc": "LG LK Series Tablet",
"ua": "Mozilla/5.0 (Linux; Android 5.0.1; LGLK430 Build/LRX21Y) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/38.0.2125.102 Safari/537.36",
"expect" :
{
"expect": {
"vendor": "LG",
"model": "LK430",
"type": "tablet"
}
}
,
},
{
"desc": "RCA Voyager III Tablet",
"ua": "Mozilla/5.0 (Linux; Android 6.0.1; RCT6973W43 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
"expect" :
{
"expect": {
"vendor": "RCA",
"model": "RCT6973W43",
"type": "tablet"
}
}
,
},
{
"desc": "RCA Voyager II Tablet",
"ua": "Mozilla/5.0 (Linux; Android 5.0; RCT6773W22B Build/LRX21M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
"expect" :
{
"expect": {
"vendor": "RCA",
"model": "RCT6773W22B",
"type": "tablet"
}
}
,
},
{
"desc": "Verizon Quanta Tablet",
"ua": "Mozilla/5.0 (Linux; Android 4.4.2; QMV7B Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Verizon",
"model": "QMV7B",
"type": "tablet"
}
}
,
},
{
"desc": "Verizon Ellipsis 8 Tablet",
"ua": "Mozilla/5.0 (Linux; Android 5.1.1; QTAQZ3 Build/LMY47V) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Verizon",
"model": "QTAQZ3",
"type": "tablet"
}
}
,
},
{
"desc": "Verizon Ellipsis 8HD Tablet",
"ua": "Mozilla/5.0 (Linux; Android 6.0.1; QTASUN1 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.81 Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Verizon",
"model": "QTASUN1",
"type": "tablet"
}
}
,
},
{
"desc": "Dell Venue 8 Tablet",
"ua": "Mozilla/5.0 (Linux; Android 4.4.2; Venue 8 3830 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Dell",
"model": "Venue 8 3830",
"type": "tablet"
}
}
,
},
{
"desc": "Dell Venue 7 Tablet",
"ua": "Mozilla/5.0 (Linux; Android 4.4.2; Venue 7 3730 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Dell",
"model": "Venue 7 3730",
"type": "tablet"
}
}
,
},
{
"desc": "Barnes & Noble Nook HD+ Tablet",
"ua": "Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; Barnes & Noble Nook HD+ Build/JZO54K; CyanogenMod-10) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
"expect" :
{
"expect": {
"vendor": "Barnes & Noble",
"model": "Nook HD+",
"type": "tablet"
}
}
,
},
{
"desc": "Barnes & Noble V400 Tablet",
"ua": "Mozilla/5.0 (Linux; Android 4.0.4; BNTV400 Build/IMM76L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.111 Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Barnes & Noble",
"model": "V400",
"type": "tablet"
}
}
,
},
{
"desc": "NuVision TM101A540N Tablet",
"ua": "Mozilla/5.0 (Linux; Android 5.1; TM101A540N Build/LMY47I; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/50.0.2661.86 Safari/537.36",
"expect" :
{
"expect": {
"vendor": "NuVision",
"model": "TM101A540N",
"type": "tablet"
}
}
,
},
{
"desc": "ZTE K Series Tablet",
"ua": "Mozilla/5.0 (Linux; Android 6.0.1; K88 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
"expect" :
{
"expect": {
"vendor": "ZTE",
"model": "K88",
"type": "tablet"
}
}
,
},
{
"desc": "Swizz GEN610",
"ua": "Mozilla/5.0 (Linux; Android 4.4.2; GEN610 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.83 Mobile Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Swiss",
"model": "GEN610",
"type": "mobile"
}
}
,
},
{
"desc": "Swizz ZUR700",
"ua": "Mozilla/5.0 (Linux; Android 4.4.2; ZUR700 Build/KVT49L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Swiss",
"model": "ZUR700",
"type": "tablet"
}
}
,
},
{
"desc": "Zeki TB782b Tablet",
"ua": "Mozilla/5.0 (Linux; U; Android 4.0.4; en-US; TB782B Build/IMM76D) AppleWebKit/534.31 (KHTML, like Gecko) UCBrowser/9.0.2.299 U3/0.8.0 Mobile Safari/534.31",
"expect" :
{
"expect": {
"vendor": "Zeki",
"model": "TB782B",
"type": "tablet"
}
}
,
},
{
"desc": "Dragon Touch Tablet",
"ua": "Mozilla/5.0 (Linux; Android 4.0.4; DT9138B Build/IMM76D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Mobile Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Dragon Touch",
"model": "9138B",
"type": "tablet"
}
}
,
},
{
"desc": "Insignia Tablet",
"ua": "Mozilla/5.0 (Linux; U; Android 6.0.1; NS-P08A7100 Build/MMB29M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/56.0.2924.87 Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Insignia",
"model": "NS-P08A7100",
"type": "tablet"
}
}
,
},
{
"desc": "Voice Xtreme V75",
"ua": "Mozilla/5.0 (Linux; U; Android 4.2.1; en-us; V75 Build/JOP40D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
"expect" :
{
"expect": {
"vendor": "Voice",
"model": "V75",
"type": "mobile"
}
}
,
},
{
"desc": "LvTel V11",
"ua": "Mozilla/5.0 (Linux; Android 5.1.1; V11 Build/LMY47V) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/39.0.0.0 Safari/537.36",
"expect" :
{
"expect": {
"vendor": "LvTel",
"model": "V11",
"type": "mobile"
}
}
,
},
{
"desc": "Envizen Tablet V100MD",
"ua": "Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; V100MD Build/V100MD.20130816) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30",
"expect" :
{
"expect": {
"vendor": "Envizen",
"model": "V100MD",
"type": "tablet"
}
}
,
},
{
"desc": "Rotor Tablet",
"ua": "mozilla/5.0 (linux; android 5.0.1; tu_1491 build/lrx22c) applewebkit/537.36 (khtml, like gecko) chrome/43.0.2357.93 safari/537.36",
"expect" :
{
"expect": {
"vendor": "Rotor",
"model": "1491",
"type": "tablet"
}
}
,
},
{
"desc": "MachSpeed Tablets",
"ua": "Mozilla/5.0 (Linux; Android 4.4.2; Trio 7.85 vQ Build/Trio_7.85_vQ) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Safari/537.36",
"expect" :
{
"expect": {
"vendor": "MachSpeed",
"model": "Trio 7.85 vQ",
"type": "tablet"
}
}
,
},
{
"desc": "Trinity Tablets",
"ua": "Mozilla/5.0 (Linux; Android 5.0.1; Trinity T101 Build/LRX22C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.83 Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Trinity",
"model": "T101",
"type": "tablet"
}
}
,
},
{
"desc": "NextBook Next7",
"ua": "Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; Next7P12 Build/IMM76I) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30",
"expect" :
{
"expect": {
"vendor": "NextBook",
"model": "Next7P12",
"type": "tablet"
}
}
,
},
{
"desc": "NextBook Tablets",
"ua": "Mozilla/5.0 (Linux; Android 5.0; NXA8QC116 Build/LRX21V) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
"expect" :
{
"expect": {
"vendor": "NextBook",
"model": "NXA8QC116",
"type": "tablet"
}
}
,
},
{
"desc": "Le Pan Tablets",
"ua": "Mozilla/5.0 (Linux; Android 4.2.2; Le Pan TC802A Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Le Pan",
"model": "TC802A",
"type": "tablet"
}
}
,
},
{
"desc": "Le Pan Tablets",
"ua": "Mozilla/5.0 (Linux; Android 4.2.2; Le Pan TC802A Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Le Pan",
"model": "TC802A",
"type": "tablet"
}
}
,
},
{
"desc": "Amazon Kindle Fire Tablet",
"ua": "Mozilla/5.0 (Linux; U; Android 4.4.3; en-us; KFSAWI Build/KTU84M) AppleWebKit/537.36 (KHTML, like Gecko) Silk/3.66 like Chrome/39.0.2171.93 Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Amazon",
"model": "KFSAWI",
"type": "tablet"
}
}
,
},
{
"desc": "Gigaset Tablet",
"ua": "Mozilla/5.0 (Linux; Android 4.2.2; Gigaset QV830 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
"expect" :
{
"expect": {
"vendor": "Gigaset",
"model": "QV830",
"type": "tablet"
}
},
{
"desc": "Redmi Note 3",
"ua": "Mozilla/5.0 (Linux; Android 6.0.1; Redmi Note 3 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.116 Mobile Safari/537.36",
"expect": {
"vendor": "Xiaomi",
"model": "Redmi Note 3",
"type": "mobile"
}
},
{
"desc": "MI PAD 2",
"ua": "Mozilla/5.0 (Linux; Android 5.1; MI PAD 2 Build/LMY47I; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/60.0.3112.107 Safari/537.36 [FB_IAB/FB4A;FBAV/137.0.0.24.91;]",
"expect": {
"vendor": "Xiaomi",
"model": "MI PAD 2",
"type": "tablet"
}
}
]

View File

@ -65,6 +65,21 @@ for (var i in methods) {
});
}
describe('Returns', function () {
it('getResult() should returns JSON', function(done) {
assert.deepEqual(new UAParser('').getResult(),
{
ua : '',
browser: { name: undefined, version: undefined, major: undefined },
cpu: { architecture: undefined },
device: { vendor: undefined, model: undefined, type: undefined },
engine: { name: undefined, version: undefined},
os: { name: undefined, version: undefined }
});
done();
});
});
describe('Extending Regex', function () {
var uaString = 'Mozilla/5.0 MyOwnBrowser/1.3';
var myOwnBrowser = [[/(myownbrowser)\/((\d+)?[\w\.]+)/i], [UAParser.BROWSER.NAME, UAParser.BROWSER.VERSION, UAParser.BROWSER.MAJOR]];