[HtmlUnit] SVN: [15411] trunk/htmlunit/src
rbri--- via HtmlUnit-develop <[email protected]>
| Newsgroups | gmane.comp.java.htmlunit.devel |
|---|---|
| Message-ID | <[email protected]> |
Revision: 15411
http://sourceforge.net/p/htmlunit/code/15411
Author: rbri
Date: 2018-06-29 13:18:27 +0000 (Fri, 29 Jun 2018)
Log Message:
-----------
ff60 support (wip)
Modified Paths:
--------------
trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersionFeatures.java
trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlDateTimeLocalInput.java
trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlMonthInput.java
trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlTimeInput.java
trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlWeekInput.java
trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLInputElement.java
trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLInputElementTest.java
Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersionFeatures.java
===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersionFeatures.java 2018-06-29 11:57:58 UTC (rev 15410)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersionFeatures.java 2018-06-29 13:18:27 UTC (rev 15411)
@@ -443,6 +443,14 @@
@BrowserFeature({CHROME, FF60, IE})
HTMLINPUT_FILE_VALUE_FAKEPATH,
+ /** HTMLInputElement date and time types are supported. */
+ @BrowserFeature({CHROME, FF60})
+ HTMLINPUT_TYPE_DATETIME_SUPPORTED,
+
+ /** HTMLInputElement date and time types are supported. */
+ @BrowserFeature(FF60)
+ HTMLINPUT_TYPE_MONTH_NOT_SUPPORTED,
+
/** Should the HTMLElement of {@code keygen} have no end tag. */
@BrowserFeature(IE)
HTMLKEYGEN_END_TAG_FORBIDDEN,
@@ -1000,7 +1008,7 @@
@BrowserFeature(IE)
JS_INPUT_SET_TYPE_LOWERCASE,
- /** Setting the value of an Input Date to blank will result in an empty value. */
+ /** Setting the value of an Input Date will check for correct format. */
@BrowserFeature({CHROME, FF60})
JS_INPUT_SET_VALUE_DATE_SUPPORTED,
Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlDateTimeLocalInput.java
===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlDateTimeLocalInput.java 2018-06-29 11:57:58 UTC (rev 15410)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlDateTimeLocalInput.java 2018-06-29 13:18:27 UTC (rev 15411)
@@ -14,7 +14,8 @@
*/
package com.gargoylesoftware.htmlunit.html;
-import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.JS_INPUT_SET_VALUE_DATE_SUPPORTED;
+import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.HTMLINPUT_TYPE_DATETIME_SUPPORTED;
+import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.HTMLINPUT_TYPE_MONTH_NOT_SUPPORTED;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
@@ -49,7 +50,8 @@
@Override
public void setValueAttribute(final String newValue) {
try {
- if (hasFeature(JS_INPUT_SET_VALUE_DATE_SUPPORTED)) {
+ if (hasFeature(HTMLINPUT_TYPE_DATETIME_SUPPORTED)
+ && !hasFeature(HTMLINPUT_TYPE_MONTH_NOT_SUPPORTED)) {
FORMATTER_.parse(newValue);
}
super.setValueAttribute(newValue);
Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlMonthInput.java
===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlMonthInput.java 2018-06-29 11:57:58 UTC (rev 15410)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlMonthInput.java 2018-06-29 13:18:27 UTC (rev 15411)
@@ -14,7 +14,8 @@
*/
package com.gargoylesoftware.htmlunit.html;
-import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.JS_INPUT_SET_VALUE_DATE_SUPPORTED;
+import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.HTMLINPUT_TYPE_DATETIME_SUPPORTED;
+import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.HTMLINPUT_TYPE_MONTH_NOT_SUPPORTED;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
@@ -49,7 +50,8 @@
@Override
public void setValueAttribute(final String newValue) {
try {
- if (hasFeature(JS_INPUT_SET_VALUE_DATE_SUPPORTED)) {
+ if (hasFeature(HTMLINPUT_TYPE_DATETIME_SUPPORTED)
+ && !hasFeature(HTMLINPUT_TYPE_MONTH_NOT_SUPPORTED)) {
FORMATTER_.parse(newValue);
}
super.setValueAttribute(newValue);
Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlTimeInput.java
===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlTimeInput.java 2018-06-29 11:57:58 UTC (rev 15410)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlTimeInput.java 2018-06-29 13:18:27 UTC (rev 15411)
@@ -14,7 +14,7 @@
*/
package com.gargoylesoftware.htmlunit.html;
-import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.JS_INPUT_SET_VALUE_DATE_SUPPORTED;
+import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.HTMLINPUT_TYPE_DATETIME_SUPPORTED;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
@@ -49,7 +49,7 @@
@Override
public void setValueAttribute(final String newValue) {
try {
- if (hasFeature(JS_INPUT_SET_VALUE_DATE_SUPPORTED)) {
+ if (hasFeature(HTMLINPUT_TYPE_DATETIME_SUPPORTED)) {
FORMATTER_.parse(newValue);
}
super.setValueAttribute(newValue);
Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlWeekInput.java
===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlWeekInput.java 2018-06-29 11:57:58 UTC (rev 15410)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlWeekInput.java 2018-06-29 13:18:27 UTC (rev 15411)
@@ -14,7 +14,8 @@
*/
package com.gargoylesoftware.htmlunit.html;
-import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.JS_INPUT_SET_VALUE_DATE_SUPPORTED;
+import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.HTMLINPUT_TYPE_DATETIME_SUPPORTED;
+import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.HTMLINPUT_TYPE_MONTH_NOT_SUPPORTED;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
@@ -49,7 +50,8 @@
@Override
public void setValueAttribute(final String newValue) {
try {
- if (hasFeature(JS_INPUT_SET_VALUE_DATE_SUPPORTED)) {
+ if (hasFeature(HTMLINPUT_TYPE_DATETIME_SUPPORTED)
+ && !hasFeature(HTMLINPUT_TYPE_MONTH_NOT_SUPPORTED)) {
FORMATTER_.parse(newValue);
}
super.setValueAttribute(newValue);
Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLInputElement.java
===================================================================
--- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLInputElement.java 2018-06-29 11:57:58 UTC (rev 15410)
+++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLInputElement.java 2018-06-29 13:18:27 UTC (rev 15411)
@@ -18,16 +18,16 @@
import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.HTMLINPUT_FILES_UNDEFINED;
import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.HTMLINPUT_FILE_SELECTION_START_END_NULL;
import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.HTMLINPUT_FILE_VALUE_FAKEPATH;
+import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.HTMLINPUT_TYPE_DATETIME_SUPPORTED;
+import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.HTMLINPUT_TYPE_MONTH_NOT_SUPPORTED;
import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.JS_ALIGN_FOR_INPUT_IGNORES_VALUES;
import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.JS_INPUT_NUMBER_SELECTION_START_END_NULL;
import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.JS_INPUT_SET_TYPE_LOWERCASE;
-import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.JS_INPUT_SET_VALUE_DATE_SUPPORTED;
import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.JS_SELECT_FILE_THROWS;
import static com.gargoylesoftware.htmlunit.html.DomElement.ATTRIBUTE_NOT_DEFINED;
import static com.gargoylesoftware.htmlunit.javascript.configuration.SupportedBrowser.CHROME;
import static com.gargoylesoftware.htmlunit.javascript.configuration.SupportedBrowser.EDGE;
import static com.gargoylesoftware.htmlunit.javascript.configuration.SupportedBrowser.FF;
-import static com.gargoylesoftware.htmlunit.javascript.configuration.SupportedBrowser.FF52;
import static com.gargoylesoftware.htmlunit.javascript.configuration.SupportedBrowser.FF60;
import static com.gargoylesoftware.htmlunit.javascript.configuration.SupportedBrowser.IE;
@@ -100,7 +100,7 @@
if (!InputElementFactory.isSupported(type)) {
type = "text";
}
- else if (!browserVersion.hasFeature(JS_INPUT_SET_VALUE_DATE_SUPPORTED)) {
+ else if (!browserVersion.hasFeature(HTMLINPUT_TYPE_DATETIME_SUPPORTED)) {
switch (type) {
case "date":
case "time":
@@ -113,6 +113,17 @@
default:
}
}
+ else if (browserVersion.hasFeature(HTMLINPUT_TYPE_MONTH_NOT_SUPPORTED)) {
+ switch (type) {
+ case "datetime-local":
+ case "month":
+ case "week":
+ type = "text";
+ break;
+
+ default:
+ }
+ }
if ("color".equals(type) && browserVersion.hasFeature(HTMLINPUT_FILES_UNDEFINED)) {
type = "text";
}
@@ -425,7 +436,7 @@
* Gets the {@code minLength}.
* @return the {@code minLength}
*/
- @JsxGetter({CHROME, FF52})
+ @JsxGetter({CHROME, FF})
public int getMinLength() {
final String attrValue = getDomNodeOrDie().getAttribute("minLength");
return NumberUtils.toInt(attrValue, -1);
@@ -435,7 +446,7 @@
* Sets the value of {@code minLength} attribute.
* @param length the new value
*/
- @JsxSetter({CHROME, FF52})
+ @JsxSetter({CHROME, FF})
public void setMinLength(final int length) {
getDomNodeOrDie().setMinLength(length);
}
Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLInputElementTest.java
===================================================================
--- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLInputElementTest.java 2018-06-29 11:57:58 UTC (rev 15410)
+++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLInputElementTest.java 2018-06-29 13:18:27 UTC (rev 15411)
@@ -267,7 +267,7 @@
+ "</form>\n"
+ "</body></html>";
- loadPageWithAlerts2(html, 2 * DEFAULT_WAIT_TIME);
+ loadPageWithAlerts2(html, 7777777);
}
/**
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot