Oculus devices

This commit is contained in:
Paris Morgan 2021-09-21 15:31:02 -07:00
parent ffc03acd64
commit f57bd9523d
4 changed files with 49 additions and 6 deletions

View File

@ -56,7 +56,8 @@
SAMSUNG = 'Samsung', SAMSUNG = 'Samsung',
SONY = 'Sony', SONY = 'Sony',
XIAOMI = 'Xiaomi', XIAOMI = 'Xiaomi',
ZEBRA = 'Zebra'; ZEBRA = 'Zebra',
FACEBOOK = 'Facebook';
/////////// ///////////
// Helper // Helper
@ -278,7 +279,7 @@
// WebView // WebView
/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i // Facebook App for iOS & Android /((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i // Facebook App for iOS & Android
], [[NAME, 'Facebook'], VERSION], [ ], [[NAME, FACEBOOK], VERSION], [
/safari (line)\/([\w\.]+)/i, // Line App for iOS /safari (line)\/([\w\.]+)/i, // Line App for iOS
/\b(line)\/([\w\.]+)\/iab/i, // Line App for Android /\b(line)\/([\w\.]+)\/iab/i, // Line App for Android
/(chromium|instagram)[\/ ]([-\w\.]+)/i // Chromium/Instagram /(chromium|instagram)[\/ ]([-\w\.]+)/i // Chromium/Instagram
@ -631,6 +632,10 @@
], [MODEL, [VENDOR, GOOGLE], [TYPE, WEARABLE]], [ ], [MODEL, [VENDOR, GOOGLE], [TYPE, WEARABLE]], [
/droid.+; (wt63?0{2,3})\)/i /droid.+; (wt63?0{2,3})\)/i
], [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]], [ ], [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]], [
/quest 2/i
], [[MODEL, 'Quest 2'], [VENDOR, FACEBOOK], [TYPE, WEARABLE]], [
/quest/i
], [[MODEL, 'Quest'], [VENDOR, FACEBOOK], [TYPE, WEARABLE]], [
/////////////////// ///////////////////
// EMBEDDED // EMBEDDED

View File

@ -804,8 +804,28 @@
"expect" : "expect" :
{ {
"name" : "Oculus Browser", "name" : "Oculus Browser",
"version" : "3.4.9", "version" : "4.0.0.17",
"major" : "3" "major" : "4"
}
},
{
"desc" : "Oculus Browser",
"ua" : "Mozilla/5.0 (Linux; Android 9; SM-N960F) AppleWebKit/537.36 (KHTML, like Gecko) OculusBrowser/6.2.11.181027543 SamsungBrowser/4.0 Chrome/74.0.3729.182 Mobile VR Safari/537.36",
"expect" :
{
"name" : "Oculus Browser",
"version" : "6.2.11.181027543",
"major" : "6"
}
},
{
"desc" : "Oculus Browser (NOTE PARIS FROM https://developer.oculus.com/documentation/web/browser-specs/)",
"ua" : "Mozilla/5.0 (Linux; Android 10; Quest 2) AppleWebKit/537.36 (KHTML, like Gecko) OculusBrowser/15.0.0.0.22.280317669 SamsungBrowser/4.0 Chrome/89.0.4389.90 VR Safari/537.36",
"expect" :
{
"name" : "Oculus Browser",
"version" : "15.0.0.0.22.280317669",
"major" : "15"
} }
}, },
{ {

View File

@ -1053,6 +1053,24 @@
"type": "mobile" "type": "mobile"
} }
}, },
{
"desc": "Oculus Quest",
"ua": "Mozilla/5.0 (Linux; Android 10; Quest) AppleWebKit/537.36 (KHTML, like Gecko) OculusBrowser/15.0.0.0.22.280317669 SamsungBrowser/4.0 Chrome/89.0.4389.90 VR Safari/537.36",
"expect": {
"vendor": "Facebook",
"model": "Quest",
"type": "wearable"
}
},
{
"desc": "Oculus Quest 2",
"ua": "Mozilla/5.0 (Linux; Android 10; Quest 2) AppleWebKit/537.36 (KHTML, like Gecko) OculusBrowser/15.0.0.0.22.280317669 SamsungBrowser/4.0 Chrome/89.0.4389.90 VR Safari/537.36",
"expect": {
"vendor": "Facebook",
"model": "Quest 2",
"type": "wearable"
}
},
{ {
"desc": "OnePlus One", "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", "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",

View File

@ -39,7 +39,8 @@ var methods = [
label : 'os', label : 'os',
list : os, list : os,
properties : ['name', 'version'] properties : ['name', 'version']
}]; }
];
describe('UAParser()', function () { describe('UAParser()', function () {
var ua = 'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6'; var ua = 'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6';
@ -62,7 +63,6 @@ for (var i in methods) {
describe('"' + methods[i]['list'][j].ua + '"', function () { describe('"' + methods[i]['list'][j].ua + '"', function () {
var expect = methods[i]['list'][j].expect; var expect = methods[i]['list'][j].expect;
var result = parser.setUA(methods[i]['list'][j].ua).getResult()[methods[i]['label']]; var result = parser.setUA(methods[i]['list'][j].ua).getResult()[methods[i]['label']];
methods[i]['properties'].forEach(function(m) { methods[i]['properties'].forEach(function(m) {
it('should return ' + methods[i]['label'] + ' ' + m + ': ' + expect[m], function () { it('should return ' + methods[i]['label'] + ' ' + m + ': ' + expect[m], function () {
assert.strictEqual(result[m], expect[m] != 'undefined' ? expect[m] : undefined); assert.strictEqual(result[m], expect[m] != 'undefined' ? expect[m] : undefined);