From 4923b87fc89c0e9d6266a4a0894d23eed6ec59d5 Mon Sep 17 00:00:00 2001 From: Rory Ye Date: Mon, 20 Jul 2020 12:33:26 +0800 Subject: [PATCH] =?UTF-8?q?Browser=20=E4=B8=AD=E6=B7=BB=E5=8A=A0=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E6=96=B0=E7=9A=84=20Android=20Browser=20=EF=BC=8C?= =?UTF-8?q?=E8=A1=A8=E7=A4=BA=20Android=20=E7=B3=BB=E7=BB=9F=E5=8E=9F?= =?UTF-8?q?=E7=94=9F=E7=9A=84=E6=B5=8F=E8=A7=88=E5=99=A8=EF=BC=8C=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E5=8E=9F=E7=94=9F=E6=B5=8F=E8=A7=88=E5=99=A8=E8=A2=AB?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E7=9A=84=E8=A7=A3=E6=9E=90=E6=88=90=20Safari?= =?UTF-8?q?=20=E4=BA=86=E3=80=82=E5=B9=B6=E6=B7=BB=E5=8A=A0=E4=B8=A4?= =?UTF-8?q?=E4=B8=AA=E6=89=8B=E6=9C=BA=E7=9A=84=E6=B5=8B=E8=AF=95=E7=94=A8?= =?UTF-8?q?=E4=BE=8B=E3=80=82=20fixed=20#974?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/hutool/http/useragent/Browser.java | 1 + .../http/useragent/UserAgentUtilTest.java | 26 +++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/hutool-http/src/main/java/cn/hutool/http/useragent/Browser.java b/hutool-http/src/main/java/cn/hutool/http/useragent/Browser.java index fd73bdd7a..d9b24fa58 100644 --- a/hutool-http/src/main/java/cn/hutool/http/useragent/Browser.java +++ b/hutool-http/src/main/java/cn/hutool/http/useragent/Browser.java @@ -27,6 +27,7 @@ public class Browser extends UserAgentInfo { new Browser("Chrome", "chrome", "chrome\\/([\\d\\w\\.\\-]+)"), // new Browser("Firefox", "firefox", Other_Version), // new Browser("IEMobile", "iemobile", Other_Version), // + new Browser("Android Browser", "android", "version\\/([\\d\\w\\.\\-]+)"), // new Browser("Safari", "safari", "version\\/([\\d\\w\\.\\-]+)"), // new Browser("Opera", "opera", Other_Version), // new Browser("Konqueror", "konqueror", Other_Version), // diff --git a/hutool-http/src/test/java/cn/hutool/http/useragent/UserAgentUtilTest.java b/hutool-http/src/test/java/cn/hutool/http/useragent/UserAgentUtilTest.java index f79f88b60..fb4471a97 100644 --- a/hutool-http/src/test/java/cn/hutool/http/useragent/UserAgentUtilTest.java +++ b/hutool-http/src/test/java/cn/hutool/http/useragent/UserAgentUtilTest.java @@ -46,6 +46,32 @@ public class UserAgentUtilTest { Assert.assertTrue(ua.isMobile()); } + @Test + public void parseHuaweiPhoneWithNativeBrowserTest() { + String uaString = "Mozilla/5.0 (Linux; Android 10; EML-AL00 Build/HUAWEIEML-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Mobile Safari/537.36"; + UserAgent ua = UserAgentUtil.parse(uaString); + Assert.assertEquals("Android Browser", ua.getBrowser().toString()); + Assert.assertEquals("4.0", ua.getVersion()); + Assert.assertEquals("Webkit", ua.getEngine().toString()); + Assert.assertEquals("537.36", ua.getEngineVersion()); + Assert.assertEquals("Android", ua.getOs().toString()); + Assert.assertEquals("Android", ua.getPlatform().toString()); + Assert.assertTrue(ua.isMobile()); + } + + @Test + public void parseSamsungPhoneWithNativeBrowserTest() { + String uaString = "Dalvik/2.1.0 (Linux; U; Android 9; SM-G950U Build/PPR1.180610.011)"; + UserAgent ua = UserAgentUtil.parse(uaString); + Assert.assertEquals("Android Browser", ua.getBrowser().toString()); + Assert.assertNull(ua.getVersion()); + Assert.assertEquals("Unknown", ua.getEngine().toString()); + Assert.assertNull(ua.getEngineVersion()); + Assert.assertEquals("Android", ua.getOs().toString()); + Assert.assertEquals("Android", ua.getPlatform().toString()); + Assert.assertTrue(ua.isMobile()); + } + @Test public void parseWindows10WithChromeTest() { String uaStr = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36";