Changeset 54271 in webkit


Ignore:
Timestamp:
Feb 2, 2010 8:21:55 PM (14 years ago)
Author:
tkent@chromium.org
Message:

2010-02-02 Kent Tamura <tkent@chromium.org>

Reviewed by Darin Adler.

rangeOverflow/rangeUnderflow support for type=datetime, datetime-local,
month, time and week
https://bugs.webkit.org/show_bug.cgi?id=34483

Add tests for datetime, datetime-local, month, time and week, and
merge existing tests into one test file.

  • fast/forms/ValidityState-rangeOverflow-date-expected.txt: Removed.
  • fast/forms/ValidityState-rangeOverflow-date.html: Removed.
  • fast/forms/ValidityState-rangeOverflow-expected.txt: Added.
  • fast/forms/ValidityState-rangeOverflow-number-expected.txt: Removed.
  • fast/forms/ValidityState-rangeOverflow-number.html: Removed.
  • fast/forms/ValidityState-rangeOverflow-range-expected.txt: Removed.
  • fast/forms/ValidityState-rangeOverflow-range.html: Removed.
  • fast/forms/ValidityState-rangeOverflow.html: Added.
  • fast/forms/ValidityState-rangeUnderflow-date-expected.txt: Removed.
  • fast/forms/ValidityState-rangeUnderflow-date.html: Removed.
  • fast/forms/ValidityState-rangeUnderflow-expected.txt: Added.
  • fast/forms/ValidityState-rangeUnderflow-number-expected.txt: Removed.
  • fast/forms/ValidityState-rangeUnderflow-number.html: Removed.
  • fast/forms/ValidityState-rangeUnderflow-range-expected.txt: Removed.
  • fast/forms/ValidityState-rangeUnderflow-range.html: Removed.
  • fast/forms/ValidityState-rangeUnderflow.html: Added.
  • fast/forms/script-tests/ValidityState-rangeOverflow-date.js: Removed.
  • fast/forms/script-tests/ValidityState-rangeOverflow-number.js: Removed.
  • fast/forms/script-tests/ValidityState-rangeOverflow-range.js: Removed.
  • fast/forms/script-tests/ValidityState-rangeOverflow.js: Added.
  • fast/forms/script-tests/ValidityState-rangeUnderflow-date.js: Removed.
  • fast/forms/script-tests/ValidityState-rangeUnderflow-number.js: Removed.
  • fast/forms/script-tests/ValidityState-rangeUnderflow-range.js: Removed.
  • fast/forms/script-tests/ValidityState-rangeUnderflow.js: Added.

2010-02-02 Kent Tamura <tkent@chromium.org>

Reviewed by Darin Adler.

rangeOverflow/rangeUnderflow support for type=datetime, datetime-local,
month, time and week
https://bugs.webkit.org/show_bug.cgi?id=34483

Tests: fast/forms/ValidityState-rangeOverflow.html

fast/forms/ValidityState-rangeUnderflow.html

  • html/HTMLInputElement.cpp: Defines the hard limits for the types as double values. (WebCore::HTMLInputElement::rangeUnderflow): Supports the types. (WebCore::HTMLInputElement::rangeOverflow): Supports the types. (WebCore::HTMLInputElement::minimum): Supports the types. (WebCore::HTMLInputElement::maximum): Supports the types.
