https://github.com/web-platform-tests/wpt
Raw File
Tip revision: 9936e8c644dfcfc1c02ba53fa26c501d64eccc11 authored by Yutaka Hirano on 21 November 2017, 10:42:44 UTC
[XHR] Introduce a mime type parser to a WPT
Tip revision: 9936e8c
HTMLInputElement.html
<!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>
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: '', 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: '', 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');
</script>
</body>
back to top