Browser 中添加一个新的 Android Browser ,表示 Android 系统原生的浏览器,修复原生浏览器被错误的解析成 Safari 了。并添加两个手机的测试用例。 fixed #974

This commit is contained in:
Rory Ye 2020-07-20 12:33:26 +08:00 committed by 叶顶富
parent b58f98eb95
commit 4923b87fc8
2 changed files with 27 additions and 0 deletions

View File

@ -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), //

View File

@ -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";