Skip to content

Commit a4c97b9

Browse files
committed
Version 2.4 (release)
1 parent 8c17145 commit a4c97b9

File tree

7 files changed

+170
-203
lines changed

7 files changed

+170
-203
lines changed

CHANGELOG.md

+8
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,14 @@
22

33
All notable changes to this `PHP Browser Detection` project documented in this file.
44

5+
## [2.4] - 2021-09-06
6+
7+
### Changed
8+
9+
- MacOS Monterey detection improvements;
10+
- MacOS Big Sur detection improvements: MacOS User-Agent with '10_15_7' version matching now detectable as MacOS Big Sur instead MacOS Catalina;
11+
- New MacOS Big Sur detection feature. Since Firefox version 87 on MacOS with '10.15' version matching, this MacOS version will be considered as MacOS Big Sur (see reference: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#macintosh).
12+
513
## [2.3] - 2021-09-03
614

715
### Added

src/BrowserDetection.php

+23-5
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
2626
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2727
*
28-
* @version 2.3
29-
* @last-modified September 3, 2021
28+
* @version 2.4
29+
* @last-modified September 6, 2021
3030
* @link https://github.com/foroco/php-browser-detection
3131
*/
3232

@@ -371,15 +371,21 @@ private function getResult()
371371
$this->result_os_name = 'MacOS';
372372
if ($this->match_ua('Mac OS X'))
373373
{
374-
$matches = $this->match_ua('/Mac OS X (\d+)[_.](\d+)/');
375-
$version = is_array($matches) ? $matches[1] : 0;
376-
$version_minor = is_array($matches) ? $matches[2] : 0;
374+
$matches = $this->match_ua('/Mac OS X (\d+)[_.](\d+)(?:[_.](\d+)|)/');
375+
376+
$version = isset($matches[1]) ? $matches[1] : 0;
377+
$version_minor = isset($matches[2]) ? $matches[2] : 0;
378+
$version_revision = isset($matches[3]) ? $matches[3] : -1;
377379

378380
// macOS version to minor version conversion (needs since Big Sur)
379381
if ($version == 10 && $version_minor == 0) $version_minor = 16;
380382
if ($version == 11) $version_minor = 16;
381383
if ($version == 12) $version_minor = 17;
382384

385+
// macOS with a particular major/minor/revision version structure (needs since Big Sur)
386+
if ($version == 10 && $version_minor == 15 && $version_revision == 7) $version_minor = 16;
387+
if ($version == 10 && $version_minor == 16 && $version_revision == 0) $version_minor = 17;
388+
383389
if (!empty($version_minor))
384390
{
385391
if ($version >= 10) $this->result_os_version = $this->macos_codename($version_minor);
@@ -1364,6 +1370,18 @@ private function getResult()
13641370
if ($this->result_browser_name === 'Safari' || $this->result_browser_name === 'Safari SDK') $this->result_64bits_mode = 1;
13651371
}
13661372

1373+
/*
1374+
---------------------------------------------------------
1375+
MacOS Big Sur + Firefox version > 86 detection feature
1376+
---------------------------------------------------------
1377+
*/
1378+
1379+
if ($this->result_os_name === 'MacOS' && $this->macos_version_minor == 15 && $this->result_browser_name === 'Firefox' && $this->result_browser_version > 86)
1380+
{
1381+
$this->result_os_version = 'Big Sur';
1382+
$this->result_os_title = 'MacOS '.$this->result_os_version;
1383+
}
1384+
13671385
return NULL;
13681386
}
13691387

tests/all.php

+82-9
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,31 @@
11
<?php
22

3+
error_reporting(E_ALL);
4+
35
require_once('../src/BrowserDetection.php');
46
$Browser = new foroco\BrowserDetection();
57

6-
// Testing some main and rare User-Agents
7-
8-
$useragent[] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16.4) AppleWebKit/604.5.8 (KHTML, like Gecko) Chrome/59.0.3061.40 Safari/604.5.8';
9-
$useragent[] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36';
10-
$useragent[] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/600.7.12 (KHTML, like Gecko) Version/8.0.7 Safari/600.7.12 (000154)';
8+
// Testing some rare and unusual User-Agents
9+
$useragent[] = 'Mozilla/5.0 (Android; Mobile) Gecko/68.0 Firefox/68.0 QwantMobile/3.5';
10+
$useragent[] = 'QwantMobile/2.0 (iPad; CPU OS 11_2_6 like Mac OS X) AppleWebKit/604.5.6 (KHTML, like Gecko) QwantiOS/2.0.2b2 Mobile/15D100 Safari/604.5.6';
11+
$useragent[] = 'Mozilla/5.0 (Linux; Android 9; SM-J810F Build/PPR1.180610.011) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.93 Mobile Safari/537.36 YaApp_Android/9.50 YaSearchBrowser/9.50';
12+
$useragent[] = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.5408.400 QQBrowser/E4502ADBD6D35';
13+
$useragent[] = 'Mozilla/5.0 (Linux; Android 9; Mi A1 Build/PKQ1.180917.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.157 Mobile Safari/537.36 Instagram 93.1.0.19.102 Android (28/9; 480dpi; 1080x1920; Xiaomi/xiaomi; Mi A1; tissot_sprout; qcom; ru_RU; 154400383)';
14+
$useragent[] = 'Mozilla/5.0 (Linux; Android 9; SAMSUNG SM-A202F/A202FXXU3ASL4) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/11.1 Chrome/75.0.3770.143 Mobile Safari/537.36';
15+
$useragent[] = 'Opera/9.80 (Android; Opera Mini/7.6.35766/93.131; U; id) Presto/2.12.423 Version/12.16';
16+
$useragent[] = 'Mozilla/5.0 (Linux; Android 10; Pixel 3 XL Build/QQ1A.200205.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/80.0.3987.87 Mobile Safari/537.36 GSA/10.95.6.21.arm64';
17+
$useragent[] = 'Mozilla/5.0 (Windows; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0';
18+
$useragent[] = 'Mozilla/5.0 (Android; Mobile; rv:52.7.3) Gecko/52.7.3 Firefox/52.7.3';
1119
$useragent[] = 'Opera/9.80 (Macintosh; Intel Mac OS X; U; en) Presto/2.2.15 Version/10.00';
20+
$useragent[] = 'Opera/9.02 (Windows; U; nl)';
21+
$useragent[] = 'Opera/9.80 (Windows NT 6.1; WOW64) Presto/2.12.388 Version/12.18';
22+
$useragent[] = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36 OPR/43.0.2442.991';
23+
$useragent[] = 'Opera/9.80 (Linux armv7l) Presto/2.12.407 Version/12.51 , D50u-D1-UHD/V1.5.16-UHD (Vizio, D50u-D1, Wireless)';
24+
$useragent[] = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.50';
25+
$useragent[] = 'Opera/9.00 (Windows NT 5.1; U; en)';
26+
$useragent[] = 'Mozilla/5.0 (Windows NT 5.1; U; en) Opera 8.01';
27+
$useragent[] = 'Opera/9.80 (SpreadTrum; Opera Mini/4.4.33961/191.233; U; ru) Presto/2.12.423 Version/12.16';
28+
$useragent[] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36';
1229
$useragent[] = 'Mozilla/5.0 (Linux; Android 4.4.4; en-us; SAMSUNG SM-N910C Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/2.0 Chrome/34.0.1847.76 Mobile Safari/537.36';
1330
$useragent[] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18363';
1431
$useragent[] = 'Mozilla/5.0 (Windows NT 5.1; rv:36.0) Gecko/20100101 Firefox/36.0';
@@ -32,7 +49,6 @@
3249
$useragent[] = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Brave Chrome/79.0.3945.136 Safari/537.36';
3350
$useragent[] = 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_2 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Mobile/14A456 Safari/602.1 AlohaBrowser/1.4';
3451
$useragent[] = 'Mozilla/5.0 (iPad; U; CPU OS 4_3_3 like Mac OS X; de-de) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5';
35-
$useragent[] = 'MEmpresas/20180706 CFNetwork/808.2.16 Darwin/17.4.0';
3652
$useragent[] = 'QwantMobile/2.0 (Android 7.0; Mobile; rv:57.0) Gecko/57.0 QwantBrowser/57.0';
3753
$useragent[] = 'Mozilla/5.0 (Mobile; rv:63.0) Gecko/63.0 Firefox/63.0';
3854
$useragent[] = 'BlackBerry8520/5.0.0.681 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/600';
@@ -52,15 +68,72 @@
5268
$useragent[] = 'Mozilla/3.0 (compatible; MSIE3.00; Windows 2002)';
5369
$useragent[] = 'Mozilla/4.0 (compatible; MSIE 4.01; AOL 4.0; Mac_68K)';
5470
$useragent[] = 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.9) ArtisReader/28.7.2 ArtisBrowser/28.7.2';
55-
$useragent[] = 'Mozilla/5.0 (Android; Mobile) Gecko/68.0 Firefox/68.0 QwantMobile/3.5';
56-
$useragent[] = 'QwantMobile/2.0 (iPad; CPU OS 11_2_6 like Mac OS X) AppleWebKit/604.5.6 (KHTML, like Gecko) QwantiOS/2.0.2b2 Mobile/15D100 Safari/604.5.6';
71+
$useragent[] = 'Mozilla/5.0 (X11; Linux x86_64) KHTML/5.55.0 (like Gecko) Konqueror/5 KIO/5.55';
5772
$useragent[] = 'Qwant/2.5 (Android 8.0.0; Mobile; rv:63.0) Gecko/63.0 Firefox/59.0 QwantBrowser/63.0.1';
58-
$useragent[] = 'QwantMobile/2.0 (Android 7.0; Mobile; rv:57.0) Gecko/57.0 QwantBrowser/57.0';
5973
$useragent[] = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) QtWebEngine/5.9.5 Chrome/56.0.2924.122 Safari/537.36 Konqueror (WebEnginePart)';
6074
$useragent[] = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.34 (KHTML, like Gecko) konqueror/4.14.26 Safari/534.34';
6175
$useragent[] = 'Mozilla/5.0 (compatible; Konqueror/3.0-rc6; i686 Linux; 20020613)';
6276
$useragent[] = 'Mozilla/5.0 (X11; Linux x86_64) KHTML/5.55.0 (like Gecko) Konqueror/5 KIO/5.55';
6377
$useragent[] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_4) AppleWebKit/600.7.12 (KHTML, like Gecko) Version/8.0.7 Safari/600.7.12 (000154)';
78+
$useragent[] = 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 Version/12.1.2 Safari/605.1.15 SEB/2.1.15';
79+
$useragent[] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2825.0 Xvast/1.0.0.8 Safari/537.36';
80+
$useragent[] = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 ADG/11.0.2566 AOLBUILD/11.0.2566 Safari/537.36';
81+
$useragent[] = 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.4.3282.140 Elements Browser/1.1.4 Safari/537.36';
82+
$useragent[] = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36 115Browser/8.4.0';
83+
$useragent[] = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36 115Browser/B0B6B';
84+
$useragent[] = 'Mozilla/5.0 (Windows NT 6.0) AppleWebKit/5350 (KHTML, like Gecko) Chrome/38.0.875.0 Mobile Safari/5350';
85+
$useragent[] = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Falkon/3.1.0 Chrome/77.0.3865.129 Safari/537.36';
86+
$useragent[] = 'Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:52.9) Gecko/20100101 Goanna/4.1 Firefox/52.9 Basilisk/20180427';
87+
$useragent[] = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:68.9) Gecko/20100101 Goanna/4.5 Firefox/68.9 Basilisk/52.9.0';
88+
$useragent[] = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.2882.0 Safari/537.36 AOLShield/60.0.2882.0';
89+
$useragent[] = 'Mozilla/5.0 (Windows NT 6.0; rv:52.0) Gecko/20100101 AOLShield/52.4.2';
90+
$useragent[] = 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.34 (KHTML, like Gecko) Dooble/1.40 Safari/534.34';
91+
$useragent[] = 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari/6533.18.5 UCTurbo/1.6.3.900';
92+
$useragent[] = 'Mozilla/5.0 (Windows; U; Windows NT 5.2;. en-US) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.108 Safari/537.36 UCTurbo/1.9.6.900';
93+
$useragent[] = 'Mozilla/5.0 (Linux; U; Android 9; ru; SM-J530FM Build/PPR1.180610.011) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.10.0.1163 UCTurbo/1.9.3.900 Mobile Safari/537.36';
94+
$useragent[] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36 OPR/60.0.3255.50962 OPRGX/60.0.3255.50962';
95+
$useragent[] = 'Mozilla/5.0 (Linux; U; Android 4.0.3; ru-ru; HUAWEI MediaPad Build/HuaweiMediaPad) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30 com.browser.tssomas/10.0.4-001e';
96+
$useragent[] = 'Mozilla/5.0 (Linux; Android 8.0.0; SM-J737T1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.90 Mobile SFBrowser/13.0.2115.30 Mobile Safari/537.36';
97+
$useragent[] = 'Mozilla/5.0 (Linux; U; Android 6.0;ru_ru; Le X625 Build/HEXCNFN5801809301S) AppleWebKit/537.36 (KHTML, like Gecko)Version/4.0 Chrome/49.0.0.0 Mobile Safari/537.36 EUI Browser/5.8.018S';
98+
$useragent[] = 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/528.16 (KHTML, like Gecko) Fluid/0.9.6 Safari/528.16';
99+
$useragent[] = 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_8_0; nl-nl) AppleWebKit/601.4.4 (KHTML, like Gecko) Fluid/1.7.1 Safari/532.3+';
100+
$useragent[] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:85.0) Gecko/20100101 Firefox/85.0';
101+
$useragent[] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Safari/605.1.15';
102+
$useragent[] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16.4) AppleWebKit/604.5.8 (KHTML, like Gecko) Chrome/59.0.3061.40 Safari/604.5.8';
103+
$useragent[] = 'Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/538.1 (KHTML, like Gecko) Google Earth Pro/7.3.2.5776 Safari/538.1';
104+
$useragent[] = 'Mozilla/5.0 (Windows; N; Windows NT 6.1; de-DE) AppleWebKit/532.4 (KHTML, like Gecko) Google Earth/7.1.5.1557 Safari/532.4';
105+
$useragent[] = 'iCabMobile/9.14.7 CFNetwork/1121.2.2 Darwin/19.2.0';
106+
$useragent[] = 'Mozilla/5.0 (i686) AppleWebKit/537.6+ (KHTML, like Gecko) WebKitGTK+/1.10.2 luakit/039e319';
107+
$useragent[] = 'Mozilla/5.0 (x86_64) AppleWebKit/538.15+ (KHTML, like Gecko) WebKitGTK+/2.4.9 luakit';
108+
$useragent[] = 'Word/16.15.18070902 CFNetwork/901.1 Darwin/17.6.0 (x86_64)';
109+
$useragent[] = 'Safari/10600.1.25 CFNetwork/720.0.7 Darwin/14.0.0 (x86_64)';
110+
$useragent[] = 'Safari/9537.86.7.8 CFNetwork/673.6 Darwin/13.4.0 (x86_64) (MacBookAir6%2C1)';
111+
$useragent[] = 'MobileSafari/6533.18.5 CFNetwork/485.12.7 Darwin/10.4.0';
112+
$useragent[] = '1Password%207/70007000 CFNetwork/902.1 Darwin/17.7.0 (x86_64)';
113+
$useragent[] = 'ActionExtension/108.2.2 CFNetwork/902.2 Darwin/17.7.0';
114+
$useragent[] = 'MEmpresas/20180706 CFNetwork/808.2.16 Darwin/17.4.0';
115+
$useragent[] = 'AdGuard%20Pro/165 CFNetwork/976 Darwin/18.2.0';
116+
$useragent[] = 'CFNetworkAgent (unknown version) CFNetwork/1121.2.2 Darwin/19.2.0';
117+
$useragent[] = 'Canary-iOS/191 CFNetwork/893.14.2 Darwin/17.3.0';
118+
$useragent[] = 'Finish Line/2.5.2 CFNetwork/897.15 Darwin/17.5.0';
119+
$useragent[] = 'NET.mede/1 CFNetwork/758.5.3 Darwin/15.6.0';
120+
$useragent[] = 'Safari/6531.9 CFNetwork/454.4 Darwin/10.0.0 (i386) (MacBook4%2C1)';
121+
$useragent[] = 'SafariSafeBrowsing/603.3.8 CFNetwork/811.5.4 Darwin/16.7.0';
122+
$useragent[] = 'SafariViewService/1.0 CFNetwork/974.2 Darwin/18.0.0';
123+
$useragent[] = 'Viber/8.1.1.158 CFNetwork/811.5.4 Darwin/16.7.0';
124+
$useragent[] = 'com.apple.Notes.SharingExtension/555.10.42 CFNetwork/760.7 Darwin/15.6.0 (x86_64)';
125+
$useragent[] = 'com.apple.Safari.SearchHelper/10600.8.3 CFNetwork/720.5.7 Darwin/14.5.0 (x86_64)';
126+
$useragent[] = 'com.apple.WebKit.Networking/10603.3.8 CFNetwork/720.5.7 Darwin/14.5.0 (x86_64)';
127+
$useragent[] = 'com.apple.mobilenotes.SharingExtension/1124.10 CFNetwork/808.1.4 Darwin/16.1.0';
128+
$useragent[] = 'dataaccessd (unknown version) CFNetwork/811.5.4 Darwin/16.7.0';
129+
$useragent[] = 'Mozilla/5.0 (Android; Mobile; rv:52.7.3) Gecko/52.7.3 Firefox/52.7.3';
130+
$useragent[] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/600.7.12 (KHTML, like Gecko) Version/8.0.7 Safari/600.7.12 (000154)';
131+
$useragent[] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36';
132+
$useragent[] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_0_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36 Edg/86.0.622.69';
133+
$useragent[] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 12_0_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.128 Safari/537.36';
134+
$useragent[] = 'Mozilla/5.0 (iPhone; CPU iPhone OS 12 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1 Mobile/15E148 Safari/604.1';
135+
$useragent[] = 'Mozilla/5.0 (Windows NT 10.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.128 Safari/537.36';
136+
$useragent[] = 'Mozilla/5.0 (Windows NT 11.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.128 Safari/537.36';
64137

