Skip to content

Commit f92d409

Browse files
committed
Add some tests; Add new devices: Infinix, Tecno; Improve detection: Xiaomi POCO Source: https://www.useragents.me
(cherry picked from commit 15d17e9)
1 parent 5af24a6 commit f92d409

File tree

4 files changed

+552
-84
lines changed

4 files changed

+552
-84
lines changed

src/ua-parser.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -414,7 +414,7 @@
414414
], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [
415415

416416
// Xiaomi
417-
/\b(poco[\w ]+)(?: bui|\))/i, // Xiaomi POCO
417+
/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i, // Xiaomi POCO
418418
/\b; (\w+) build\/hm\1/i, // Xiaomi Hongmi 'numeric' models
419419
/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i, // Xiaomi Hongmi
420420
/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i, // Xiaomi Redmi
@@ -522,7 +522,7 @@
522522
], [MODEL, [VENDOR, 'Meizu'], [TYPE, MOBILE]], [
523523

524524
// MIXED
525-
/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i,
525+
/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\w]*)/i,
526526
// BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron
527527
/(hp) ([\w ]+\w)/i, // HP iPAQ
528528
/(asus)-?(\w+)/i, // Asus

test/browser-test.json

+100
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,46 @@
199199
"major" : "100"
200200
}
201201
},
202+
{
203+
"desc" : "Chrome 112.0 on Win10",
204+
"ua" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36",
205+
"expect" :
206+
{
207+
"name" : "Chrome",
208+
"version" : "112.0.0.0",
209+
"major" : "112"
210+
}
211+
},
212+
{
213+
"desc" : "Chrome 112.0 on macOS",
214+
"ua" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36",
215+
"expect" :
216+
{
217+
"name" : "Chrome",
218+
"version" : "112.0.0.0",
219+
"major" : "112"
220+
}
221+
},
222+
{
223+
"desc" : "Chrome 111.0 on Linux",
224+
"ua" : "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36",
225+
"expect" :
226+
{
227+
"name" : "Chrome",
228+
"version" : "111.0.0.0",
229+
"major" : "111"
230+
}
231+
},
232+
{
233+
"desc" : "Chrome 111.0 on ChromeOS",
234+
"ua" : "Mozilla/5.0 (X11; CrOS x86_64 14541.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36",
235+
"expect" :
236+
{
237+
"name" : "Chrome",
238+
"version" : "111.0.0.0",
239+
"major" : "111"
240+
}
241+
},
202242
{
203243
"desc" : "Chrome Headless",
204244
"ua" : "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome Safari/537.36",
@@ -1308,6 +1348,56 @@
13081348
"major" : "22"
13091349
}
13101350
},
1351+
{
1352+
"desc" : "Yandex",
1353+
"ua" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 YaBrowser/23.3.0.2246 Yowser/2.5 Safari/537.36",
1354+
"expect" :
1355+
{
1356+
"name" : "Yandex",
1357+
"version" : "23.3.0.2246",
1358+
"major" : "23"
1359+
}
1360+
},
1361+
{
1362+
"desc" : "Yandex on Android",
1363+
"ua" : "Mozilla/5.0 (Linux; arm_64; Android 13; SM-G965F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.5672.76 YaBrowser/21.3.4.59 Mobile Safari/537.36",
1364+
"expect" :
1365+
{
1366+
"name" : "Yandex",
1367+
"version" : "21.3.4.59",
1368+
"major" : "21"
1369+
}
1370+
},
1371+
{
1372+
"desc" : "Yandex on iPhone",
1373+
"ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 16_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.4 YaBrowser/23.3.3.330 Mobile/15E148 Safari/604.1",
1374+
"expect" :
1375+
{
1376+
"name" : "Yandex",
1377+
"version" : "23.3.3.330",
1378+
"major" : "23"
1379+
}
1380+
},
1381+
{
1382+
"desc" : "Yandex on iPad",
1383+
"ua" : "Mozilla/5.0 (iPad; CPU OS 16_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.4 YaBrowser/23.3.3.330 Mobile/15E148 Safari/605.1",
1384+
"expect" :
1385+
{
1386+
"name" : "Yandex",
1387+
"version" : "23.3.3.330",
1388+
"major" : "23"
1389+
}
1390+
},
1391+
{
1392+
"desc" : "Yandex on iPod",
1393+
"ua" : "Mozilla/5.0 (iPod touch; CPU iPhone 16_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.4 YaBrowser/23.3.3.330 Mobile/15E148 Safari/605.1",
1394+
"expect" :
1395+
{
1396+
"name" : "Yandex",
1397+
"version" : "23.3.3.330",
1398+
"major" : "23"
1399+
}
1400+
},
13111401
{
13121402
"desc" : "Puffin",
13131403
"ua" : "Mozilla/5.0 (Linux; Android 6.0.1; Lenovo P2a42 Build/MMB29M; en-us) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Mobile Safari/537.36 Puffin/6.0.8.15804AP",
@@ -1408,6 +1498,16 @@
14081498
"major" : "1"
14091499
}
14101500
},
1501+
{
1502+
"desc" : "Firefox on iOS",
1503+
"ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 16_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/112.0 Mobile/15E148 Safari/605.1.15",
1504+
"expect" :
1505+
{
1506+
"name" : "Mobile Firefox",
1507+
"version" : "112.0",
1508+
"major" : "112"
1509+
}
1510+
},
14111511
{
14121512
"desc" : "Firefox iOS using iPad",
14131513
"ua" : "Mozilla/5.0 (iPad; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) FxiOS/1.0 Mobile/12F69 Safari/600.1.4",

test/cpu-test.json

+40
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,46 @@
2323
"architecture" : "amd64"
2424
}
2525
},
26+
{
27+
"desc" : "Vivaldi on Windows",
28+
"ua" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Vivaldi/6.0.2979.18",
29+
"expect" :
30+
{
31+
"architecture" : "amd64"
32+
}
33+
},
34+
{
35+
"desc" : "Vivaldi on Windows",
36+
"ua" : "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Vivaldi/6.0.2979.18",
37+
"expect" :
38+
{
39+
"architecture" : "amd64"
40+
}
41+
},
42+
{
43+
"desc" : "Vivaldi on Linux",
44+
"ua" : "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Vivaldi/6.0.2979.18",
45+
"expect" :
46+
{
47+
"architecture" : "amd64"
48+
}
49+
},
50+
{
51+
"desc" : "Vivaldi on Linux",
52+
"ua" : "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Vivaldi/6.0.2979.18",
53+
"expect" :
54+
{
55+
"architecture" : "ia32"
56+
}
57+
},
58+
{
59+
"desc": "Xiaomi POCO M2 Pro",
60+
"ua": "Mozilla/5.0 (Linux; arm_64; Android 11; POCO M2 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 YaBrowser/22.11.7.42.00 SA/3 Mobile Safari/537.36",
61+
"expect" :
62+
{
63+
"architecture" : "arm64"
64+
}
65+
},
2666
{
2767
"desc" : "win64",
2868
"ua" : "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; Win64; x64; Trident/6.0; .NET4.0E; .NET4.0C)",

0 commit comments

Comments
 (0)