Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var AllTestCases = []UATestCase{ { Name: "Windows Chrome", UserAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36", ExpectedMatches: []internal.Match{internal.BrowserSafari, internal.BrowserChrome, internal.OSWindows}, ExpectedCleanVersion: "MozillaWindowsNTWinxAppleWebKitKHTMLlikeGeckoChromeSafari", ExpectedBrowser: agents.BrowserChrome, ExpectedOS: agents.OSWindows, ExpectedDevice: agents.DeviceDesktop, ExpectedVersion: "118.0.0.0", }, { Name: "Windows Chrome (WOW64)", UserAgent: "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36", ExpectedMatches: []internal.Match{internal.BrowserSafari, internal.BrowserChrome, internal.OSWindows}, ExpectedCleanVersion: "MozillaWindowsNTWOWAppleWebKitKHTMLlikeGeckoChromeSafari", ExpectedBrowser: agents.BrowserChrome, ExpectedOS: agents.OSWindows, ExpectedDevice: agents.DeviceDesktop, ExpectedVersion: "59.0.3071.115", }, { Name: "Windows IE 8", UserAgent: "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.3; GWX:RED)", ExpectedMatches: []internal.Match{internal.OSWindows, internal.BrowserIE}, ExpectedCleanVersion: "MozillacompatibleMSIEWindowsNTWOWTridentSLCCNETCLRNETCLRNETCLRMediaCenterPCNETCNETEInfoPathGWXRED", ExpectedBrowser: agents.BrowserIE, ExpectedOS: agents.OSWindows, ExpectedDevice: agents.DeviceDesktop, ExpectedVersion: "8.0", }, { Name: "Windows IE 10", UserAgent: "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)", ExpectedMatches: []internal.Match{internal.OSWindows, internal.BrowserIE}, ExpectedCleanVersion: "MozillacompatibleMSIEWindowsNTTrident", ExpectedBrowser: agents.BrowserIE, ExpectedOS: agents.OSWindows, ExpectedDevice: agents.DeviceDesktop, ExpectedVersion: "10.0", }, { Name: "Windows IE 11", UserAgent: "Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko", ExpectedMatches: []internal.Match{internal.BrowserIE, internal.OSWindows}, ExpectedCleanVersion: "MozillaWindowsNTTridentrvlikeGecko", ExpectedBrowser: agents.BrowserIE, ExpectedOS: agents.OSWindows, ExpectedDevice: agents.DeviceDesktop, ExpectedVersion: "7.0", }, { Name: "Windows IE 6", UserAgent: "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)", ExpectedMatches: []internal.Match{internal.OSWindows, internal.BrowserIE}, ExpectedCleanVersion: "MozillacompatibleMSIEWindowsNTSVNETCLR", ExpectedBrowser: agents.BrowserIE, ExpectedOS: agents.OSWindows, ExpectedDevice: agents.DeviceDesktop, ExpectedVersion: "6.0", }, { Name: "Windows Edge", UserAgent: "Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Edge/15.15063", ExpectedMatches: []internal.Match{internal.BrowserEdge, internal.BrowserSafari, internal.BrowserChrome, internal.OSWindows}, ExpectedCleanVersion: "MozillaWindowsNTAppleWebKitKHTMLlikeGeckoChromeSafariEdge", ExpectedBrowser: agents.BrowserEdge, ExpectedOS: agents.OSWindows, ExpectedDevice: agents.DeviceDesktop, ExpectedVersion: "15.15063", }, { Name: "macOS Safari", UserAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/10.1.2 Safari/604.1.38", ExpectedMatches: []internal.Match{internal.BrowserSafari, internal.TokenVersion, internal.OSMacOS}, ExpectedCleanVersion: "MozillaMacintoshIntelMacOSXAppleWebKitKHTMLlikeGeckoVersionSafari", ExpectedBrowser: agents.BrowserSafari, ExpectedOS: agents.OSMacOS, ExpectedDevice: agents.DeviceDesktop, ExpectedVersion: "10.1.2", }, { Name: "macOS Chrome", UserAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36", ExpectedMatches: []internal.Match{internal.BrowserSafari, internal.BrowserChrome, internal.OSMacOS}, ExpectedCleanVersion: "MozillaMacintoshIntelMacOSXAppleWebKitKHTMLlikeGeckoChromeSafari", ExpectedBrowser: agents.BrowserChrome, ExpectedOS: agents.OSMacOS, ExpectedDevice: agents.DeviceDesktop, ExpectedVersion: "60.0.3112.90", }, { Name: "macOS Firefox", UserAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:54.0) Gecko/20100101 Firefox/54.0", ExpectedMatches: []internal.Match{internal.BrowserFirefox, internal.OSMacOS}, ExpectedCleanVersion: "MozillaMacintoshIntelMacOSXrvGeckoFirefox", ExpectedBrowser: agents.BrowserFirefox, ExpectedOS: agents.OSMacOS, ExpectedDevice: agents.DeviceDesktop, ExpectedVersion: "54.0", }, { Name: "macOS Vivaldi", UserAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36 Vivaldi/1.92.917.39", ExpectedMatches: []internal.Match{internal.BrowserVivaldi, internal.BrowserSafari, internal.BrowserChrome, internal.OSMacOS}, ExpectedCleanVersion: "MozillaMacintoshIntelMacOSXAppleWebKitKHTMLlikeGeckoChromeSafariVivaldi", ExpectedBrowser: agents.BrowserVivaldi, ExpectedOS: agents.OSMacOS, ExpectedDevice: agents.DeviceDesktop, ExpectedVersion: "1.92.917.39", }, { Name: "macOS Edge", UserAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.309.71 Safari/537.36 Edg/79.0.309.71", ExpectedMatches: []internal.Match{internal.BrowserEdge, internal.BrowserSafari, internal.BrowserChrome, internal.OSMacOS}, ExpectedCleanVersion: "MozillaMacintoshIntelMacOSXAppleWebKitKHTMLlikeGeckoChromeSafariEdg", ExpectedBrowser: agents.BrowserEdge, ExpectedOS: agents.OSMacOS, ExpectedDevice: agents.DeviceDesktop, ExpectedVersion: "79.0.309.71", }, { Name: "macOS Safari (AppleWebKit only)", UserAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko)", ExpectedMatches: []internal.Match{internal.BrowserSafari, internal.OSMacOS}, ExpectedCleanVersion: "MozillaMacintoshIntelMacOSXAppleWebKitKHTMLlikeGecko", ExpectedBrowser: agents.BrowserSafari, ExpectedOS: agents.OSMacOS, ExpectedDevice: agents.DeviceDesktop, }, { Name: "Linux Firefox", UserAgent: "Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0", ExpectedMatches: []internal.Match{internal.BrowserFirefox, internal.OSLinux}, ExpectedCleanVersion: "MozillaXLinuxxrvGeckoFirefox", ExpectedBrowser: agents.BrowserFirefox, ExpectedOS: agents.OSLinux, ExpectedDevice: agents.DeviceDesktop, ExpectedVersion: "52.0", }, { Name: "Linux Firefox (i686)", UserAgent: "Mozilla/5.0 (X11; Linux i686; rv:119.0) Gecko/20100101 Firefox/119.0", ExpectedMatches: []internal.Match{internal.BrowserFirefox, internal.OSLinux}, ExpectedCleanVersion: "MozillaXLinuxirvGeckoFirefox", ExpectedBrowser: agents.BrowserFirefox, ExpectedOS: agents.OSLinux, ExpectedDevice: agents.DeviceDesktop, ExpectedVersion: "119.0", }, { Name: "Ubuntu Firefox", UserAgent: "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:119.0) Gecko/20100101 Firefox/119.0", ExpectedMatches: []internal.Match{internal.BrowserFirefox, internal.OSLinux, internal.DeviceDesktop}, ExpectedCleanVersion: "MozillaXUbuntuLinuxirvGeckoFirefox", ExpectedBrowser: agents.BrowserFirefox, ExpectedOS: agents.OSLinux, ExpectedDevice: agents.DeviceDesktop, ExpectedVersion: "119.0", }, { Name: "Fedora Firefox", UserAgent: "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:119.0) Gecko/20100101 Firefox/119.0", ExpectedMatches: []internal.Match{internal.BrowserFirefox, internal.OSLinux, internal.DeviceDesktop}, ExpectedCleanVersion: "MozillaXFedoraLinuxxrvGeckoFirefox", ExpectedBrowser: agents.BrowserFirefox, ExpectedOS: agents.OSLinux, ExpectedDevice: agents.DeviceDesktop, ExpectedVersion: "119.0", }, { Name: "Linux Chrome", UserAgent: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36", ExpectedMatches: []internal.Match{internal.BrowserSafari, internal.BrowserChrome, internal.OSLinux}, ExpectedCleanVersion: "MozillaXLinuxxAppleWebKitKHTMLlikeGeckoChromeSafari", ExpectedBrowser: agents.BrowserChrome, ExpectedOS: agents.OSLinux, ExpectedDevice: agents.DeviceDesktop, ExpectedVersion: "119.0.0.0", }, { Name: "iPhone Safari", UserAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 10_0 like Mac OS X) AppleWebKit/602.1.38 (KHTML, like Gecko) Version/10.0 Mobile/14A300 Safari/602.1", ExpectedMatches: []internal.Match{internal.BrowserSafari, internal.DeviceMobile, internal.TokenVersion, internal.OSIOS, internal.TokenMobileDevice}, ExpectedCleanVersion: "MozillaiPhoneCPUiPhoneOSlikeMacOSXAppleWebKitKHTMLlikeGeckoVersionMobileSafari", ExpectedBrowser: agents.BrowserSafari, ExpectedOS: agents.OSIOS, ExpectedDevice: agents.DeviceMobile, ExpectedVersion: "10.0", }, { Name: "iPhone Chrome", UserAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_2 like Mac OS X) AppleWebKit/603.2.4 (KHTML, like Gecko) CriOS/60.0.3112.89 Mobile/14F89 Safari/602.1", ExpectedMatches: []internal.Match{internal.BrowserSafari, internal.DeviceMobile, internal.BrowserChrome, internal.OSIOS, internal.TokenMobileDevice}, ExpectedCleanVersion: "MozillaiPhoneCPUiPhoneOSlikeMacOSXAppleWebKitKHTMLlikeGeckoCriOSMobileSafari", ExpectedBrowser: agents.BrowserChrome, ExpectedOS: agents.OSIOS, ExpectedDevice: agents.DeviceMobile, ExpectedVersion: "60.0.3112.89", }, { Name: "iPhone Opera", UserAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_2 like Mac OS X) AppleWebKit/603.2.4 (KHTML, like Gecko) OPiOS/14.0.0.104835 Mobile/14F89 Safari/9537.53", ExpectedMatches: []internal.Match{internal.BrowserSafari, internal.DeviceMobile, internal.BrowserOpera, internal.OSIOS, internal.TokenMobileDevice}, ExpectedCleanVersion: "MozillaiPhoneCPUiPhoneOSlikeMacOSXAppleWebKitKHTMLlikeGeckoOPiOSMobileSafari", ExpectedBrowser: agents.BrowserOpera, ExpectedOS: agents.OSIOS, ExpectedDevice: agents.DeviceMobile, ExpectedVersion: "14.0.0.104835", }, { Name: "iPhone Firefox", UserAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_2 like Mac OS X) AppleWebKit/603.2.4 (KHTML, like Gecko) FxiOS/8.1.1 Mobile/14F89 Safari/603.2.4", ExpectedMatches: []internal.Match{internal.BrowserSafari, internal.DeviceMobile, internal.BrowserFirefox, internal.OSIOS, internal.TokenMobileDevice}, ExpectedCleanVersion: "MozillaiPhoneCPUiPhoneOSlikeMacOSXAppleWebKitKHTMLlikeGeckoFxiOSMobileSafari", ExpectedBrowser: agents.BrowserFirefox, ExpectedOS: agents.OSIOS, ExpectedDevice: agents.DeviceMobile, ExpectedVersion: "8.1.1", }, { Name: "iPhone Edge", UserAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 12_1_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 EdgiOS/44.11.15 Mobile/16D57 Safari/605.1.15", ExpectedMatches: []internal.Match{internal.BrowserSafari, internal.DeviceMobile, internal.BrowserEdge, internal.TokenVersion, internal.OSIOS, internal.TokenMobileDevice}, ExpectedCleanVersion: "MozillaiPhoneCPUiPhoneOSlikeMacOSXAppleWebKitKHTMLlikeGeckoVersionEdgiOSMobileSafari", ExpectedBrowser: agents.BrowserEdge, ExpectedOS: agents.OSIOS, ExpectedDevice: agents.DeviceMobile, ExpectedVersion: "44.11.15", }, { Name: "iPhone Safari (No Version token)", UserAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 17_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148", ExpectedMatches: []internal.Match{internal.DeviceMobile, internal.BrowserSafari, internal.OSIOS, internal.TokenMobileDevice}, ExpectedCleanVersion: "MozillaiPhoneCPUiPhoneOSlikeMacOSXAppleWebKitKHTMLlikeGeckoMobile", ExpectedBrowser: agents.BrowserSafari, ExpectedOS: agents.OSIOS, ExpectedDevice: agents.DeviceMobile, }, { Name: "iPhone Edge (Version after browser)", UserAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) EdgiOS/125.0.2535.87 Version/17.0 Mobile/15E148 Safari/604.1", ExpectedMatches: []internal.Match{internal.BrowserSafari, internal.DeviceMobile, internal.TokenVersion, internal.BrowserEdge, internal.OSIOS, internal.TokenMobileDevice}, ExpectedCleanVersion: "MozillaiPhoneCPUiPhoneOSlikeMacOSXAppleWebKitKHTMLlikeGeckoEdgiOSVersionMobileSafari", ExpectedBrowser: agents.BrowserEdge, ExpectedOS: agents.OSIOS, ExpectedDevice: agents.DeviceMobile, ExpectedVersion: "125.0.2535.87", }, { Name: "iPad Safari", UserAgent: "Mozilla/5.0 (iPad; CPU OS 10_0 like Mac OS X) AppleWebKit/602.1.38 (KHTML, like Gecko) Version/10.0 Mobile/14A300 Safari/602.1", ExpectedMatches: []internal.Match{internal.BrowserSafari, internal.DeviceMobile, internal.TokenVersion, internal.OSIOS, internal.DeviceTablet}, ExpectedCleanVersion: "MozillaiPadCPUOSlikeMacOSXAppleWebKitKHTMLlikeGeckoVersionMobileSafari", ExpectedBrowser: agents.BrowserSafari, ExpectedOS: agents.OSIOS, ExpectedDevice: agents.DeviceTablet, ExpectedVersion: "10.0", }, { Name: "iPad Chrome", UserAgent: "Mozilla/5.0 (iPad; CPU OS 17_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/119.0.6045.169 Mobile/15E148 Safari/604.1", ExpectedMatches: []internal.Match{internal.BrowserSafari, internal.DeviceMobile, internal.BrowserChrome, internal.OSIOS, internal.DeviceTablet}, ExpectedCleanVersion: "MozillaiPadCPUOSlikeMacOSXAppleWebKitKHTMLlikeGeckoCriOSMobileSafari", ExpectedBrowser: agents.BrowserChrome, ExpectedOS: agents.OSIOS, ExpectedDevice: agents.DeviceTablet, ExpectedVersion: "119.0.6045.169", }, { Name: "iPad Firefox", UserAgent: "Mozilla/5.0 (iPad; CPU OS 17_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/119.0 Mobile/15E148 Safari/605.1.15", ExpectedMatches: []internal.Match{internal.BrowserSafari, internal.DeviceMobile, internal.BrowserFirefox, internal.OSIOS, internal.DeviceTablet}, ExpectedCleanVersion: "MozillaiPadCPUOSlikeMacOSXAppleWebKitKHTMLlikeGeckoFxiOSMobileSafari", ExpectedBrowser: agents.BrowserFirefox, ExpectedOS: agents.OSIOS, ExpectedDevice: agents.DeviceTablet, ExpectedVersion: "119.0", }, { Name: "Android Samsung Browser", UserAgent: "Mozilla/5.0 (Linux; Android 5.0.2; SAMSUNG SM-G925F Build/LRX22G) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36", ExpectedMatches: []internal.Match{internal.BrowserSafari, internal.DeviceMobile, internal.BrowserChrome, internal.BrowserSamsung, internal.OSAndroid, internal.OSLinux}, ExpectedCleanVersion: "MozillaLinuxAndroidAppleWebKitKHTMLlikeGeckoSamsungBrowserChromeMobileSafari", ExpectedBrowser: agents.BrowserSamsung, ExpectedOS: agents.OSAndroid, ExpectedDevice: agents.DeviceMobile, ExpectedVersion: "4.0", }, { Name: "Android Browser", UserAgent: "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Version/4.0 Mobile Safari/535.19", ExpectedMatches: []internal.Match{internal.BrowserSafari, internal.DeviceMobile, internal.TokenVersion, internal.TokenMobileDevice, internal.OSAndroid, internal.OSLinux}, ExpectedCleanVersion: "MozillaLinuxAndroidAppleWebKitKHTMLlikeGeckoVersionMobileSafari", ExpectedBrowser: agents.BrowserAndroid, ExpectedOS: agents.OSAndroid, ExpectedDevice: agents.DeviceMobile, ExpectedVersion: "4.0", }, { Name: "Android Browser (U;)", UserAgent: "Mozilla/5.0 (Linux; U; Android 4.0.3; ko-kr; LG-L160L Build/IML74K) AppleWebkit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30", ExpectedMatches: []internal.Match{internal.BrowserSafari, internal.DeviceMobile, internal.TokenVersion, internal.TokenMobileDevice, internal.OSAndroid, internal.OSLinux}, ExpectedCleanVersion: "MozillaLinuxUAndroidAppleWebkitKHTMLlikeGeckoVersionMobileSafari", ExpectedBrowser: agents.BrowserAndroid, ExpectedOS: agents.OSAndroid, ExpectedDevice: agents.DeviceMobile, ExpectedVersion: "4.0", }, { Name: "Android Chrome", UserAgent: "Mozilla/5.0 (Linux; Android 4.3; C5502 Build/10.4.1.B.0.101) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.102 Mobile Safari/537.36", ExpectedMatches: []internal.Match{internal.BrowserSafari, internal.DeviceMobile, internal.BrowserChrome, internal.OSAndroid, internal.OSLinux}, ExpectedCleanVersion: "MozillaLinuxAndroidAppleWebKitKHTMLlikeGeckoChromeMobileSafari", ExpectedBrowser: agents.BrowserChrome, ExpectedOS: agents.OSAndroid, ExpectedDevice: agents.DeviceMobile, ExpectedVersion: "38.0.2125.102", }, { Name: "Android Chrome (Pixel)", UserAgent: "Mozilla/5.0 (Linux; Android 13; Pixel 7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Mobile Safari/537.36", ExpectedMatches: []internal.Match{internal.BrowserSafari, internal.DeviceMobile, internal.BrowserChrome, internal.OSAndroid, internal.OSLinux}, ExpectedCleanVersion: "MozillaLinuxAndroidAppleWebKitKHTMLlikeGeckoChromeMobileSafari", ExpectedBrowser: agents.BrowserChrome, ExpectedOS: agents.OSAndroid, ExpectedDevice: agents.DeviceMobile, ExpectedVersion: "112.0.0.0", }, { Name: "Android Firefox (Plain variant)", UserAgent: "Mozilla/5.0 (Android 10; Mobile; rv:130.0) Gecko/130.0 Firefox/130.0", ExpectedMatches: []internal.Match{internal.BrowserFirefox, internal.DeviceMobile, internal.OSAndroid}, ExpectedCleanVersion: "MozillaAndroidGeckoFirefox", ExpectedBrowser: agents.BrowserFirefox, ExpectedOS: agents.OSAndroid, ExpectedDevice: agents.DeviceMobile, ExpectedVersion: "130.0", }, { Name: "Googlebot", UserAgent: "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)", ExpectedMatches: []internal.Match{internal.DeviceBot}, ExpectedCleanVersion: "MozillacompatibleGooglebothttpwwwgooglecombothtml", ExpectedDevice: agents.DeviceBot, }, { Name: "Bingbot", UserAgent: "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)", ExpectedMatches: []internal.Match{internal.DeviceBot}, ExpectedCleanVersion: "Mozillacompatiblebingbothttpwwwbingcombingbothtm", ExpectedDevice: agents.DeviceBot, }, { Name: "Yahoobot", UserAgent: "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)", ExpectedMatches: []internal.Match{internal.DeviceBot}, ExpectedCleanVersion: "MozillacompatibleYahooSlurphttphelpyahoocomhelpusysearchslurp", ExpectedDevice: agents.DeviceBot, }, { Name: "YandexBot", UserAgent: "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)", ExpectedMatches: []internal.Match{internal.DeviceBot}, ExpectedCleanVersion: "MozillacompatibleYandexBothttpyandexcombots", ExpectedDevice: agents.DeviceBot, }, { Name: "Bingbot (Chrome)", UserAgent: "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) Chrome/112.0.0.0 Safari/537.36", ExpectedMatches: []internal.Match{internal.BrowserSafari, internal.BrowserChrome, internal.DeviceBot}, ExpectedCleanVersion: "MozillaAppleWebKitKHTMLlikeGeckocompatiblebingbothttpwwwbingcombingbothtmChromeSafari", ExpectedDevice: agents.DeviceBot, ExpectedBrowser: agents.BrowserChrome, ExpectedVersion: "112.0.0.0", }, { Name: "Headless Chrome Bot", UserAgent: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/125.0.6422.76 Safari/537.36", ExpectedMatches: []internal.Match{internal.BrowserSafari, internal.BrowserChrome, internal.DeviceBot, internal.OSLinux}, ExpectedCleanVersion: "MozillaXLinuxxAppleWebKitKHTMLlikeGeckoHeadlessChromeSafari", ExpectedDevice: agents.DeviceBot, ExpectedBrowser: agents.BrowserChrome, ExpectedOS: agents.OSLinux, ExpectedVersion: "125.0.6422.76", }, { Name: "Amazon QBusiness Bot", UserAgent: "amazon-QBusiness", ExpectedMatches: []internal.Match{internal.DeviceBot}, ExpectedCleanVersion: "amazonQBusiness", ExpectedDevice: agents.DeviceBot, }, { Name: "Android Yandex Browser", UserAgent: "Mozilla/5.0 (Linux; arm_64; Android 13) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.230 YaBrowser/24.1.7.27.00 SA/5 Mobile Safari/537.36", ExpectedMatches: []internal.Match{internal.BrowserSafari, internal.DeviceMobile, internal.BrowserYandex, internal.BrowserChrome, internal.OSAndroid, internal.OSLinux}, ExpectedCleanVersion: "MozillaLinuxarmAndroidAppleWebKitKHTMLlikeGeckoChromeYaBrowserSAMobileSafari", ExpectedBrowser: agents.BrowserYandex, ExpectedOS: agents.OSAndroid, ExpectedDevice: agents.DeviceMobile, ExpectedVersion: "24.1.7.27.00", }, { Name: "Safari UIWebView", UserAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12F70", ExpectedMatches: []internal.Match{internal.DeviceMobile, internal.BrowserSafari, internal.OSIOS, internal.TokenMobileDevice}, ExpectedCleanVersion: "MozillaiPhoneCPUiPhoneOSlikeMacOSXAppleWebKitKHTMLlikeGeckoMobile", ExpectedBrowser: agents.BrowserSafari, ExpectedOS: agents.OSIOS, ExpectedDevice: agents.DeviceMobile, }, { Name: "Linux Falkon Browser", UserAgent: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Falkon/24.02.2 QtWebEngine/5.15.16 Chrome/87.0.4280.144 Safari/537.36", ExpectedMatches: []internal.Match{internal.BrowserSafari, internal.BrowserChrome, internal.BrowserFalkon, internal.OSLinux}, ExpectedCleanVersion: "MozillaXLinuxxAppleWebKitKHTMLlikeGeckoFalkonQtWebEngineChromeSafari", ExpectedBrowser: agents.BrowserFalkon, ExpectedOS: agents.OSLinux, ExpectedDevice: agents.DeviceDesktop, ExpectedVersion: "24.02.2", }, { Name: "Android Firefox", UserAgent: "Mozilla/5.0 (Android 14; Mobile; rv:123.0) Gecko/123.0 Firefox/123.0", ExpectedMatches: []internal.Match{internal.BrowserFirefox, internal.DeviceMobile, internal.OSAndroid}, ExpectedCleanVersion: "MozillaAndroidGeckoFirefox", ExpectedBrowser: agents.BrowserFirefox, ExpectedOS: agents.OSAndroid, ExpectedDevice: agents.DeviceMobile, ExpectedVersion: "123.0", }, { Name: "Linux ARM Chrome", UserAgent: "Mozilla/5.0 (X11; Linux aarch64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36", ExpectedMatches: []internal.Match{internal.BrowserSafari, internal.BrowserChrome, internal.OSLinux}, ExpectedCleanVersion: "MozillaXLinuxaarchAppleWebKitKHTMLlikeGeckoChromeSafari", ExpectedBrowser: agents.BrowserChrome, ExpectedOS: agents.OSLinux, ExpectedDevice: agents.DeviceDesktop, ExpectedVersion: "88.0.4324.182", }, { Name: "Samsung TV", UserAgent: "Mozilla/5.0 (SMART-TV; Linux; Tizen 2.1) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/2.1 Chrome/48.0.2564.116 TV Safari/537.36", ExpectedMatches: []internal.Match{internal.BrowserSafari, internal.DeviceTV, internal.BrowserChrome, internal.BrowserSamsung, internal.OSLinux}, ExpectedCleanVersion: "MozillaSMARTTVLinuxTizenAppleWebKitKHTMLlikeGeckoSamsungBrowserChromeTVSafari", ExpectedBrowser: agents.BrowserSamsung, ExpectedOS: agents.OSLinux, ExpectedDevice: agents.DeviceTV, ExpectedVersion: "2.1", }, { Name: "Samsung Browser", UserAgent: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/26.0 Chrome/122.0.0.0 Safari/537.36", ExpectedMatches: []internal.Match{internal.BrowserSafari, internal.BrowserChrome, internal.BrowserSamsung, internal.OSLinux}, ExpectedCleanVersion: "MozillaXLinuxxAppleWebKitKHTMLlikeGeckoSamsungBrowserChromeSafari", ExpectedBrowser: agents.BrowserSamsung, ExpectedOS: agents.OSLinux, ExpectedDevice: agents.DeviceDesktop, ExpectedVersion: "26.0", }, { Name: "OpenBSD Firefox", UserAgent: "Mozilla/5.0 (X11; OpenBSD amd64; rv:57.0) Gecko/20100101 Firefox/57.0", ExpectedMatches: []internal.Match{internal.BrowserFirefox, internal.OSOpenBSD}, ExpectedCleanVersion: "MozillaXOpenBSDamdrvGeckoFirefox", ExpectedBrowser: agents.BrowserFirefox, ExpectedOS: agents.OSOpenBSD, ExpectedDevice: agents.DeviceDesktop, ExpectedVersion: "57.0", }, { Name: "PycURL Bot", UserAgent: "PycURL/7.45.6 libcurl/8.12.1-DEV nghttp2/1.64.0", ExpectedMatches: []internal.Match{internal.DeviceBot}, ExpectedCleanVersion: "PycURLlibcurlDEVnghttp", ExpectedDevice: agents.DeviceBot, }, { Name: "Python Aiohttp Bot", UserAgent: "Python/3.13 aiohttp/3.12.15", ExpectedMatches: []internal.Match{internal.DeviceBot}, ExpectedCleanVersion: "Pythonaiohttp", ExpectedDevice: agents.DeviceBot, }, { Name: "Python-Requests Bot", UserAgent: "python-requests/2.32.3", ExpectedMatches: []internal.Match{internal.DeviceBot}, ExpectedCleanVersion: "pythonrequests", ExpectedDevice: agents.DeviceBot, }, { Name: "Python-Urllib3 Bot", UserAgent: "python-urllib3/2.3.0", ExpectedMatches: []internal.Match{internal.DeviceBot}, ExpectedCleanVersion: "pythonurllib", ExpectedDevice: agents.DeviceBot, }, { Name: "Python-Httpx Bot", UserAgent: "python-httpx/0.28.1", ExpectedMatches: []internal.Match{internal.DeviceBot}, ExpectedCleanVersion: "pythonhttpx", ExpectedDevice: agents.DeviceBot, }, { Name: "Android Huawei Browser", UserAgent: "Mozilla/5.0 (Linux; Android 10; ART-L29; HMSCore 6.10.0.311) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.88 HuaweiBrowser/13.0.4.302 Mobile Safari/537.36", ExpectedMatches: []internal.Match{internal.BrowserSafari, internal.DeviceMobile, internal.BrowserHuawei, internal.TokenMobileDevice, internal.BrowserChrome, internal.OSAndroid, internal.OSLinux}, ExpectedCleanVersion: "MozillaLinuxAndroidAppleWebKitKHTMLlikeGeckoChromeHuaweiBrowserMobileSafari", ExpectedBrowser: agents.BrowserHuawei, ExpectedOS: agents.OSAndroid, ExpectedDevice: agents.DeviceMobile, ExpectedVersion: "13.0.4.302", }, { Name: "Android Huawei Browser (WebView build)", UserAgent: "Mozilla/5.0 (Linux; Android 10; ART-L29 Build/HUAWEIART-L29; wv) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.93 Mobile Safari/537.36 HuaweiBrowser/13.0.4.302 HMSCore/6.10.0.311", ExpectedMatches: []internal.Match{internal.BrowserHuawei, internal.TokenMobileDevice, internal.BrowserSafari, internal.DeviceMobile, internal.BrowserChrome, internal.OSAndroid, internal.OSLinux}, ExpectedCleanVersion: "MozillaLinuxAndroidAppleWebKitKHTMLlikeGeckoChromeMobileSafariHuaweiBrowserHMSCore", ExpectedBrowser: agents.BrowserHuawei, ExpectedOS: agents.OSAndroid, ExpectedDevice: agents.DeviceMobile, ExpectedVersion: "13.0.4.302", }, { Name: "HarmonyOS Huawei Browser", UserAgent: "Mozilla/5.0 (Linux; Android 10; HarmonyOS; CLT-AL00; HMSCore 6.10.0.312; GMSCore 22.15.14) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.88 HuaweiBrowser/13.0.5.302 Mobile Safari/537.36", ExpectedMatches: []internal.Match{internal.BrowserSafari, internal.DeviceMobile, internal.BrowserHuawei, internal.TokenMobileDevice, internal.BrowserChrome, internal.OSAndroid, internal.OSLinux}, ExpectedCleanVersion: "MozillaLinuxAndroidAppleWebKitKHTMLlikeGeckoChromeHuaweiBrowserMobileSafari", ExpectedBrowser: agents.BrowserHuawei, ExpectedOS: agents.OSAndroid, ExpectedDevice: agents.DeviceMobile, ExpectedVersion: "13.0.5.302", }, { Name: "OpenHarmony Huawei Browser", UserAgent: "Mozilla/5.0 (Phone; OpenHarmony 5.0; HarmonyOS 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 ArkWeb/4.1.6.1 Mobile HuaweiBrowser/5.1.5.330", ExpectedMatches: []internal.Match{internal.BrowserHuawei, internal.TokenMobileDevice, internal.DeviceMobile, internal.BrowserSafari, internal.BrowserChrome}, ExpectedCleanVersion: "MozillaPhoneOpenHarmonyHarmonyOSAppleWebKitKHTMLlikeGeckoChromeSafariArkWebMobileHuaweiBrowser", ExpectedBrowser: agents.BrowserHuawei, ExpectedOS: "", ExpectedDevice: agents.DeviceMobile, ExpectedVersion: "5.1.5.330", }, { Name: "Android Huawei Browser (Version token, no Chrome)", UserAgent: "Mozilla/5.0 (Linux; Android 13; ALN-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 HuaweiBrowser/13.0.6.300 Mobile Safari/537.36", ExpectedMatches: []internal.Match{internal.BrowserSafari, internal.DeviceMobile, internal.BrowserHuawei, internal.TokenMobileDevice, internal.TokenVersion, internal.OSAndroid, internal.OSLinux}, ExpectedCleanVersion: "MozillaLinuxAndroidAppleWebKitKHTMLlikeGeckoVersionHuaweiBrowserMobileSafari", ExpectedBrowser: agents.BrowserHuawei, ExpectedOS: agents.OSAndroid, ExpectedDevice: agents.DeviceMobile, ExpectedVersion: "13.0.6.300", }, }
AllTestCases contains all the comprehensive test cases for the user agent parser.
Functions ¶
This section is empty.
Types ¶
Click to show internal directories.
Click to hide internal directories.