65138
$time_start = microtime(true);
66139

tests/macos.php

+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
<?php
2+
3+
error_reporting(E_ALL);
4+
5+
require_once('../src/BrowserDetection.php');
6+
$Browser = new foroco\BrowserDetection();
7+
8+
// Testing some new MacOS User-Agent strings
9+
10+
// Catalina
11+
$useragent[] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.2 Safari/605.1.15';
12+
$useragent[] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36';
13+
$useragent[] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Safari/605.1.15';
14+
$useragent[] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:86.0) Gecko/20100101 Firefox/86.0';
15+
16+
// Big Sur
17+
$useragent[] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:88.0) Gecko/20100101 Firefox/88.0';
18+
$useragent[] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:87.0) Gecko/20100101 Firefox/87.0';
19+
$useragent[] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.0; rv:75.0) Gecko/20100101 Firefox/75.0';
20+
$useragent[] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Safari/605.1.15';
21+
$useragent[] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36';
22+
$useragent[] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_0_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36 Edg/86.0.622.69';
23+
$useragent[] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16.4) AppleWebKit/604.5.8 (KHTML, like Gecko) Chrome/59.0.3061.40 Safari/604.5.8';
24+
$useragent[] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36';
25+
$useragent[] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15';
26+
27+
// Monterey
28+
$useragent[] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 12_0_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.128 Safari/537.36';
29+
$useragent[] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_16_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36';
30+
31+
$time_start = microtime(true);
32+
33+
foreach ($useragent as $u)
34+
{
35+
// Detect all possible environment data from User-Agents
36+
$result = $Browser->getAll($u);
37+
38+
echo '<div style="font-size:16px; font-weight:bold"><pre>';
39+
echo $u;
40+
echo '</pre></div>';
41+
42+
echo '<div style="font-size:18px; font-weight:bold"><pre>';
43+
print_r($result);
44+
echo '</pre></div>';
45+
46+
echo '<div style="font-size:16px; font-weight:bold"><pre>';
47+
echo '--------------------------------------------------------------------------------';
48+
echo '</pre></div>';
49+
50+
}
51+
52+
$time_end = microtime(true);
53+
$time_result = $time_end - $time_start;
54+
55+
echo '<p style="font-size:21px">Total execution time: '.substr($time_result,0,7).' sec.</p>';
56+
57+
?>

0 commit comments

Comments
 (0)