From d6906aa85efee00725b92389b76df4ef90c5d59e Mon Sep 17 00:00:00 2001 From: lin Date: Wed, 12 Jan 2022 12:21:33 +0800 Subject: [PATCH 1/4] add Lenovo ua regex --- .../java/cn/hutool/http/useragent/Browser.java | 2 ++ .../hutool/http/useragent/UserAgentUtilTest.java | 16 ++++++++++++++++ 2 files changed, 18 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 97de1025c..e5e7c05d1 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 @@ -47,6 +47,8 @@ public class Browser extends UserAgentInfo { new Browser("UCBrowser", "UC?Browser", "UC?Browser\\/([\\d\\w\\.\\-]+)"), // 夸克浏览器 new Browser("Quark", "Quark", Other_Version), + // 联想浏览器 + new Browser("Lenovo", "SLBrowser", "SLBrowser/([\\d\\w\\.\\-]+)"), new Browser("MSEdge", "Edge|Edg", "(?:edge|Edg|EdgA)\\/([\\d\\w\\.\\-]+)"), new Browser("Chrome", "chrome", 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 49cc4fe02..066338152 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 @@ -373,4 +373,20 @@ public class UserAgentUtilTest { Assert.assertEquals("Android", ua.getPlatform().toString()); Assert.assertTrue(ua.isMobile()); } + + @Test + public void parseLenovoTest(){ + // https://gitee.com/dromara/hutool/issues/I4MCBP + String uaStr = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36 SLBrowser/7.0.0.6241 SLBChan/30"; + final UserAgent ua = UserAgentUtil.parse(uaStr); + + Assert.assertEquals("Lenovo", ua.getBrowser().toString()); + Assert.assertEquals("7.0.0.6241", ua.getVersion()); + Assert.assertEquals("Webkit", ua.getEngine().toString()); + Assert.assertEquals("537.36", ua.getEngineVersion()); + Assert.assertEquals("Windows 10 or Windows Server 2016", ua.getOs().toString()); + Assert.assertEquals("10.0", ua.getOsVersion()); + Assert.assertEquals("Windows", ua.getPlatform().toString()); + Assert.assertFalse(ua.isMobile()); + } } From e86519d6fc92005588f9a9e48b07d7c0f79fbf54 Mon Sep 17 00:00:00 2001 From: lin Date: Wed, 12 Jan 2022 12:21:59 +0800 Subject: [PATCH 2/4] add Lenovo ua regex --- .../test/java/cn/hutool/http/useragent/UserAgentUtilTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 066338152..d675adf4d 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 @@ -376,7 +376,7 @@ public class UserAgentUtilTest { @Test public void parseLenovoTest(){ - // https://gitee.com/dromara/hutool/issues/I4MCBP + // https://gitee.com/dromara/hutool/issues/I4QBMD String uaStr = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36 SLBrowser/7.0.0.6241 SLBChan/30"; final UserAgent ua = UserAgentUtil.parse(uaStr); From d324f785d7cf236ae02437b20cc11a3b673bb669 Mon Sep 17 00:00:00 2001 From: Golden Looly Date: Fri, 14 Jan 2022 09:45:04 +0800 Subject: [PATCH 3/4] Revert "add Lenovo Browser ua regex " --- .../java/cn/hutool/http/useragent/Browser.java | 2 -- .../hutool/http/useragent/UserAgentUtilTest.java | 16 ---------------- 2 files changed, 18 deletions(-) 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 e5e7c05d1..97de1025c 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 @@ -47,8 +47,6 @@ public class Browser extends UserAgentInfo { new Browser("UCBrowser", "UC?Browser", "UC?Browser\\/([\\d\\w\\.\\-]+)"), // 夸克浏览器 new Browser("Quark", "Quark", Other_Version), - // 联想浏览器 - new Browser("Lenovo", "SLBrowser", "SLBrowser/([\\d\\w\\.\\-]+)"), new Browser("MSEdge", "Edge|Edg", "(?:edge|Edg|EdgA)\\/([\\d\\w\\.\\-]+)"), new Browser("Chrome", "chrome", 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 d675adf4d..49cc4fe02 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 @@ -373,20 +373,4 @@ public class UserAgentUtilTest { Assert.assertEquals("Android", ua.getPlatform().toString()); Assert.assertTrue(ua.isMobile()); } - - @Test - public void parseLenovoTest(){ - // https://gitee.com/dromara/hutool/issues/I4QBMD - String uaStr = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36 SLBrowser/7.0.0.6241 SLBChan/30"; - final UserAgent ua = UserAgentUtil.parse(uaStr); - - Assert.assertEquals("Lenovo", ua.getBrowser().toString()); - Assert.assertEquals("7.0.0.6241", ua.getVersion()); - Assert.assertEquals("Webkit", ua.getEngine().toString()); - Assert.assertEquals("537.36", ua.getEngineVersion()); - Assert.assertEquals("Windows 10 or Windows Server 2016", ua.getOs().toString()); - Assert.assertEquals("10.0", ua.getOsVersion()); - Assert.assertEquals("Windows", ua.getPlatform().toString()); - Assert.assertFalse(ua.isMobile()); - } } From 1049e43ff317f011cb2814715bab5a7a68e96959 Mon Sep 17 00:00:00 2001 From: = Date: Wed, 16 Feb 2022 17:27:29 +0800 Subject: [PATCH 4/4] fix swap element --- .../src/main/java/cn/hutool/core/collection/ListUtil.java | 4 ++-- .../src/test/java/cn/hutool/core/collection/ListUtilTest.java | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/hutool-core/src/main/java/cn/hutool/core/collection/ListUtil.java b/hutool-core/src/main/java/cn/hutool/core/collection/ListUtil.java index 080b1c419..b0d8bfe12 100644 --- a/hutool-core/src/main/java/cn/hutool/core/collection/ListUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/collection/ListUtil.java @@ -608,7 +608,7 @@ public class ListUtil { public static void swapTo(List list, T element, Integer targetIndex) { if (CollUtil.isNotEmpty(list)) { final int index = list.indexOf(element); - if (index > 0) { + if (index >= 0) { Collections.swap(list, index, targetIndex); } } @@ -627,7 +627,7 @@ public class ListUtil { public static void swapElement(List list, T element, T targetElement) { if (CollUtil.isNotEmpty(list)) { final int targetIndex = list.indexOf(targetElement); - if (targetIndex > 0) { + if (targetIndex >= 0) { swapTo(list, element, targetIndex); } } diff --git a/hutool-core/src/test/java/cn/hutool/core/collection/ListUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/collection/ListUtilTest.java index 5cecd5de3..937fb5917 100644 --- a/hutool-core/src/test/java/cn/hutool/core/collection/ListUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/collection/ListUtilTest.java @@ -227,5 +227,9 @@ public class ListUtilTest { ListUtil.swapElement(list, map2, map3); Map map = list.get(2); Assert.assertEquals("李四", map.get("2")); + + ListUtil.swapElement(list, map2, map1); + map = list.get(0); + Assert.assertEquals("李四", map.get("2")); } }