chromium/third_party/blink/web_tests/fast/forms/suggestion-picker/month-suggestion-picker-step-attribute.html

<!DOCTYPE html>
<meta name=fuzzy content="maxDifference=0-3; totalPixels=0-1000">
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../../resources/testdriver.js"></script>
<script src="../../../resources/testdriver-vendor.js"></script>
<script src="../resources/picker-common.js"></script>
<script src="resources/suggestion-picker-common.js"></script>

<body style="background-color: #bbbbbb;">
<input type=month value="2012-01" step="2" list=suggestions>
<datalist id=suggestions>
  <option>2012-01</option>
  <option>2012-02</option>
  <option>2012-03</option>
  <option>2012-04</option>
  <option>2012-05</option>
  <option>2012-06</option>
  <option>2012-07</option>
  <option>2012-08</option>
  <option>2012-09</option>
  <option>2012-10</option>
</datalist>

<script>
window.onload = () => {
  const element = document.querySelector('input');
  promise_test(() => {
    return openPicker(element)
    .then(() => {
      internals.pagePopupWindow.focus();

      assert_equals(entryValues().length, 6);
      assert_equals(entryValues()[0], '2012-01');
      assert_equals(entryValues()[1], '2012-03');
      assert_equals(entryValues()[2], '2012-05');
      assert_equals(entryValues()[3], '2012-07');
      assert_equals(entryValues()[4], '2012-09');
      assert_equals(entryValues()[5], '@openCalendarPicker');

      return attemptToClosePicker(element);
    });
  },'Step attribute filters out suggestions');

  promise_test(() => {
    element.step = 5;
    return openPicker(element)
    .then(() => {
      internals.pagePopupWindow.focus();

      assert_equals(entryValues().length, 3);
      assert_equals(entryValues()[0], '2012-01');
      assert_equals(entryValues()[1], '2012-06');
      assert_equals(entryValues()[2], '@openCalendarPicker');

      return attemptToClosePicker(element);
    });
  },'Step attribute filters out suggestions - longer step');

  promise_test(() => {
    element.step = 30;
    return openPicker(element)
    .then(() => {
      internals.pagePopupWindow.focus();

      assert_equals(entryValues().length, 2);
      assert_equals(entryValues()[0], '2012-01');
      assert_equals(entryValues()[1], '@openCalendarPicker');

      return attemptToClosePicker(element);
    });
  },'Step attribute filters out suggestions - very long step');
};
</script>