Skip to content

Commit 557cc21

Browse files
committed
More test for latest phones with unique form factor (fold/flip/qwerty/swivel)
1 parent c937400 commit 557cc21

File tree

2 files changed

+112
-3
lines changed

2 files changed

+112
-3
lines changed

src/ua-parser.js

+4-3
Original file line numberDiff line numberDiff line change
@@ -431,7 +431,7 @@
431431

432432
// Motorola
433433
/\s(milestone|droid(?:[2-4x]|\s(?:bionic|x2|pro|razr))?:?(\s4g)?)\b[\w\s]+build\//i,
434-
/\smot[\s-](\w*)/i,
434+
/\smot(?:orola)?[\s-](\w*)/i,
435435
/((?:moto[\s\w\(\)]+|xt\d{3,4}|nexus\s6)(?=\sbuild|\)))/i
436436
], [MODEL, [VENDOR, 'Motorola'], [TYPE, MOBILE]], [
437437
/\s(mz60\d|xoom[\s2]{0,2})\sbuild\//i
@@ -440,7 +440,7 @@
440440
// LG
441441
/((?=lg)?[vl]k\-?\d{3})\sbuild|\s3\.[\s\w;-]{10}lg?-([06cv9]{3,4})/i
442442
], [MODEL, [VENDOR, 'LG'], [TYPE, TABLET]], [
443-
/(nexus\s[45])/i,
443+
/(lm-?f100[nv]?|nexus\s[45])/i,
444444
/lg[e;\s\/-]+((?!browser|netcast)\w+)/i,
445445
/\blg(\-?[\d\w]+)\sbuild/i
446446
], [MODEL, [VENDOR, 'LG'], [TYPE, MOBILE]], [
@@ -453,7 +453,7 @@
453453
// Nokia
454454
/(?:maemo|nokia).*(n900|lumia\s\d+)/i,
455455
/nokia[\s_-]?([\w\.-]*)/i
456-
], [MODEL, [VENDOR, 'Nokia'], [TYPE, MOBILE]], [
456+
], [[MODEL, /_/g, ' '], [VENDOR, 'Nokia'], [TYPE, MOBILE]], [
457457

458458
// Google
459459
/droid.+;\s(pixel\sc)[\s)]/i // Google Pixel C
@@ -485,6 +485,7 @@
485485
// BlackBerry
486486
/\((playbook);[\w\s\),;-]+(rim)/i // BlackBerry PlayBook
487487
], [MODEL, VENDOR, [TYPE, TABLET]], [
488+
/((?:bb[a-f]|st[hv])100-\d)/i,
488489
/\(bb10;\s(\w+)/i // BlackBerry 10
489490
], [MODEL, [VENDOR, 'BlackBerry'], [TYPE, MOBILE]], [
490491

test/device-test.json

+108
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,42 @@
142142
"type": "tablet"
143143
}
144144
},
145+
{
146+
"desc": "BlackBerry Priv",
147+
"ua": "User-Agent: Mozilla/5.0 (Linux; Android 5.1.1; STV100-1 Build/LMY47V; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/46.0.2490.76 Mobile Safari/537.36",
148+
"expect": {
149+
"vendor": "BlackBerry",
150+
"model": "STV100-1",
151+
"type": "mobile"
152+
}
153+
},
154+
{
155+
"desc": "BlackBerry Keyone",
156+
"ua": "Mozilla/5.0 (Linux; Android 8.1.0; BBB100-1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.111 Mobile Safari/537.36",
157+
"expect": {
158+
"vendor": "BlackBerry",
159+
"model": "BBB100-1",
160+
"type": "mobile"
161+
}
162+
},
163+
{
164+
"desc": "BlackBerry Key2",
165+
"ua": "Mozilla/5.0 (Linux; Android 8.1.0; BBF100-1 Build/OPM1.171019.026) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.91 Mobile Safari/537.36",
166+
"expect": {
167+
"vendor": "BlackBerry",
168+
"model": "BBF100-1",
169+
"type": "mobile"
170+
}
171+
},
172+
{
173+
"desc": "BlackBerry Key2 LE",
174+
"ua": "User-Agent: Mozilla/5.0 (Linux; Android 8.1.0; BBE100-1 Build/OPM1.171019.026) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497 Mobile Safari/537.36",
175+
"expect": {
176+
"vendor": "BlackBerry",
177+
"model": "BBE100-1",
178+
"type": "mobile"
179+
}
180+
},
145181
{
146182
"desc": "Desktop (IE11 with Tablet string)",
147183
"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",
@@ -331,6 +367,15 @@
331367
"type": "mobile"
332368
}
333369
},
370+
{
371+
"desc": "LG Wing",
372+
"ua": "Mozilla/5.0 (Linux; Android 10; LM-F100N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.101 Mobile Safari/537.36",
373+
"expect": {
374+
"vendor": "LG",
375+
"model": "LM-F100N",
376+
"type": "mobile"
377+
}
378+
},
334379
{
335380
"desc": "LG Smart TV",
336381
"ua": "Mozilla/5.0 (DirectFB; U; Linux mips; en) AppleWebKit/528.5+ (KHTML, like Gecko, Safari/528.5+) LG Browser (; LG NetCast.TV-2011)",
@@ -423,6 +468,15 @@
423468
"type": "mobile"
424469
}
425470
},
471+
{
472+
"desc": "Motorola RAZR 2019",
473+
"ua": "Mozilla/5.0 (Linux; Android 9; motorola razr) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/11.1 Chrome/75.0.3770.143 Mobile Safari/537.36",
474+
"expect": {
475+
"vendor": "Motorola",
476+
"model": "razr",
477+
"type": "mobile"
478+
}
479+
},
426480
{
427481
"desc": "iPhone",
428482
"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",
@@ -540,6 +594,15 @@
540594
"type": "mobile"
541595
}
542596
},
597+
{
598+
"desc": "Nokia 2720 Flip",
599+
"ua": "Mozilla/5.0 (Mobile; Nokia_2720_Flip; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.2",
600+
"expect": {
601+
"vendor": "Nokia",
602+
"model": "2720 Flip",
603+
"type": "mobile"
604+
}
605+
},
543606
{
544607
"desc": "OnePlus One",
545608
"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",
@@ -810,6 +873,24 @@
810873
"type": "mobile"
811874
}
812875
},
876+
{
877+
"desc": "Samsung Galaxy Z Flip",
878+
"ua": "Mozilla/5.0 (Linux; Android 10; SM-F700N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.136 Mobile Safari/537.36",
879+
"expect": {
880+
"vendor": "Samsung",
881+
"model": "SM-F700N",
882+
"type": "mobile"
883+
}
884+
},
885+
{
886+
"desc": "Samsung Galaxy Z Fold2",
887+
"ua": "Mozilla/5.0 (Linux; Android 10; SM-F916B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Mobile Safari/537.36",
888+
"expect": {
889+
"vendor": "Samsung",
890+
"model": "SM-F916B",
891+
"type": "mobile"
892+
}
893+
},
813894
{
814895
"desc": "Samsung Galaxy S10E",
815896
"ua": "Mozilla/5.0 (Linux; Android 9; SM-G970F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Mobile Safari/537.36",
@@ -1984,6 +2065,24 @@
19842065
"type": "mobile"
19852066
}
19862067
},
2068+
{
2069+
"desc": "Huawei Mate X",
2070+
"ua": "Mozilla/5.0 (Linux; Android 9; TAH-AN00) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.111 Safari/537.36",
2071+
"expect": {
2072+
"vendor": "Huawei",
2073+
"model": "TAH-AN00",
2074+
"type": "mobile"
2075+
}
2076+
},
2077+
{
2078+
"desc": "Huawei Mate X2",
2079+
"ua": "Mozilla/5.0 (Linux; Android 10; TET-AN00) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.96 Mobile Safari/537.36",
2080+
"expect": {
2081+
"vendor": "Huawei",
2082+
"model": "TET-AN00",
2083+
"type": "mobile"
2084+
}
2085+
},
19872086
{
19882087
"desc": "Huawei P20 Lite",
19892088
"ua": "Mozilla/5.0 (Linux; Android 8.0.0; ANE-LX1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.143 Mobile Safari/537.36",
@@ -2171,6 +2270,15 @@
21712270
"type": "mobile"
21722271
}
21732272
},
2273+
{
2274+
"desc": "Alcatel Go Flip",
2275+
"ua": "Mozilla/5.0 (Mobile; ALCATEL4044T; rv:37.0) Gecko/37.0 Firefox/37.0 KaiOS/1.0",
2276+
"expect": {
2277+
"vendor": "ALCATEL",
2278+
"model": "4044T",
2279+
"type": "mobile"
2280+
}
2281+
},
21742282
{
21752283
"desc": "Jolla",
21762284
"ua": "Mozilla/5.0 (Maemo; Linux; U; Jolla; Sailfish; Mobile; rv:31.0) Gecko/31.0 Firefox/31.0 SailfishBrowser/1.0",

0 commit comments

Comments
 (0)