This commit is contained in:
Looly 2020-03-13 17:47:57 +08:00
parent cefe1311ad
commit aaee713fad
7 changed files with 104 additions and 104 deletions

View File

@ -7,6 +7,7 @@
### 新特性 ### 新特性
* 【http 】 UserAgentUtil增加识别ios和android等issue#781@Github * 【http 】 UserAgentUtil增加识别ios和android等issue#781@Github
* 【core 】 支持新领车牌issue#I1BJHE@Gitee
### Bug修复 ### Bug修复
* 【core 】 修复PageUtil第一页语义不明确的问题issue#782@Github * 【core 】 修复PageUtil第一页语义不明确的问题issue#782@Github

View File

@ -61,6 +61,8 @@ public class PatternPool {
public final static Pattern PLATE_NUMBER = Pattern.compile( public final static Pattern PLATE_NUMBER = Pattern.compile(
//https://gitee.com/loolly/hutool/issues/I1B77H?from=project-issue //https://gitee.com/loolly/hutool/issues/I1B77H?from=project-issue
"^(([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z](([0-9]{5}[ABCDEFGHJK])|([ABCDEFGHJK]([A-HJ-NP-Z0-9])[0-9]{4})))|" + "^(([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z](([0-9]{5}[ABCDEFGHJK])|([ABCDEFGHJK]([A-HJ-NP-Z0-9])[0-9]{4})))|" +
//https://gitee.com/loolly/hutool/issues/I1BJHE?from=project-issue
"([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领]\\d{3}\\d{1,3}[领])|" +
"([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳使领]))$"); "([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳使领]))$");
// ------------------------------------------------------------------------------------------------------------------------------------------------------------------- // -------------------------------------------------------------------------------------------------------------------------------------------------------------------

View File

@ -134,5 +134,6 @@ public class ValidatorTest {
@Test @Test
public void isPlateNumberTest(){ public void isPlateNumberTest(){
Assert.assertTrue(Validator.isPlateNumber("粤BA03205")); Assert.assertTrue(Validator.isPlateNumber("粤BA03205"));
Assert.assertTrue(Validator.isPlateNumber("闽20401领"));
} }
} }

View File