Location:
trunk
Files:
4 added
16 deleted
3 edited
2 moved

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r54267 r54271  
     12010-02-02  Kent Tamura  <tkent@chromium.org>
     2
     3        Reviewed by Darin Adler.
     4
     5        rangeOverflow/rangeUnderflow support for type=datetime, datetime-local,
     6        month, time and week
     7        https://bugs.webkit.org/show_bug.cgi?id=34483
     8
     9        Add tests for datetime, datetime-local, month, time and week, and
     10        merge existing tests into one test file.
     11
     12        * fast/forms/ValidityState-rangeOverflow-date-expected.txt: Removed.
     13        * fast/forms/ValidityState-rangeOverflow-date.html: Removed.
     14        * fast/forms/ValidityState-rangeOverflow-expected.txt: Added.
     15        * fast/forms/ValidityState-rangeOverflow-number-expected.txt: Removed.
     16        * fast/forms/ValidityState-rangeOverflow-number.html: Removed.
     17        * fast/forms/ValidityState-rangeOverflow-range-expected.txt: Removed.
     18        * fast/forms/ValidityState-rangeOverflow-range.html: Removed.
     19        * fast/forms/ValidityState-rangeOverflow.html: Added.
     20        * fast/forms/ValidityState-rangeUnderflow-date-expected.txt: Removed.
     21        * fast/forms/ValidityState-rangeUnderflow-date.html: Removed.
     22        * fast/forms/ValidityState-rangeUnderflow-expected.txt: Added.
     23        * fast/forms/ValidityState-rangeUnderflow-number-expected.txt: Removed.
     24        * fast/forms/ValidityState-rangeUnderflow-number.html: Removed.
     25        * fast/forms/ValidityState-rangeUnderflow-range-expected.txt: Removed.
     26        * fast/forms/ValidityState-rangeUnderflow-range.html: Removed.
     27        * fast/forms/ValidityState-rangeUnderflow.html: Added.
     28        * fast/forms/script-tests/ValidityState-rangeOverflow-date.js: Removed.
     29        * fast/forms/script-tests/ValidityState-rangeOverflow-number.js: Removed.
     30        * fast/forms/script-tests/ValidityState-rangeOverflow-range.js: Removed.
     31        * fast/forms/script-tests/ValidityState-rangeOverflow.js: Added.
     32        * fast/forms/script-tests/ValidityState-rangeUnderflow-date.js: Removed.
     33        * fast/forms/script-tests/ValidityState-rangeUnderflow-number.js: Removed.
     34        * fast/forms/script-tests/ValidityState-rangeUnderflow-range.js: Removed.
     35        * fast/forms/script-tests/ValidityState-rangeUnderflow.js: Added.
     36
    1372010-02-02  Fumitoshi Ukai  <ukai@chromium.org>
    238
  • trunk/LayoutTests/fast/forms/ValidityState-rangeOverflow.html

    r54270 r54271  
    88<p id="description"></p>
    99<div id="console"></div>
    10 <script src="script-tests/ValidityState-rangeUnderflow-date.js"></script>
     10<script src="script-tests/ValidityState-rangeOverflow.js"></script>
    1111<script src="../../fast/js/resources/js-test-post.js"></script>
    1212</body>
  • trunk/LayoutTests/fast/forms/ValidityState-rangeUnderflow.html

    r54270 r54271  
    88<p id="description"></p>
    99<div id="console"></div>
    10 <script src="script-tests/ValidityState-rangeOverflow-date.js"></script>
     10<script src="script-tests/ValidityState-rangeUnderflow.js"></script>
    1111<script src="../../fast/js/resources/js-test-post.js"></script>
    1212</body>
  • trunk/WebCore/ChangeLog

    r54267 r54271  
     12010-02-02  Kent Tamura  <tkent@chromium.org>
     2
     3        Reviewed by Darin Adler.
     4
     5        rangeOverflow/rangeUnderflow support for type=datetime, datetime-local,
     6        month, time and week
     7        https://bugs.webkit.org/show_bug.cgi?id=34483
     8
     9        Tests: fast/forms/ValidityState-rangeOverflow.html
     10               fast/forms/ValidityState-rangeUnderflow.html
     11
     12        * html/HTMLInputElement.cpp:
     13          Defines the hard limits for the types as double values.
     14        (WebCore::HTMLInputElement::rangeUnderflow): Supports the types.
     15        (WebCore::HTMLInputElement::rangeOverflow): Supports the types.
     16        (WebCore::HTMLInputElement::minimum): Supports the types.
     17        (WebCore::HTMLInputElement::maximum): Supports the types.
     18
    1192010-02-02  Fumitoshi Ukai  <ukai@chromium.org>
    220
  • trunk/WebCore/html/HTMLInputElement.cpp

    r54120 r54271  
    8181// Constant values for minimum().
    8282static const double dateDefaultMinimum = -12219292800000.0; // This means 1582-10-15T00:00Z.
     83static const double dateTimeDefaultMinimum = -12219292800000.0; // ditto.
     84static const double monthDefaultMinimum = (1582.0 - 1970) * 12 + 10 - 1; // 1582-10
    8385static const double numberDefaultMinimum = -DBL_MAX;
    8486static const double rangeDefaultMinimum = 0.0;
     87static const double timeDefaultMinimum = 0.0; // 00:00:00.000
     88static const double weekDefaultMinimum = -12212380800000.0; // 1583-01-03, the first Monday of 1583.
    8589// Constant values for maximum().
    8690static const double dateDefaultMaximum = DBL_MAX;
     91static const double dateTimeDefaultMaximum = DBL_MAX;
     92static const double monthDefaultMaximum = DBL_MAX;
    8793static const double numberDefaultMaximum = DBL_MAX;
    8894static const double rangeDefaultMaximum = 100.0;
     95static const double timeDefaultMaximum = 86399999.0; // 23:59:59.999
     96static const double weekDefaultMaximum = DBL_MAX;
    8997
    9098HTMLInputElement::HTMLInputElement(const QualifiedName& tagName, Document* doc, HTMLFormElement* f)
     
    272280    switch (inputType()) {
    273281    case DATE:
     282    case DATETIME:
     283    case DATETIMELOCAL:
     284    case MONTH:
    274285    case NUMBER:
    275     case RANGE: {
     286    case RANGE:
     287    case TIME:
     288    case WEEK: {
    276289        double doubleValue = parseToDouble(value(), nan);
    277290        return isfinite(doubleValue) && doubleValue < minimum();
     
    280293    case CHECKBOX:
    281294    case COLOR:
    282     case DATETIME:
    283     case DATETIMELOCAL:
    284295    case EMAIL:
    285296    case FILE:
     
    287298    case IMAGE:
    288299    case ISINDEX:
    289     case MONTH:
    290300    case PASSWORD:
    291301    case RADIO:
     
    295305    case TELEPHONE:
    296306    case TEXT:
    297     case TIME:
    298307    case URL:
    299     case WEEK:
    300308        break;
    301309    }
     
    308316    switch (inputType()) {
    309317    case DATE:
     318    case DATETIME:
     319    case DATETIMELOCAL:
     320    case MONTH:
    310321    case NUMBER:
    311     case RANGE: {
     322    case RANGE:
     323    case TIME:
     324    case WEEK: {
    312325        double doubleValue = parseToDouble(value(), nan);
    313326        return isfinite(doubleValue) && doubleValue >  maximum();
     
    316329    case CHECKBOX:
    317330    case COLOR:
    318     case DATETIME:
    319     case DATETIMELOCAL:
    320331    case EMAIL:
    321332    case FILE:
     
    323334    case IMAGE:
    324335    case ISINDEX:
    325     case MONTH:
    326336    case PASSWORD:
    327337    case RADIO:
     
    331341    case TELEPHONE:
    332342    case TEXT:
    333     case TIME:
    334343    case URL:
    335     case WEEK:
    336344        break;
    337345    }
     
    344352    case DATE:
    345353        return parseToDouble(getAttribute(minAttr), dateDefaultMinimum);
     354    case DATETIME:
     355    case DATETIMELOCAL:
     356        return parseToDouble(getAttribute(minAttr), dateTimeDefaultMinimum);
     357    case MONTH:
     358        return parseToDouble(getAttribute(minAttr), monthDefaultMinimum);
    346359    case NUMBER:
    347360        return parseToDouble(getAttribute(minAttr), numberDefaultMinimum);
    348361    case RANGE:
    349362        return parseToDouble(getAttribute(minAttr), rangeDefaultMinimum);
     363    case TIME:
     364        return parseToDouble(getAttribute(minAttr), timeDefaultMinimum);
     365    case WEEK:
     366        return parseToDouble(getAttribute(minAttr), weekDefaultMinimum);
    350367    case BUTTON:
    351368    case CHECKBOX:
    352369    case COLOR:
    353     case DATETIME:
    354     case DATETIMELOCAL:
    355370    case EMAIL:
    356371    case FILE:
     
    358373    case IMAGE:
    359374    case ISINDEX:
    360     case MONTH:
    361375    case PASSWORD:
    362376    case RADIO:
     
    366380    case TELEPHONE:
    367381    case TEXT:
    368     case TIME:
    369382    case URL:
    370     case WEEK:
    371383        break;
    372384    }
     
    380392    case DATE:
    381393        return parseToDouble(getAttribute(maxAttr), dateDefaultMaximum);
     394    case DATETIME:
     395    case DATETIMELOCAL:
     396        return parseToDouble(getAttribute(maxAttr), dateTimeDefaultMaximum);
     397    case MONTH:
     398        return parseToDouble(getAttribute(maxAttr), monthDefaultMaximum);
    382399    case NUMBER:
    383400        return parseToDouble(getAttribute(maxAttr), numberDefaultMaximum);
     
    391408        return max;
    392409    }
     410    case TIME:
     411        return parseToDouble(getAttribute(maxAttr), timeDefaultMaximum);
     412    case WEEK:
     413        return parseToDouble(getAttribute(maxAttr), weekDefaultMaximum);
    393414    case BUTTON:
    394415    case CHECKBOX:
    395416    case COLOR:
    396     case DATETIME:
    397     case DATETIMELOCAL:
    398417    case EMAIL:
    399418    case FILE:
     
    401420    case IMAGE:
    402421    case ISINDEX:
    403     case MONTH:
    404422    case PASSWORD:
    405423    case RADIO:
     
    409427    case TELEPHONE:
    410428    case TEXT:
    411     case TIME:
    412429    case URL:
    413     case WEEK:
    414430        break;
    415431    }
Note: See TracChangeset for help on using the changeset viewer.