File: HTMLInputElement.html

package info (click to toggle)
firefox 149.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 4,767,760 kB
  • sloc: cpp: 7,416,064; javascript: 6,752,859; ansic: 3,774,850; python: 1,250,473; xml: 641,578; asm: 439,191; java: 186,617; sh: 56,634; makefile: 18,856; objc: 13,092; perl: 12,763; pascal: 5,960; yacc: 4,583; cs: 3,846; lex: 1,720; ruby: 1,002; php: 436; lisp: 258; awk: 105; sql: 66; sed: 53; csh: 10; exp: 6
file content (66 lines) | stat: -rw-r--r-- 3,666 bytes parent folder | download | duplicates (18)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<!DOCTYPE html>
<meta charset="utf-8">
<title>Custom Elements: CEReactions on HTMLInputElement interface</title>
<link rel="author" title="Intel" href="http://www.intel.com">
<link rel="author" title="Wanming Lin" href="mailto:wanming.lin@intel.com">
<meta name="assert" content="capture of HTMLInputElement interface must have CEReactions">
<meta name="help" content="https://www.w3.org/TR/html-media-capture/#the-capture-attribute">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../../resources/custom-elements-helpers.js"></script>
<script src="../resources/reactions.js"></script>
<body>
<script>
if ('capture' in HTMLInputElement.prototype) {
    test(() => {
        const element = define_build_in_custom_element(['capture'], HTMLInputElement, 'input');
        const instance = document.createElement('input', { is: element.name });

        assert_array_equals(element.takeLog().types(), ['constructed']);
        instance['capture'] = 'user';
        const logEntries = element.takeLog();
        assert_array_equals(logEntries.types(), ['attributeChanged']);
        assert_attribute_log_entry(logEntries.last(), {name: 'capture', oldValue: null, newValue: 'user', namespace: null});
    }, 'capture on HTMLInputElement must enqueue an attributeChanged reaction when adding new attribute');

    test(() => {
        const element = define_build_in_custom_element(['capture'], HTMLInputElement, 'input');
        const instance = document.createElement('input', { is: element.name });

        instance['capture'] = 'user';
        assert_array_equals(element.takeLog().types(), ['constructed', 'attributeChanged']);
        instance['capture'] = 'environment';
        const logEntries = element.takeLog();
        assert_array_equals(logEntries.types(), ['attributeChanged']);
        assert_attribute_log_entry(logEntries.last(), {name: 'capture', oldValue: 'user', newValue: 'environment', namespace: null});
    }, 'capture on HTMLInputElement must enqueue an attributeChanged reaction when replacing an existing attribute');

    test(() => {
        const element = define_build_in_custom_element(['capture'], HTMLInputElement, 'input');
        const instance = document.createElement('input', { is: element.name });

        assert_array_equals(element.takeLog().types(), ['constructed']);
        instance['capture'] = 'asdf';
        const logEntries = element.takeLog();
        assert_array_equals(logEntries.types(), ['attributeChanged']);
        assert_attribute_log_entry(logEntries.last(), {name: 'capture', oldValue: null, newValue: 'asdf', namespace: null});
    }, 'capture on HTMLInputElement must enqueue an attributeChanged reaction when adding invalid value default');

    test(() => {
        const element = define_build_in_custom_element(['capture'], HTMLInputElement, 'input');
        const instance = document.createElement('input', { is: element.name });

        instance['capture'] = 'user';
        assert_array_equals(element.takeLog().types(), ['constructed', 'attributeChanged']);
        instance['capture'] = '';
        const logEntries = element.takeLog();
        assert_array_equals(logEntries.types(), ['attributeChanged']);
        assert_attribute_log_entry(logEntries.last(), {name: 'capture', oldValue: 'user', newValue: '', namespace: null});
    }, 'capture on HTMLInputElement must enqueue an attributeChanged reaction when removing the attribute');
} else {
    // testharness.js doesn't allow a test file with no tests.
    test(() => {
    }, 'No tests if HTMLInputEement has no "capture" IDL attribute');
}
</script>
</body>