| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
| <html> |
| <head> |
| <script src="../../resources/js-test-pre.js"></script> |
| </head> |
| <body> |
| <p id="description"></p> |
| <div id="console"></div> |
| <script> |
| description('Tests the behavior of .min and .max of HTMLInputElement.'); |
| |
| var input = document.createElement('input'); |
| |
| // .min and .max just reflect the corresponding attributes. |
| input.type = 'text'; |
| shouldBe('input.min', '""'); |
| shouldBe('input.max', '""'); |
| input.setAttribute('min', '0'); |
| input.setAttribute('max', '100'); |
| shouldBe('input.min', '"0"'); |
| shouldBe('input.max', '"100"'); |
| input.setAttribute('min', 'abc'); |
| input.setAttribute('max', 'qwerty'); |
| shouldBe('input.min', '"abc"'); |
| shouldBe('input.max', '"qwerty"'); |
| |
| input.min = 'foo'; |
| input.max = 'bar'; |
| shouldBe('input.getAttribute("min")', '"foo"'); |
| shouldBe('input.getAttribute("max")', '"bar"'); |
| input.min = ''; |
| input.max = ''; |
| shouldBe('input.getAttribute("min")', '""'); |
| shouldBe('input.getAttribute("max")', '""'); |
| |
| // Null. |
| debug('Setting null to min:'); |
| input.min = null; |
| shouldBeEqualToString('input.min', 'null'); |
| shouldBeEqualToString('input.getAttribute("min")', 'null'); |
| input.setAttribute('min', null); |
| shouldBe('input.min', '"null"'); |
| |
| debug('Setting null to max:'); |
| input.max = null; |
| shouldBeEqualToString('input.max', 'null'); |
| shouldBeEqualToString('input.getAttribute("max")', 'null'); |
| input.setAttribute('max', null); |
| shouldBe('input.max', '"null"'); |
| |
| // Undefined. |
| debug('Setting undefined to min:'); |
| input.min = undefined; |
| shouldBe('input.min', '"undefined"'); |
| shouldBe('input.getAttribute("min")', '"undefined"'); |
| input.setAttribute('min', undefined); |
| shouldBe('input.min', '"undefined"'); |
| |
| debug('Setting undefined to max:'); |
| input.max = undefined; |
| shouldBe('input.max', '"undefined"'); |
| shouldBe('input.getAttribute("max")', '"undefined"'); |
| input.setAttribute('max', undefined); |
| shouldBe('input.max', '"undefined"'); |
| |
| // Non-string. |
| debug('Setting non-string to min:'); |
| input.min = 256; |
| shouldBe('input.min', '"256"'); |
| shouldBe('input.getAttribute("min")', '"256"'); |
| input.setAttribute('min', 256); |
| shouldBe('input.min', '"256"'); |
| |
| debug('Setting non-string to max:'); |
| input.max = 256; |
| shouldBe('input.max', '"256"'); |
| shouldBe('input.getAttribute("max")', '"256"'); |
| input.setAttribute('max', 256); |
| shouldBe('input.max', '"256"'); |
| |
| // The range type has the default minimum and the default maximum. |
| // But they aren't exposed by .min .max IDL attributes. |
| debug('Check implicit min/max of type=range:'); |
| input.type = 'range'; |
| input.setAttribute('min', ''); |
| input.setAttribute('max', ''); |
| shouldBe('input.min', '""'); |
| shouldBe('input.max', '""'); |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |
| </body> |
| </html> |