| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="../../../resources/js-test.js"></script> |
| </head> |
| <body> |
| <div id="container"></div> |
| |
| <script> |
| if (window.testRunner) |
| testRunner.waitUntilDone(); |
| |
| function createShadowForm() { |
| var container = document.getElementById('container'); |
| var shadowRoot = container.attachShadow({mode: 'open'}); |
| |
| shadowRoot.innerHTML = |
| '<form>' + |
| ' <input type="hidden" name="hidden" value="hidden">' + |
| ' <input type="text" name="text" value="text">' + |
| ' <input type="checkbox" name="checkbox1" checked>' + |
| ' <input type="checkbox" name="checkbox2">' + |
| ' <input type="range" name="range" min="0" max="100" value="50">' + |
| ' <textarea name="textarea">textarea</textarea>' + |
| ' <input id="submit" type="submit">' + |
| '</form>'; |
| |
| return shadowRoot.getElementById('submit'); |
| } |
| |
| function parseQuery(query) { |
| var result = {}; |
| var nameValues = query.split('&'); |
| |
| for (var i = 0; i < nameValues.length; ++i) { |
| var idx = nameValues[i].indexOf('='); |
| var name = nameValues[i].substr(0, idx); |
| var value = nameValues[i].substr(idx + 1); |
| |
| result[name] = value; |
| } |
| |
| return result; |
| } |
| |
| var obj; |
| function checkQuery(query) { |
| obj = parseQuery(query); |
| |
| shouldBe("obj.hidden", "'hidden'"); |
| shouldBe("obj.text", "'text'"); |
| shouldBe("obj.checkbox1", "'on'"); |
| shouldBeUndefined("obj.checkbox2"); |
| shouldBe("obj.range", "'50'"); |
| shouldBe("obj.textarea", "'textarea'"); |
| } |
| |
| var submitButton = createShadowForm(); |
| if (location.href.indexOf('?') > 0) { |
| var query = location.href.substr(location.href.indexOf('?') + 1); |
| checkQuery(query); |
| |
| if (window.testRunner) |
| testRunner.notifyDone(); |
| } else { |
| submitButton.click(); |
| } |
| |
| var successfullyParsed = true; |
| </script> |
| |
| </body> |
| </html> |