@ -12,11 +12,11 @@ public class PageUtilTest {
@Test @Test
public void transToStartEndTest(){ public void transToStartEndTest(){
int[] startEnd1 = PageUtil.transToStartEnd(1, 10); int[] startEnd1 = PageUtil.transToStartEnd(0, 10);
Assert.assertEquals(0, startEnd1[0]); Assert.assertEquals(0, startEnd1[0]);
Assert.assertEquals(10, startEnd1[1]); Assert.assertEquals(10, startEnd1[1]);
int[] startEnd2 = PageUtil.transToStartEnd(2, 10); int[] startEnd2 = PageUtil.transToStartEnd(1, 10);
Assert.assertEquals(10, startEnd2[0]); Assert.assertEquals(10, startEnd2[0]);
Assert.assertEquals(20, startEnd2[1]); Assert.assertEquals(20, startEnd2[1]);
} }

View File

@ -1,19 +1,14 @@
package cn.hutool.db; package cn.hutool.db;
import java.sql.SQLException; import cn.hutool.core.lang.Console;
import cn.hutool.db.sql.Query;
import cn.hutool.db.sql.SqlBuilder;
import cn.hutool.db.sql.SqlUtil;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Ignore; import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;
import cn.hutool.core.lang.Console; import java.sql.SQLException;
import cn.hutool.db.Db;
import cn.hutool.db.Entity;
import cn.hutool.db.Page;
import cn.hutool.db.PageResult;
import cn.hutool.db.sql.Query;
import cn.hutool.db.sql.SqlBuilder;
import cn.hutool.db.sql.SqlUtil;
/** /**
* Oracle操作单元测试 * Oracle操作单元测试
@ -25,7 +20,7 @@ public class OracleTest {
@Test @Test
public void oraclePageSqlTest() { public void oraclePageSqlTest() {
Page page = new Page(1, 10); Page page = new Page(0, 10);
Entity where = Entity.create("PMCPERFORMANCEINFO").set("yearPI", "2017"); Entity where = Entity.create("PMCPERFORMANCEINFO").set("yearPI", "2017");
final Query query = new Query(SqlUtil.buildConditions(where), where.getTableName()); final Query query = new Query(SqlUtil.buildConditions(where), where.getTableName());
query.setPage(page); query.setPage(page);

View File

@ -49,11 +49,11 @@ public class Platform extends UserAgentInfo {
* 支持的移动平台类型 * 支持的移动平台类型
*/ */
public static final List<Platform> mobilePlatforms = CollUtil.newArrayList(// public static final List<Platform> mobilePlatforms = CollUtil.newArrayList(//
WINDOWS_PHONE, //
IPAD, // IPAD, //
IPOD, // IPOD, //
IPHONE, // IPHONE, //
ANDROID, // ANDROID, //
WINDOWS_PHONE, //
GOOGLE_TV, // GOOGLE_TV, //
new Platform("htcFlyer", "htc_flyer"), // new Platform("htcFlyer", "htc_flyer"), //
new Platform("Symbian", "symbian(os)?"), // new Platform("Symbian", "symbian(os)?"), //

View File

@ -34,9 +34,9 @@ public class UserAgentUtilTest {
} }
@Test @Test
public void parseMiui10WithChromeTest(){ public void parseMiui10WithChromeTest() {
String uaStr="Mozilla/5.0 (Linux; Android 9; MIX 3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.80 Mobile Safari/537.36"; String uaStr = "Mozilla/5.0 (Linux; Android 9; MIX 3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.80 Mobile Safari/537.36";
UserAgent ua=UserAgentUtil.parse(uaStr); UserAgent ua = UserAgentUtil.parse(uaStr);
Assert.assertEquals("Chrome", ua.getBrowser().toString()); Assert.assertEquals("Chrome", ua.getBrowser().toString());
Assert.assertEquals("70.0.3538.80", ua.getVersion()); Assert.assertEquals("70.0.3538.80", ua.getVersion());
Assert.assertEquals("Webkit", ua.getEngine().toString()); Assert.assertEquals("Webkit", ua.getEngine().toString());
@ -47,9 +47,9 @@ public class UserAgentUtilTest {
} }
@Test @Test
public void parseWindows10WithChromeTest(){ 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"; 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";
UserAgent ua=UserAgentUtil.parse(uaStr); UserAgent ua = UserAgentUtil.parse(uaStr);
Assert.assertEquals("Chrome", ua.getBrowser().toString()); Assert.assertEquals("Chrome", ua.getBrowser().toString());
Assert.assertEquals("70.0.3538.102", ua.getVersion()); Assert.assertEquals("70.0.3538.102", ua.getVersion());
Assert.assertEquals("Webkit", ua.getEngine().toString()); Assert.assertEquals("Webkit", ua.getEngine().toString());
@ -60,92 +60,93 @@ public class UserAgentUtilTest {
} }
@Test @Test
public void parseWindows10WithIe11Test(){ public void parseWindows10WithIe11Test() {
String uaStr="Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"; String uaStr = "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko";
UserAgent ua=UserAgentUtil.parse(uaStr); UserAgent ua = UserAgentUtil.parse(uaStr);
Assert.assertEquals("MSIE11", ua.getBrowser().toString()); Assert.assertEquals("MSIE11", ua.getBrowser().toString());
Assert.assertEquals("11.0", ua.getVersion()); Assert.assertEquals("11.0", ua.getVersion());
Assert.assertEquals("Trident", ua.getEngine().toString()); Assert.assertEquals("Trident", ua.getEngine().toString());
Assert.assertEquals("7.0", ua.getEngineVersion()); Assert.assertEquals("7.0", ua.getEngineVersion());
Assert.assertEquals("Windows 10 or Windows Server 2016", ua.getOs().toString()); Assert.assertEquals("Windows 10 or Windows Server 2016", ua.getOs().toString());
Assert.assertEquals("Windows", ua.getPlatform().toString()); Assert.assertEquals("Windows", ua.getPlatform().toString());
Assert.assertFalse(ua.isMobile()); Assert.assertFalse(ua.isMobile());
} }
@Test @Test
public void parseWindows10WithIeMobileLumia520Test(){ public void parseWindows10WithIeMobileLumia520Test() {
String uaStr="Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Lumia 520) like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537 "; String uaStr = "Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Lumia 520) like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537 ";
UserAgent ua=UserAgentUtil.parse(uaStr); UserAgent ua = UserAgentUtil.parse(uaStr);
Assert.assertEquals("IEMobile", ua.getBrowser().toString()); Assert.assertEquals("IEMobile", ua.getBrowser().toString());
Assert.assertEquals("11.0", ua.getVersion()); Assert.assertEquals("11.0", ua.getVersion());
Assert.assertEquals("Trident", ua.getEngine().toString()); Assert.assertEquals("Trident", ua.getEngine().toString());
Assert.assertEquals("7.0", ua.getEngineVersion()); Assert.assertEquals("7.0", ua.getEngineVersion());
Assert.assertEquals("Windows Phone", ua.getOs().toString()); Assert.assertEquals("Windows Phone", ua.getOs().toString());
Assert.assertEquals("Windows Phone", ua.getPlatform().toString()); Assert.assertEquals("Windows Phone", ua.getPlatform().toString());
Assert.assertTrue(ua.isMobile()); Assert.assertTrue(ua.isMobile());
} }
@Test @Test
public void parseWindows10WithIe8EmulatorTest(){ public void parseWindows10WithIe8EmulatorTest() {
String uaStr="Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)"; String uaStr = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)";
UserAgent ua=UserAgentUtil.parse(uaStr); UserAgent ua = UserAgentUtil.parse(uaStr);
Assert.assertEquals("MSIE", ua.getBrowser().toString()); Assert.assertEquals("MSIE", ua.getBrowser().toString());
Assert.assertEquals("8.0", ua.getVersion()); Assert.assertEquals("8.0", ua.getVersion());
Assert.assertEquals("Trident", ua.getEngine().toString()); Assert.assertEquals("Trident", ua.getEngine().toString());
Assert.assertEquals("4.0", ua.getEngineVersion()); Assert.assertEquals("4.0", ua.getEngineVersion());
Assert.assertEquals("Windows 7 or Windows Server 2008R2", ua.getOs().toString()); Assert.assertEquals("Windows 7 or Windows Server 2008R2", ua.getOs().toString());
Assert.assertEquals("Windows", ua.getPlatform().toString()); Assert.assertEquals("Windows", ua.getPlatform().toString());
Assert.assertFalse(ua.isMobile()); Assert.assertFalse(ua.isMobile());
} }
@Test @Test
public void parseWindows10WithEdgeTest(){ public void parseWindows10WithEdgeTest() {
String uaStr="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763"; String uaStr = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763";
UserAgent ua=UserAgentUtil.parse(uaStr); UserAgent ua = UserAgentUtil.parse(uaStr);
Assert.assertEquals("MSEdge", ua.getBrowser().toString()); Assert.assertEquals("MSEdge", ua.getBrowser().toString());
Assert.assertEquals("18.17763", ua.getVersion()); Assert.assertEquals("18.17763", ua.getVersion());
Assert.assertEquals("Webkit", ua.getEngine().toString()); Assert.assertEquals("Webkit", ua.getEngine().toString());
Assert.assertEquals("537.36", ua.getEngineVersion()); Assert.assertEquals("537.36", ua.getEngineVersion());
Assert.assertEquals("Windows 10 or Windows Server 2016", ua.getOs().toString()); Assert.assertEquals("Windows 10 or Windows Server 2016", ua.getOs().toString());
Assert.assertEquals("Windows", ua.getPlatform().toString()); Assert.assertEquals("Windows", ua.getPlatform().toString());
Assert.assertFalse(ua.isMobile()); Assert.assertFalse(ua.isMobile());
} }
@Test
public void parseEdgeOnLumia950XLTest(){
String uaStr="Mozilla/5.0 (Windows Phone 10.0; Android 6.0.1; Microsoft; Lumia 950XL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Mobile Safari/537.36 Edge/15.14900";
UserAgent ua=UserAgentUtil.parse(uaStr);
Assert.assertEquals("MSEdge", ua.getBrowser().toString());
Assert.assertEquals("15.14900", ua.getVersion());
Assert.assertEquals("Webkit", ua.getEngine().toString());
Assert.assertEquals("537.36", ua.getEngineVersion());
Assert.assertEquals("Windows Phone", ua.getOs().toString());
Assert.assertEquals("Windows Phone", ua.getPlatform().toString());
Assert.assertTrue(ua.isMobile());
}
@Test
public void parseChromeOnWindowsServer2012R2Test(){
String uaStr="Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36";
UserAgent ua=UserAgentUtil.parse(uaStr);
Assert.assertEquals("Chrome", ua.getBrowser().toString());
Assert.assertEquals("63.0.3239.132", ua.getVersion());
Assert.assertEquals("Webkit", ua.getEngine().toString());
Assert.assertEquals("537.36", ua.getEngineVersion());
Assert.assertEquals("Windows 8.1 or Winsows Server 2012R2", ua.getOs().toString());
Assert.assertEquals("Windows", ua.getPlatform().toString());
Assert.assertFalse(ua.isMobile());
}
@Test @Test
public void parseIE11OnWindowsServer2008R2Test(){ public void parseEdgeOnLumia950XLTest() {
String uaStr="Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"; String uaStr = "Mozilla/5.0 (Windows Phone 10.0; Android 6.0.1; Microsoft; Lumia 950XL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Mobile Safari/537.36 Edge/15.14900";
UserAgent ua=UserAgentUtil.parse(uaStr); UserAgent ua = UserAgentUtil.parse(uaStr);
Assert.assertEquals("MSIE11", ua.getBrowser().toString()); Assert.assertEquals("MSEdge", ua.getBrowser().toString());
Assert.assertEquals("11.0", ua.getVersion()); Assert.assertEquals("15.14900", ua.getVersion());
Assert.assertEquals("Trident", ua.getEngine().toString()); Assert.assertEquals("Webkit", ua.getEngine().toString());
Assert.assertEquals("7.0", ua.getEngineVersion()); Assert.assertEquals("537.36", ua.getEngineVersion());
Assert.assertEquals("Windows 7 or Windows Server 2008R2", ua.getOs().toString()); Assert.assertEquals("Windows Phone", ua.getOs().toString());
Assert.assertEquals("Windows", ua.getPlatform().toString()); Assert.assertEquals("Windows Phone", ua.getPlatform().toString());
Assert.assertFalse(ua.isMobile()); Assert.assertTrue(ua.isMobile());
} }
@Test
public void parseChromeOnWindowsServer2012R2Test() {
String uaStr = "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36";
UserAgent ua = UserAgentUtil.parse(uaStr);
Assert.assertEquals("Chrome", ua.getBrowser().toString());
Assert.assertEquals("63.0.3239.132", ua.getVersion());
Assert.assertEquals("Webkit", ua.getEngine().toString());
Assert.assertEquals("537.36", ua.getEngineVersion());
Assert.assertEquals("Windows 8.1 or Winsows Server 2012R2", ua.getOs().toString());
Assert.assertEquals("Windows", ua.getPlatform().toString());
Assert.assertFalse(ua.isMobile());
}
@Test
public void parseIE11OnWindowsServer2008R2Test() {
String uaStr = "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko";
UserAgent ua = UserAgentUtil.parse(uaStr);
Assert.assertEquals("MSIE11", ua.getBrowser().toString());
Assert.assertEquals("11.0", ua.getVersion());
Assert.assertEquals("Trident", ua.getEngine().toString());
Assert.assertEquals("7.0", ua.getEngineVersion());
Assert.assertEquals("Windows 7 or Windows Server 2008R2", ua.getOs().toString());
Assert.assertEquals("Windows", ua.getPlatform().toString());
Assert.assertFalse(ua.isMobile());
}
} }