<!DOCTYPE html>
<html>
<head>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<dialog></dialog>
<script>
test(function() {
    dialog = document.querySelector('dialog');
    assert_equals(dialog.returnValue, '');

    dialog.returnValue = 'Setting value directly';
    assert_equals(dialog.returnValue, 'Setting value directly');

    dialog.returnValue = null;
    assert_equals(dialog.returnValue, 'null');

    dialog.returnValue = '';
    assert_equals(dialog.returnValue, '');

    dialog.returnValue = 7;
    assert_equals(dialog.returnValue, '7');

    dialog.show();
    dialog.close('Return value set from close()');
    assert_equals(dialog.returnValue, 'Return value set from close()');

    dialog.show();
    dialog.close('');
    assert_equals(dialog.returnValue, '');

    dialog.show();
    dialog.close(null);
    assert_equals(dialog.returnValue, 'null');

    dialog.returnValue = 'Should not change because no argument to close()';
    dialog.show();
    dialog.close();
    assert_equals(dialog.returnValue, 'Should not change because no argument to close()');

    dialog.returnValue = 'Should not change because of undefined argument to close()';
    dialog.show();
    dialog.close(undefined);
    assert_equals(dialog.returnValue, 'Should not change because of undefined argument to close()');

    dialog.returnValue = 'Should not change because of no-op close()';
    dialog.close('blah');
    assert_equals(dialog.returnValue, 'Should not change because of no-op close()');
}, "Tests dialog.returnValue is settable and returns the last value set.");
</script>
</body>
</html>
