Looly 5 years ago
parent
commit
aaee713fad

+ 1 - 0
CHANGELOG.md

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

+ 2 - 0
hutool-core/src/main/java/cn/hutool/core/lang/PatternPool.java

@@ -61,6 +61,8 @@ public class PatternPool {
 	public final static Pattern PLATE_NUMBER = Pattern.compile(
 			//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})))|" +
+			//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挂学警港澳使领]))$");
 
 	// -------------------------------------------------------------------------------------------------------------------------------------------------------------------

+ 1 - 0
hutool-core/src/test/java/cn/hutool/core/lang/ValidatorTest.java

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

+ 2 - 2
hutool-core/src/test/java/cn/hutool/core/util/PageUtilTest.java

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

+ 6 - 11
hutool-db/src/test/java/cn/hutool/db/OracleTest.java

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

+ 1 - 1
hutool-http/src/main/java/cn/hutool/http/useragent/Platform.java

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

+ 91 - 90
hutool-http/src/test/java/cn/hutool/http/useragent/UserAgentUtilTest.java

@@ -34,9 +34,9 @@ public class UserAgentUtilTest {
 	}
 
 	@Test
-	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";
-		UserAgent ua=UserAgentUtil.parse(uaStr);
+	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";
+		UserAgent ua = UserAgentUtil.parse(uaStr);
 		Assert.assertEquals("Chrome", ua.getBrowser().toString());
 		Assert.assertEquals("70.0.3538.80", ua.getVersion());
 		Assert.assertEquals("Webkit", ua.getEngine().toString());
@@ -47,9 +47,9 @@ public class UserAgentUtilTest {
 	}
 
 	@Test
-	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";
-		UserAgent ua=UserAgentUtil.parse(uaStr);
+	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";
+		UserAgent ua = UserAgentUtil.parse(uaStr);
 		Assert.assertEquals("Chrome", ua.getBrowser().toString());
 		Assert.assertEquals("70.0.3538.102", ua.getVersion());
 		Assert.assertEquals("Webkit", ua.getEngine().toString());
@@ -60,92 +60,93 @@ public class UserAgentUtilTest {
 	}
 
 	@Test
-    public void parseWindows10WithIe11Test(){
-	    String uaStr="Mozilla/5.0 (Windows NT 10.0; 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 10 or Windows Server 2016", ua.getOs().toString());
-        Assert.assertEquals("Windows", ua.getPlatform().toString());
-        Assert.assertFalse(ua.isMobile());
-    }
+	public void parseWindows10WithIe11Test() {
+		String uaStr = "Mozilla/5.0 (Windows NT 10.0; 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 10 or Windows Server 2016", ua.getOs().toString());
+		Assert.assertEquals("Windows", ua.getPlatform().toString());
+		Assert.assertFalse(ua.isMobile());
+	}
 
-    @Test
-    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 ";
-	    UserAgent ua=UserAgentUtil.parse(uaStr);
-        Assert.assertEquals("IEMobile", ua.getBrowser().toString());
-        Assert.assertEquals("11.0", ua.getVersion());
-        Assert.assertEquals("Trident", ua.getEngine().toString());
-        Assert.assertEquals("7.0", ua.getEngineVersion());
-        Assert.assertEquals("Windows Phone", ua.getOs().toString());
-        Assert.assertEquals("Windows Phone", ua.getPlatform().toString());
-        Assert.assertTrue(ua.isMobile());
-    }
+	@Test
+	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 ";
+		UserAgent ua = UserAgentUtil.parse(uaStr);
+		Assert.assertEquals("IEMobile", ua.getBrowser().toString());
+		Assert.assertEquals("11.0", ua.getVersion());
+		Assert.assertEquals("Trident", ua.getEngine().toString());
+		Assert.assertEquals("7.0", ua.getEngineVersion());
+		Assert.assertEquals("Windows Phone", ua.getOs().toString());
+		Assert.assertEquals("Windows Phone", ua.getPlatform().toString());
+		Assert.assertTrue(ua.isMobile());
+	}
 
-    @Test
-    public void parseWindows10WithIe8EmulatorTest(){
-	    String uaStr="Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)";
-        UserAgent ua=UserAgentUtil.parse(uaStr);
-        Assert.assertEquals("MSIE", ua.getBrowser().toString());
-        Assert.assertEquals("8.0", ua.getVersion());
-        Assert.assertEquals("Trident", ua.getEngine().toString());
-        Assert.assertEquals("4.0", ua.getEngineVersion());
-        Assert.assertEquals("Windows 7 or Windows Server 2008R2", ua.getOs().toString());
-        Assert.assertEquals("Windows", ua.getPlatform().toString());
-        Assert.assertFalse(ua.isMobile());
-    }
+	@Test
+	public void parseWindows10WithIe8EmulatorTest() {
+		String uaStr = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)";
+		UserAgent ua = UserAgentUtil.parse(uaStr);
+		Assert.assertEquals("MSIE", ua.getBrowser().toString());
+		Assert.assertEquals("8.0", ua.getVersion());
+		Assert.assertEquals("Trident", ua.getEngine().toString());
+		Assert.assertEquals("4.0", ua.getEngineVersion());
+		Assert.assertEquals("Windows 7 or Windows Server 2008R2", ua.getOs().toString());
+		Assert.assertEquals("Windows", ua.getPlatform().toString());
+		Assert.assertFalse(ua.isMobile());
+	}
 
-    @Test
-    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";
-        UserAgent ua=UserAgentUtil.parse(uaStr);
-        Assert.assertEquals("MSEdge", ua.getBrowser().toString());
-        Assert.assertEquals("18.17763", 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("Windows", ua.getPlatform().toString());
-        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
+	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";
+		UserAgent ua = UserAgentUtil.parse(uaStr);
+		Assert.assertEquals("MSEdge", ua.getBrowser().toString());
+		Assert.assertEquals("18.17763", 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("Windows", ua.getPlatform().toString());
+		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 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());
-    }
+	@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());
+	}
 }