From ba00f030266045c76aabd6ab22c04860b4977b1b Mon Sep 17 00:00:00 2001 From: Looly Date: Thu, 23 Sep 2021 17:05:06 +0800 Subject: [PATCH] fix test and regex --- CHANGELOG.md | 3 +- .../cn/hutool/http/useragent/Browser.java | 10 ++-- .../java/cn/hutool/json/JSONArrayTest.java | 6 +- .../java/cn/hutool/json/JSONObjectTest.java | 7 +++ .../java/cn/hutool/json/JSONUtilTest.java | 7 --- .../java/cn/hutool/json/test/bean/ADT.java | 12 +--- .../java/cn/hutool/json/test/bean/Exam.java | 58 +------------------ .../cn/hutool/json/test/bean/KeyBean.java | 21 +------ .../java/cn/hutool/json/test/bean/Price.java | 14 ++--- .../src/main/java/cn/hutool/jwt/JWT.java | 4 +- .../main/java/cn/hutool/jwt/JWTValidator.java | 10 ++-- .../java/cn/hutool/jwt/JWTSignerTest.java | 7 +++ .../test/java/cn/hutool/jwt/JWTUtilTest.java | 31 ++++++++++ 13 files changed, 74 insertions(+), 116 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3c76f27fa..330b7d533 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,10 +3,11 @@ ------------------------------------------------------------------------------------------------------------- -# 5.7.14 (2021-09-22) +# 5.7.14 (2021-09-23) ### 🐣新特性 * 【extra 】 修复HttpCookie设置cookies的方法,不符合RFC6265规范问题(issue#I4B70D@Gitee) +* 【http 】 优化Browser版本正则判断 ### 🐞Bug修复 * 【http 】 修复HttpCookie设置cookies的方法,不符合RFC6265规范问题(pr#418@Gitee) 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 9979ef4b4..95a12eff1 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 @@ -32,9 +32,9 @@ public class Browser extends UserAgentInfo { // 企业微信 企业微信使用微信浏览器内核,会包含 MicroMessenger 所以要放在前面 new Browser("wxwork", "wxwork", "wxwork\\/([\\d\\w\\.\\-]+)"), // 微信 - new Browser("MicroMessenger", "MicroMessenger", "MicroMessenger\\/([\\d\\w\\.\\-]+)"), + new Browser("MicroMessenger", "MicroMessenger", Other_Version), // 微信小程序 - new Browser("miniProgram", "miniProgram", "miniProgram\\/([\\d\\w\\.\\-]+)"), + new Browser("miniProgram", "miniProgram", Other_Version), // QQ浏览器 new Browser("QQBrowser", "MQQBrowser", "MQQBrowser\\/([\\d\\w\\.\\-]+)"), // 钉钉内置浏览器 @@ -46,10 +46,10 @@ public class Browser extends UserAgentInfo { // UC浏览器 new Browser("UCBrowser", "UC?Browser", "UC?Browser\\/([\\d\\w\\.\\-]+)"), // 夸克浏览器 - new Browser("Quark", "Quark", "Quark\\/([\\d\\w\\.\\-]+)"), + new Browser("Quark", "Quark", Other_Version), new Browser("MSEdge", "Edge|Edg", "(?:edge|Edg)\\/([\\d\\w\\.\\-]+)"), - new Browser("Chrome", "chrome", "chrome\\/([\\d\\w\\.\\-]+)"), + new Browser("Chrome", "chrome", Other_Version), new Browser("Firefox", "firefox", Other_Version), new Browser("IEMobile", "iemobile", Other_Version), new Browser("Android Browser", "android", "version\\/([\\d\\w\\.\\-]+)"), @@ -66,7 +66,7 @@ public class Browser extends UserAgentInfo { new Browser("Evolution", "evolution", Other_Version), new Browser("MSIE", "msie", "msie ([\\d\\w\\.\\-]+)"), new Browser("MSIE11", "rv:11", "rv:([\\d\\w\\.\\-]+)"), - new Browser("Gabble", "Gabble", "Gabble\\/([\\d\\w\\.\\-]+)"), + new Browser("Gabble", "Gabble", Other_Version), new Browser("Yammer Desktop", "AdobeAir", "([\\d\\w\\.\\-]+)\\/Yammer"), new Browser("Yammer Mobile", "Yammer[\\s]+([\\d\\w\\.\\-]+)", "Yammer[\\s]+([\\d\\w\\.\\-]+)"), new Browser("Apache HTTP Client", "Apache\\\\-HttpClient", "Apache\\-HttpClient\\/([\\d\\w\\.\\-]+)"), diff --git a/hutool-json/src/test/java/cn/hutool/json/JSONArrayTest.java b/hutool-json/src/test/java/cn/hutool/json/JSONArrayTest.java index 154948ed3..caf4c18ab 100644 --- a/hutool-json/src/test/java/cn/hutool/json/JSONArrayTest.java +++ b/hutool-json/src/test/java/cn/hutool/json/JSONArrayTest.java @@ -4,7 +4,6 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.ListUtil; import cn.hutool.core.convert.ConvertException; import cn.hutool.core.io.FileUtil; -import cn.hutool.core.lang.Console; import cn.hutool.core.lang.Dict; import cn.hutool.core.lang.TypeReference; import cn.hutool.core.util.CharsetUtil; @@ -13,7 +12,6 @@ import cn.hutool.json.test.bean.JsonNode; import cn.hutool.json.test.bean.KeyBean; import lombok.Data; import org.junit.Assert; -import org.junit.Ignore; import org.junit.Test; import java.util.ArrayList; @@ -84,7 +82,6 @@ public class JSONArrayTest { } @Test - @Ignore public void parseBeanListTest() { KeyBean b1 = new KeyBean(); b1.setAkey("aValue1"); @@ -96,7 +93,8 @@ public class JSONArrayTest { ArrayList list = CollUtil.newArrayList(b1, b2); JSONArray jsonArray = JSONUtil.parseArray(list); - Console.log(jsonArray); + Assert.assertEquals("aValue1", jsonArray.getJSONObject(0).getStr("akey")); + Assert.assertEquals("bValue2", jsonArray.getJSONObject(1).getStr("bkey")); } @Test diff --git a/hutool-json/src/test/java/cn/hutool/json/JSONObjectTest.java b/hutool-json/src/test/java/cn/hutool/json/JSONObjectTest.java index 2fb9d6373..9125d907a 100644 --- a/hutool-json/src/test/java/cn/hutool/json/JSONObjectTest.java +++ b/hutool-json/src/test/java/cn/hutool/json/JSONObjectTest.java @@ -588,4 +588,11 @@ public class JSONObjectTest { jsonObject.accumulate("key1", "value3"); Assert.assertEquals("{\"key1\":[\"value1\",\"value2\",\"value3\"]}", jsonObject.toString()); } + + @Test + public void putByPathTest() { + JSONObject json = new JSONObject(); + json.putByPath("aa.bb", "BB"); + Assert.assertEquals("{\"aa\":{\"bb\":\"BB\"}}", json.toString()); + } } diff --git a/hutool-json/src/test/java/cn/hutool/json/JSONUtilTest.java b/hutool-json/src/test/java/cn/hutool/json/JSONUtilTest.java index 66fee7cc2..262094eaa 100644 --- a/hutool-json/src/test/java/cn/hutool/json/JSONUtilTest.java +++ b/hutool-json/src/test/java/cn/hutool/json/JSONUtilTest.java @@ -143,13 +143,6 @@ public class JSONUtilTest { // Assert.assertEquals("{\"age\":18,\"gender\":\"男\"}", user.getProp()); } - @Test - public void putByPathTest() { - JSONObject json = new JSONObject(); - json.putByPath("aa.bb", "BB"); - Assert.assertEquals("{\"aa\":{\"bb\":\"BB\"}}", json.toString()); - } - @Test public void getStrTest() { String html = "{\"name\":\"Something must have been changed since you leave\"}"; diff --git a/hutool-json/src/test/java/cn/hutool/json/test/bean/ADT.java b/hutool-json/src/test/java/cn/hutool/json/test/bean/ADT.java index 107751fc0..b02d4e250 100644 --- a/hutool-json/src/test/java/cn/hutool/json/test/bean/ADT.java +++ b/hutool-json/src/test/java/cn/hutool/json/test/bean/ADT.java @@ -1,16 +1,10 @@ package cn.hutool.json.test.bean; +import lombok.Data; + import java.util.List; +@Data public class ADT { - private List BookingCode; - - public void setBookingCode(List BookingCode) { - this.BookingCode = BookingCode; - } - - public List getBookingCode() { - return BookingCode; - } } diff --git a/hutool-json/src/test/java/cn/hutool/json/test/bean/Exam.java b/hutool-json/src/test/java/cn/hutool/json/test/bean/Exam.java index c4dec487d..150fd7105 100644 --- a/hutool-json/src/test/java/cn/hutool/json/test/bean/Exam.java +++ b/hutool-json/src/test/java/cn/hutool/json/test/bean/Exam.java @@ -1,7 +1,8 @@ package cn.hutool.json.test.bean; -import java.util.Arrays; +import lombok.Data; +@Data public class Exam { private String id; private String examNumber; @@ -9,59 +10,4 @@ public class Exam { private Seq[] answerArray; private String isRight; private String isSubject; - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getExamNumber() { - return examNumber; - } - - public void setExamNumber(String examNumber) { - this.examNumber = examNumber; - } - - public String getIsAnswer() { - return isAnswer; - } - - public void setIsAnswer(String isAnswer) { - this.isAnswer = isAnswer; - } - - public Seq[] getAnswerArray() { - return answerArray; - } - - public void setAnswerArray(Seq[] answerArray) { - this.answerArray = answerArray; - } - - public String getIsRight() { - return isRight; - } - - public void setIsRight(String isRight) { - this.isRight = isRight; - } - - public String getIsSubject() { - return isSubject; - } - - public void setIsSubject(String isSubject) { - this.isSubject = isSubject; - } - - @Override - public String toString() { - return "Exam [id=" + id + ", examNumber=" + examNumber + ", isAnswer=" + isAnswer + ", answerArray=" + Arrays.toString(answerArray) + ", isRight=" + isRight + ", isSubject=" + isSubject + "]"; - } - - } diff --git a/hutool-json/src/test/java/cn/hutool/json/test/bean/KeyBean.java b/hutool-json/src/test/java/cn/hutool/json/test/bean/KeyBean.java index 8698d91b6..cf297f77c 100644 --- a/hutool-json/src/test/java/cn/hutool/json/test/bean/KeyBean.java +++ b/hutool-json/src/test/java/cn/hutool/json/test/bean/KeyBean.java @@ -1,24 +1,9 @@ package cn.hutool.json.test.bean; +import lombok.Data; + +@Data public class KeyBean{ private String akey; private String bkey; - - public String getAkey() { - return akey; - } - public void setAkey(String akey) { - this.akey = akey; - } - public String getBkey() { - return bkey; - } - public void setBkey(String bkey) { - this.bkey = bkey; - } - - @Override - public String toString() { - return "KeyBean [akey=" + akey + ", bkey=" + bkey + "]"; - } } diff --git a/hutool-json/src/test/java/cn/hutool/json/test/bean/Price.java b/hutool-json/src/test/java/cn/hutool/json/test/bean/Price.java index a11126ae6..3a92e3238 100644 --- a/hutool-json/src/test/java/cn/hutool/json/test/bean/Price.java +++ b/hutool-json/src/test/java/cn/hutool/json/test/bean/Price.java @@ -1,16 +1,10 @@ package cn.hutool.json.test.bean; +import lombok.Data; + import java.util.List; +@Data public class Price { - private List> ADT; - - public void setADT(List> ADT) { - this.ADT = ADT; - } - - public List> getADT() { - return ADT; - } -} \ No newline at end of file +} diff --git a/hutool-jwt/src/main/java/cn/hutool/jwt/JWT.java b/hutool-jwt/src/main/java/cn/hutool/jwt/JWT.java index ae61ac017..7e2708fa4 100644 --- a/hutool-jwt/src/main/java/cn/hutool/jwt/JWT.java +++ b/hutool-jwt/src/main/java/cn/hutool/jwt/JWT.java @@ -50,7 +50,7 @@ public class JWT implements RegisteredPayload { /** * 创建空的JWT对象 * - * @return {@link JWT} + * @return JWT */ public static JWT create() { return new JWT(); @@ -60,7 +60,7 @@ public class JWT implements RegisteredPayload { * 创建并解析JWT对象 * * @param token JWT Token字符串,格式为xxxx.yyyy.zzzz - * @return {@link JWT} + * @return JWT */ public static JWT of(String token) { return new JWT(token); diff --git a/hutool-jwt/src/main/java/cn/hutool/jwt/JWTValidator.java b/hutool-jwt/src/main/java/cn/hutool/jwt/JWTValidator.java index 7561ecc9a..77f7c2591 100644 --- a/hutool-jwt/src/main/java/cn/hutool/jwt/JWTValidator.java +++ b/hutool-jwt/src/main/java/cn/hutool/jwt/JWTValidator.java @@ -27,7 +27,7 @@ public class JWTValidator { * 创建JWT验证器 * * @param token JWT Token - * @return {@link JWTValidator} + * @return JWTValidator */ public static JWTValidator of(String token) { return new JWTValidator(JWT.of(token)); @@ -37,7 +37,7 @@ public class JWTValidator { * 创建JWT验证器 * * @param jwt JWT对象 - * @return {@link JWTValidator} + * @return JWTValidator */ public static JWTValidator of(JWT jwt) { return new JWTValidator(jwt); @@ -209,7 +209,8 @@ public class JWTValidator { } /** - * 验证指定字段的时间不能晚于当前时间 + * 验证指定字段的时间不能晚于当前时间
+ * 被检查的日期不存在则跳过 * * @param fieldName 字段名 * @param dateToCheck 被检查的字段日期 @@ -229,7 +230,8 @@ public class JWTValidator { } /** - * 验证指定字段的时间不能早于当前时间 + * 验证指定字段的时间不能早于当前时间
+ * 被检查的日期不存在则跳过 * * @param fieldName 字段名 * @param dateToCheck 被检查的字段日期 diff --git a/hutool-jwt/src/test/java/cn/hutool/jwt/JWTSignerTest.java b/hutool-jwt/src/test/java/cn/hutool/jwt/JWTSignerTest.java index 02b60dbd3..c0e0d622b 100644 --- a/hutool-jwt/src/test/java/cn/hutool/jwt/JWTSignerTest.java +++ b/hutool-jwt/src/test/java/cn/hutool/jwt/JWTSignerTest.java @@ -19,6 +19,13 @@ public class JWTSignerTest { signAndVerify(signer); } + @Test + public void hs256Test2(){ + final JWTSigner signer = JWTSignerUtil.hs256("123456".getBytes()); + + signAndVerify(signer); + } + @Test public void hs384Test(){ String id = "hs384"; diff --git a/hutool-jwt/src/test/java/cn/hutool/jwt/JWTUtilTest.java b/hutool-jwt/src/test/java/cn/hutool/jwt/JWTUtilTest.java index 9ce13ec22..9ff5efc07 100644 --- a/hutool-jwt/src/test/java/cn/hutool/jwt/JWTUtilTest.java +++ b/hutool-jwt/src/test/java/cn/hutool/jwt/JWTUtilTest.java @@ -1,5 +1,6 @@ package cn.hutool.jwt; +import org.junit.Assert; import org.junit.Test; import java.util.HashMap; @@ -21,4 +22,34 @@ public class JWTUtilTest { JWTUtil.createToken(map, key); } + + @Test + public void parseTest(){ + String rightToken = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9." + + "eyJzdWIiOiIxMjM0NTY3ODkwIiwiYWRtaW4iOnRydWUsIm5hbWUiOiJsb29seSJ9." + + "U2aQkC2THYV9L0fTN-yBBI7gmo5xhmvMhATtu8v0zEA"; + final JWT jwt = JWTUtil.parseToken(rightToken); + + Assert.assertTrue(jwt.setKey("1234567890".getBytes()).verify()); + + //header + Assert.assertEquals("JWT", jwt.getHeader(JWTHeader.TYPE)); + Assert.assertEquals("HS256", jwt.getHeader(JWTHeader.ALGORITHM)); + Assert.assertNull(jwt.getHeader(JWTHeader.CONTENT_TYPE)); + + //payload + Assert.assertEquals("1234567890", jwt.getPayload("sub")); + Assert.assertEquals("looly", jwt.getPayload("name")); + Assert.assertEquals(true, jwt.getPayload("admin")); + } + + @Test + public void verifyTest(){ + String token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9." + + "eyJ1c2VyX25hbWUiOiJhZG1pbiIsInNjb3BlIjpbImFsbCJdLCJleHAiOjE2MjQwMDQ4MjIsInVzZXJJZCI6MSwiYXV0aG9yaXRpZXMiOlsiUk9MRV_op5LoibLkuozlj7ciLCJzeXNfbWVudV8xIiwiUk9MRV_op5LoibLkuIDlj7ciLCJzeXNfbWVudV8yIl0sImp0aSI6ImQ0YzVlYjgwLTA5ZTctNGU0ZC1hZTg3LTVkNGI5M2FhNmFiNiIsImNsaWVudF9pZCI6ImhhbmR5LXNob3AifQ." + + "aixF1eKlAKS_k3ynFnStE7-IRGiD5YaqznvK2xEjBew"; + + final boolean verify = JWTUtil.verify(token, "123456".getBytes()); + Assert.assertTrue(verify); + } }