tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

form-validation-validity-valueMissing.html (10656B)


      1 <!DOCTYPE html>
      2 <meta charset="utf-8">
      3 <title>The constraint validation API Test: element.validity.valueMissing</title>
      4 <link rel="author" title="Intel" href="http://www.intel.com/">
      5 <link rel="help" href="https://html.spec.whatwg.org/multipage/#dom-validitystate-valuemissing">
      6 <link rel="help" href="https://html.spec.whatwg.org/multipage/#the-constraint-validation-api">
      7 <script src="/resources/testharness.js"></script>
      8 <script src="/resources/testharnessreport.js"></script>
      9 <script src="support/validator.js"></script>
     10 <div id="log"></div>
     11 <form>
     12  <input id="messagetest" type="checkbox" required="" disabled="">
     13 </form>
     14 
     15 <script>
     16  var testElements = [
     17    {
     18      tag: "input",
     19      types: ["text", "search", "tel", "url", "email", "password"],
     20      testData: [
     21        {conditions: {required: false, value: ""}, expected: false, name: "[target] The required attribute is not set"},
     22        {conditions: {required: true, value: "abc"}, expected: false, name: "[target] The value is not empty and required is true"},
     23        {conditions: {required: true, value: ""}, expected: true, expectedImmutable: false, name: "[target] The value is empty and required is true"}
     24      ]
     25    },
     26    {
     27      tag: "input",
     28      types: ["datetime-local"],
     29      testData: [
     30        {conditions: {required: false, value: ""}, expected: false, name: "[target] The required attribute is not set"},
     31        {conditions: {required: true, value: "2000-12-10T12:00:00"}, expected: false, name: "[target] Valid local date and time string(2000-12-10T12:00:00)"},
     32        {conditions: {required: true, value: "2000-12-10 12:00"}, expected: false, name: "[target] Valid local date and time string(2000-12-10 12:00)"},
     33        {conditions: {required: true, value: "1979-10-14T12:00:00.001"}, expected: false, name: "[target] Valid local date and time string(1979-10-14T12:00:00.001)"},
     34        {conditions: {required: true, value: 1234567}, expected: true, expectedImmutable: false, name: "[target] The value attribute is a number(1234567)"},
     35        {conditions: {required: true, value: new Date()}, expected: true, expectedImmutable: false, name: "[target] The value attribute is a Date object"},
     36        {conditions: {required: true, value: "1979-10-99 99:99"}, expected: true, expectedImmutable: false, name: "[target] Invalid local date and time string(1979-10-99 99:99)"},
     37        {conditions: {required: true, value: "1979-10-14 12:00:00"}, expected: false, name: "[target] Valid local date and time string(1979-10-14 12:00:00)"},
     38        {conditions: {required: true, value: "2001-12-21  12:00"}, expected: true, expectedImmutable: false, name: "[target] Invalid local date and time string(2001-12-21  12:00)-two white space"},
     39        {conditions: {required: true, value: "abc"}, expected: true, expectedImmutable: false, name: "[target] the value attribute is a string(abc)"},
     40        {conditions: {required: true, value: ""}, expected: true, expectedImmutable: false, name: "[target] The value attribute is empty string"}
     41      ]
     42    },
     43    {
     44      tag: "input",
     45      types: ["date"],
     46      testData: [
     47        {conditions: {required: false, value: ""}, expected: false, name: "[target] The required attribute is not set"},
     48        {conditions: {required: true, value: "2000-12-10"}, expected: false, name: "[target] Valid date string(2000-12-10)"},
     49        {conditions: {required: true, value: "9999-01-01"}, expected: false, name: "[target] Valid date string(9999-01-01)"},
     50        {conditions: {required: true, value: 1234567}, expected: true, expectedImmutable: false, name: "[target] The value attribute is a number(1234567)"},
     51        {conditions: {required: true, value: new Date()}, expected: true, expectedImmutable: false, name: "[target] The value attribute is a Date object"},
     52        {conditions: {required: true, value: "9999-99-99"}, expected: true, expectedImmutable: false, name: "[target] Invalid date string(9999-99-99)"},
     53        {conditions: {required: true, value: "37/01/01"}, expected: true, expectedImmutable: false, name: "[target] Invalid date string(37-01-01)"},
     54        {conditions: {required: true, value: "2000/01/01"}, expected: true, expectedImmutable: false, name: "[target] Invalid date string(2000/01/01)"},
     55        {conditions: {required: true, value: ""}, expected: true, expectedImmutable: false, name: "[target] The value attribute is empty string"}
     56      ]
     57    },
     58    {
     59      tag: "input",
     60      types: ["time"],
     61      testData: [
     62        {conditions: {required: false, value: ""}, expected: false, name: "[target] The required attribute is not set"},
     63        {conditions: {required: true, value: "12:00:00"}, expected: false, name: "[target] Validtime string(12:00:00)"},
     64        {conditions: {required: true, value: "12:00"}, expected: false, name: "[target] Validtime string(12:00)"},
     65        {conditions: {required: true, value: "12:00:00.001"}, expected: false, name: "[target] Valid time string(12:00:60.001)"},
     66        {conditions: {required: true, value: "12:00:00.01"}, expected: false, name: "[target] Valid time string(12:00:60.01)"},
     67        {conditions: {required: true, value: "12:00:00.1"}, expected: false, name: "[target] Valid time string(12:00:60.1)"},
     68        {conditions: {required: true, value: 1234567}, expected: true, expectedImmutable: false, name: "[target] The value attribute is a number(1234567)"},
     69        {conditions: {required: true, value: new Date()}, expected: true, expectedImmutable: false, name: "[target] The value attribute is a time object"},
     70        {conditions: {required: true, value: "25:00:00"}, expected: true, expectedImmutable: false, name: "[target] Invalid time string(25:00:00)"},
     71        {conditions: {required: true, value: "12:60:00"}, expected: true, expectedImmutable: false, name: "[target] Invalid time string(12:60:00)"},
     72        {conditions: {required: true, value: "12:00:60"}, expected: true, expectedImmutable: false, name: "[target] Invalid time string(12:00:60)"},
     73        {conditions: {required: true, value: "12:00:00:001"}, expected: true, expectedImmutable: false, name: "[target] Invalid time string(12:00:00:001)"},
     74        {conditions: {required: true, value: ""}, expected: true, expectedImmutable: false, name: "[target] The value attribute is empty string"}
     75      ]
     76    },
     77    {
     78      tag: "input",
     79      types: ["number"],
     80      testData: [
     81        {conditions: {required: false, value: ""}, expected: false, name: "[target] The required attribute is not set"},
     82        {conditions: {required: true, value: "123"}, expected: false, name: "[target] Value is an integer with a leading symbol '+'"},
     83        {conditions: {required: true, value: "-123.45"}, expected: false, name: "[target] Value is a number with a '-' symbol"},
     84        {conditions: {required: true, value: "123.01e-10"}, expected: false, name: "[target] Value is a number in scientific notation form(e is in lowercase)"},
     85        {conditions: {required: true, value: "123.01E+10"}, expected: false, name: "[target] Value is a number in scientific notation form(E is in uppercase)"},
     86        {conditions: {required: true, value: "-0"}, expected: false, name: "[target] Value is -0"},
     87        {conditions: {required: true, value: " 123 "}, expected: true, expectedImmutable: false, name: "[target] Value is a number with some white spaces"},
     88        {conditions: {required: true, value: Math.pow(2, 1024)}, expected: true, expectedImmutable: false, name: "[target] Value is Math.pow(2, 1024)"},
     89        {conditions: {required: true, value: Math.pow(-2, 1024)}, expected: true, expectedImmutable: false, name: "[target] Value is Math.pow(-2, 1024)"},
     90        {conditions: {required: true, value: "abc"}, expected: true, expectedImmutable: false, name: "[target] Value is a string that cannot be converted to a number"},
     91        {conditions: {required: true, value: ""}, expected: true, expectedImmutable: false, name: "[target] The value attribute is empty string"}
     92      ]
     93    },
     94    {
     95      tag: "input",
     96      types: ["checkbox"],
     97      testData: [
     98        {conditions: {required: false, checked: false, name: "test1"}, expected: false, name: "[target] The required attribute is not set"},
     99        {conditions: {required: true, checked: true, name: "test2"}, expected: false, name: "[target] The checked attribute is true"},
    100        {conditions: {required: true, checked: false, name: "test3"}, expected: true, name: "[target] The checked attribute is false"}
    101      ]
    102    },
    103    {
    104      tag: "input",
    105      types: ["radio"],
    106      testData: [
    107        {conditions: {required: false, checked: false, name: "test4"}, expected: false, name: "[target] The required attribute is not set"},
    108        {conditions: {required: true, checked: true, name: "test5"}, expected: false, name: "[target] The checked attribute is true"},
    109        {conditions: {required: true, checked: false, name: "test6"}, expected: true, name: "[target] The checked attribute is false"},
    110        {conditions: {required: true, checked: false, name: ""}, expected: false, name: "[target] The checked attribute is false and the name attribute is empty"}
    111      ]
    112    },
    113    {
    114      tag: "input",
    115      types: ["file"],
    116      testData: [
    117        {conditions: {required: false, files: null}, expected: false, name: "[target] The required attribute is not set"},
    118        {conditions: {required: true, files: null}, expected: true, name: "[target] The Files attribute is null"}
    119        //ToDo: Add a case to test the files is not null
    120      ]
    121    },
    122    {
    123      tag: "select",
    124      types: [],
    125      testData: [
    126        {conditions: {required: false, value: ""}, expected: false, name: "[target] The required attribute is not set"},
    127        {conditions: {required: true, value: 1}, expected: false, name: "[target] Selected the option with value equals to 1"},
    128        {conditions: {required: true, value: ""}, expected: true, name: "[target] Selected the option with value equals to empty"}
    129      ]
    130    },
    131    {
    132      tag: "textarea",
    133      types: [],
    134      testData: [
    135        {conditions: {required: false, value: ""}, expected: false, name: "[target] The required attribute is not set"},
    136        {conditions: {required: true, value: "abc"}, expected: false, name: "[target] The value is not empty"},
    137        {conditions: {required: true, value: ""}, expected: true, expectedImmutable: false, name: "[target] The value is empty"}
    138      ]
    139    }
    140  ];
    141 
    142  validator.run_test(testElements, "valueMissing");
    143 
    144  test(() => {
    145    assert_equals(document.getElementById("messagetest").validationMessage, '');
    146  }, 'validationMessage should return empty string when willValidate is false and valueMissing is true');
    147 </script>