formaction must return document's address when formaction is missing
[WebKit-https.git] / LayoutTests / fast / forms / submit-form-attributes.html
index a7686a78d1c0b16b60a001d26cc4ba39e76137ea..8e6914c6ffd06ed5beb2a12bdf342aea5c0de856 100644 (file)
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
 <html>
 <head>
-<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
-<script src="../../fast/js/resources/js-test-pre.js"></script>
+<script src="../../resources/js-test-pre.js"></script>
 </head>
 <body>
 <p id="description"></p>
 <div id="console"></div>
-<script src="script-tests/submit-form-attributes.js"></script>
-<script src="../../fast/js/resources/js-test-post.js"></script>
+<script>
+description('Tests the behavior of .formaction, .formenctype, .formmethod and .formtarget of HTMLInputElement and HTMLButtonElement.');
+
+var input = document.createElement('input');
+
+debug('Ordinary values for input:');
+input.type = "submit";
+shouldBe('input.formAction', 'location.href');
+shouldBeEqualToString('input.formEnctype', '');
+shouldBeEqualToString('input.formMethod', '');
+shouldBeEqualToString('input.formTarget', '');
+
+input.setAttribute('formAction', 'http://localhost');
+shouldBeEqualToString('input.formAction', 'http://localhost/');
+input.setAttribute('formAction', 'http://localhost/');
+shouldBeEqualToString('input.formAction', 'http://localhost/');
+input.setAttribute('formEnctype', 'text/plain');
+shouldBeEqualToString('input.formEnctype', 'text/plain');
+input.setAttribute('formEnctype', 'na');
+shouldBeEqualToString('input.formEnctype', 'application/x-www-form-urlencoded');
+input.setAttribute('formMethod', 'GET');
+shouldBeEqualToString('input.formMethod', 'get');
+input.setAttribute('formMethod', 'ni');
+shouldBeEqualToString('input.formMethod', 'get');
+input.setAttribute('formTarget', '_blank');
+shouldBeEqualToString('input.formTarget', '_blank');
+input.setAttribute('formTarget', 'nu');
+shouldBeEqualToString('input.formTarget', 'nu');
+
+input.formAction = 'http://example.com';
+shouldBeEqualToString('input.formAction', 'http://example.com/');
+input.formAction = 'http://example.com/';
+shouldBeEqualToString('input.formAction', 'http://example.com/');
+input.formEnctype = 'text/plain';
+shouldBeEqualToString('input.formEnctype', 'text/plain');
+input.formEnctype = 'nota';
+shouldBeEqualToString('input.formEnctype', 'application/x-www-form-urlencoded');
+input.formMethod = 'POST';
+shouldBeEqualToString('input.formMethod', 'post');
+input.formMethod = 'neta';
+shouldBeEqualToString('input.formMethod', 'get');
+input.formTarget = 'http://example.com';
+shouldBeEqualToString('input.formTarget', 'http://example.com');
+input.formTarget = 'nta';
+shouldBeEqualToString('input.formTarget', 'nta');
+
+debug('');
+debug('Setting null for input:');
+input.formEnctype = null;
+shouldBeEqualToString('input.formEnctype', '');
+shouldBe('input.getAttribute("formEnctype")', 'null');
+input.setAttribute('formEnctype', null);
+shouldBeEqualToString('input.formEnctype', 'application/x-www-form-urlencoded');
+input.formMethod = null;
+shouldBeEqualToString('input.formMethod', '');
+shouldBe('input.getAttribute("formMethod")', 'null');
+input.setAttribute('formMethod', null);
+shouldBeEqualToString('input.formMethod', 'get');
+input.formTarget = null;
+shouldBeEqualToString('input.formTarget', '');
+shouldBe('input.getAttribute("formTarget")', 'null');
+input.setAttribute('formTarget', null);
+shouldBeEqualToString('input.formTarget', 'null');
+
+debug('');
+debug('Setting undefined for input:');
+input.formEnctype = undefined;
+shouldBeEqualToString('input.formEnctype', 'application/x-www-form-urlencoded');
+shouldBeEqualToString('input.getAttribute("formEnctype")', 'undefined');
+input.setAttribute('formEnctype', undefined);
+shouldBeEqualToString('input.formEnctype', 'application/x-www-form-urlencoded');
+input.formMethod = undefined;
+shouldBeEqualToString('input.formMethod', 'get');
+shouldBeEqualToString('input.getAttribute("formMethod")', 'undefined');
+input.setAttribute('formMethod', undefined);
+shouldBeEqualToString('input.formMethod', 'get');
+input.formTarget = undefined;
+shouldBeEqualToString('input.formTarget', 'undefined');
+shouldBeEqualToString('input.getAttribute("formTarget")', 'undefined');
+input.setAttribute('formTarget', undefined);
+shouldBeEqualToString('input.formTarget', 'undefined');
+
+debug('');
+debug('Setting non-string for input:');
+input.formEnctype = 256;
+shouldBeEqualToString('input.formEnctype', 'application/x-www-form-urlencoded');
+shouldBeEqualToString('input.getAttribute("formEnctype")', '256');
+input.setAttribute('formEnctype', 256);
+shouldBeEqualToString('input.formEnctype', 'application/x-www-form-urlencoded');
+input.formMethod = 256;
+shouldBeEqualToString('input.formMethod', 'get');
+shouldBeEqualToString('input.getAttribute("formMethod")', '256');
+input.setAttribute('formMethod', 256);
+shouldBeEqualToString('input.formMethod', 'get');
+input.formTarget = 256;
+shouldBeEqualToString('input.formTarget', '256');
+shouldBeEqualToString('input.getAttribute("formTarget")', '256');
+input.setAttribute('formTarget', 256);
+shouldBeEqualToString('input.formTarget', '256');
+
+var button = document.createElement('button');
+debug('');
+debug('Ordinary values for button:');
+button.type = "submit";
+shouldBe('button.formAction', 'location.href');
+shouldBeEqualToString('button.formEnctype', '');
+shouldBeEqualToString('button.formMethod', '');
+shouldBeEqualToString('button.formTarget', '');
+
+button.setAttribute('formAction', 'http://localhost');
+shouldBeEqualToString('button.formAction', 'http://localhost/');
+button.setAttribute('formAction', 'http://localhost/');
+shouldBeEqualToString('button.formAction', 'http://localhost/');
+button.setAttribute('formEnctype', 'text/plain');
+shouldBeEqualToString('button.formEnctype', 'text/plain');
+button.setAttribute('formEnctype', 'na');
+shouldBeEqualToString('button.formEnctype', 'application/x-www-form-urlencoded');
+button.setAttribute('formMethod', 'GET');
+shouldBeEqualToString('button.formMethod', 'get');
+button.setAttribute('formMethod', 'na');
+shouldBeEqualToString('button.formMethod', 'get');
+button.setAttribute('formTarget', '_blank');
+shouldBeEqualToString('button.formTarget', '_blank');
+button.setAttribute('formTarget', 'na');
+shouldBeEqualToString('button.formTarget', 'na');
+
+button.formAction = 'http://example.com';
+shouldBeEqualToString('button.formAction', 'http://example.com/');
+button.formAction = 'http://example.com/';
+shouldBeEqualToString('button.formAction', 'http://example.com/');
+button.formEnctype = 'text/plain';
+shouldBeEqualToString('button.formEnctype', 'text/plain');
+button.formEnctype = 'nota';
+shouldBeEqualToString('button.formEnctype', 'application/x-www-form-urlencoded');
+button.formMethod = 'POST';
+shouldBeEqualToString('button.formMethod', 'post');
+button.formMethod = 'nota';
+shouldBeEqualToString('button.formMethod', 'get');
+button.formTarget = 'http://example.com';
+shouldBeEqualToString('button.formTarget', 'http://example.com');
+button.formTarget = 'nota';
+shouldBeEqualToString('button.formTarget', 'nota');
+
+debug('');
+debug('Setting null for button:');
+button.formEnctype = null;
+shouldBeEqualToString('button.formEnctype', '');
+shouldBe('button.getAttribute("formEnctype")', 'null');
+button.setAttribute('formEnctype', null);
+shouldBeEqualToString('button.formEnctype', 'application/x-www-form-urlencoded');
+button.formMethod = null;
+shouldBeEqualToString('button.formMethod', '');
+shouldBe('button.getAttribute("formMethod")', 'null');
+button.setAttribute('formMethod', null);
+shouldBeEqualToString('button.formMethod', 'get');
+button.formTarget = null;
+shouldBeEqualToString('button.formTarget', '');
+shouldBe('button.getAttribute("formTarget")', 'null');
+button.setAttribute('formTarget', null);
+shouldBeEqualToString('button.formTarget', 'null');
+
+debug('');
+debug('Setting undefined for button:');
+button.formEnctype = undefined;
+shouldBeEqualToString('button.formEnctype', 'application/x-www-form-urlencoded');
+shouldBeEqualToString('button.getAttribute("formEnctype")', 'undefined');
+button.setAttribute('formEnctype', undefined);
+shouldBeEqualToString('button.formEnctype', 'application/x-www-form-urlencoded');
+button.formMethod = undefined;
+shouldBeEqualToString('button.formMethod', 'get');
+shouldBeEqualToString('button.getAttribute("formMethod")', 'undefined');
+button.setAttribute('formMethod', undefined);
+shouldBeEqualToString('button.formMethod', 'get');
+button.formTarget = undefined;
+shouldBeEqualToString('button.formTarget', 'undefined');
+shouldBeEqualToString('button.getAttribute("formTarget")', 'undefined');
+button.setAttribute('formTarget', undefined);
+shouldBeEqualToString('button.formTarget', 'undefined');
+
+debug('');
+debug('Setting non-string for button:');
+button.formEnctype = 256;
+shouldBeEqualToString('button.formEnctype', 'application/x-www-form-urlencoded');
+shouldBeEqualToString('button.getAttribute("formEnctype")', '256');
+button.setAttribute('formEnctype', 512);
+shouldBeEqualToString('button.formEnctype', 'application/x-www-form-urlencoded');
+button.formMethod = 128;
+shouldBeEqualToString('button.formMethod', 'get');
+shouldBeEqualToString('button.getAttribute("formMethod")', '128');
+button.setAttribute('formMethod', 17);
+shouldBeEqualToString('button.formMethod', 'get');
+button.formTarget = 100;
+shouldBeEqualToString('button.formTarget', '100');
+shouldBeEqualToString('button.getAttribute("formTarget")', '100');
+button.setAttribute('formTarget', 281);
+shouldBeEqualToString('button.formTarget', '281');
+</script>
+<script src="../../resources/js-test-post.js"></script>
 </body>
 </html>