mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-04-19 03:01:48 +08:00
fix test and regex
This commit is contained in:
parent
d2900600e0
commit
ba00f03026
@ -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)
|
||||
|
@ -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\\.\\-]+)"),
|
||||
|
@ -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
|
||||
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
@ -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\"}";
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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 + "]";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -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 + "]";
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
@ -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);
|
||||
|
@ -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 被检查的字段日期
|
||||
|
@ -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";
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user