fix test and regex

This commit is contained in:
Looly 2021-09-23 17:05:06 +08:00
parent d2900600e0
commit ba00f03026
13 changed files with 74 additions and 116 deletions

View File

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

View File

@ -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\\.\\-]+)"),

View File

@ -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<KeyBean> 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

View File

@ -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());
}
}

View File

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

View File

@ -1,16 +1,10 @@
package cn.hutool.json.test.bean;
import lombok.Data;
import java.util.List;
@Data
public class ADT {
private List<String> BookingCode;
public void setBookingCode(List<String> BookingCode) {
this.BookingCode = BookingCode;
}
public List<String> getBookingCode() {
return BookingCode;
}
}

View File

@ -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 + "]";
}
}

View File

@ -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 + "]";
}
}

View File

@ -1,16 +1,10 @@
package cn.hutool.json.test.bean;
import lombok.Data;
import java.util.List;
@Data
public class Price {
private List<List<ADT>> ADT;
public void setADT(List<List<ADT>> ADT) {
this.ADT = ADT;
}
public List<List<ADT>> getADT() {
return ADT;
}
}

View File

@ -50,7 +50,7 @@ public class JWT implements RegisteredPayload<JWT> {
/**
* 创建空的JWT对象
*
* @return {@link JWT}
* @return JWT
*/
public static JWT create() {
return new JWT();
@ -60,7 +60,7 @@ public class JWT implements RegisteredPayload<JWT> {
* 创建并解析JWT对象
*
* @param token JWT Token字符串格式为xxxx.yyyy.zzzz
* @return {@link JWT}
* @return JWT
*/
public static JWT of(String token) {
return new JWT(token);

View File

@ -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 {
}
/**
* 验证指定字段的时间不能晚于当前时间
* 验证指定字段的时间不能晚于当前时间<br>
* 被检查的日期不存在则跳过
*
* @param fieldName 字段名
* @param dateToCheck 被检查的字段日期
@ -229,7 +230,8 @@ public class JWTValidator {
}
/**
* 验证指定字段的时间不能早于当前时间
* 验证指定字段的时间不能早于当前时间<br>
* 被检查的日期不存在则跳过
*
* @param fieldName 字段名
* @param dateToCheck 被检查的字段日期

View File

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

View File

@ -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);
}
}