From: <asa...@us...> - 2017-05-04 12:11:46
|
Revision: 14354 http://sourceforge.net/p/htmlunit/code/14354 Author: asashour Date: 2017-05-04 12:11:43 +0000 (Thu, 04 May 2017) Log Message: ----------- JavaScript: 'hidden' property Modified Paths: -------------- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/Window.java trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/dom/Document.java trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLElement.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLElementTest.java Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/Window.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/Window.java 2017-05-04 12:00:25 UTC (rev 14353) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/Window.java 2017-05-04 12:11:43 UTC (rev 14354) @@ -268,7 +268,6 @@ */ @JsxFunction public void alert(final Object message) { -// System.out.println(message); // use Object as parameter and perform String conversion by ourself // this allows to place breakpoint here and "see" the message object and its properties final String stringMessage = Context.toString(message); Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/dom/Document.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/dom/Document.java 2017-05-04 12:00:25 UTC (rev 14353) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/dom/Document.java 2017-05-04 12:11:43 UTC (rev 14354) @@ -1725,4 +1725,13 @@ setEventHandler("oninput", onchange); } + /** + * Returns the {@code hidden} property. + * @return the {@code hidden} property + */ + @JsxGetter + public boolean getHidden() { + return false; + } + } Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLElement.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLElement.java 2017-05-04 12:00:25 UTC (rev 14353) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLElement.java 2017-05-04 12:11:43 UTC (rev 14354) @@ -2517,4 +2517,27 @@ public boolean contains(final Object element) { return super.contains(element); } + + /** + * Returns the {@code hidden} property. + * @return the {@code hidden} property + */ + @JsxGetter + public boolean isHidden() { + return getDomNodeOrDie().hasAttribute("hidden"); + } + + /** + * Sets the {@code hidden} property. + * @param hidden the {@code hidden} value + */ + @JsxGetter + public void setHidden(final boolean hidden) { + if (hidden) { + getDomNodeOrDie().setAttribute("hidden", "hidden"); + } + else { + getDomNodeOrDie().removeAttribute("hidden"); + } + } } Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLElementTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLElementTest.java 2017-05-04 12:00:25 UTC (rev 14353) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLElementTest.java 2017-05-04 12:11:43 UTC (rev 14354) @@ -197,13 +197,11 @@ + "<title>test</title>\n" + "<script>\n" + "function doTest() {\n" - + " try {\n" - + " var myNode = document.getElementById('myNode');\n" - + " alert(myNode.getAttributeNS('myNamespaceURI', 'my:foo'));\n" - + " myNode.setAttributeNS('myNamespaceURI', 'my:foo', 'bla');\n" - + " alert(myNode.getAttributeNS('myNamespaceURI', 'foo'));\n" - + " alert(myNode.getAttributeNodeNS('myNamespaceURI', 'foo').specified);\n" - + " } catch (e) { alert('exception'); }\n" + + " var myNode = document.getElementById('myNode');\n" + + " alert(myNode.getAttributeNS('myNamespaceURI', 'my:foo'));\n" + + " myNode.setAttributeNS('myNamespaceURI', 'my:foo', 'bla');\n" + + " alert(myNode.getAttributeNS('myNamespaceURI', 'foo'));\n" + + " alert(myNode.getAttributeNodeNS('myNamespaceURI', 'foo').specified);\n" + "}\n" + "</script>\n" + "</head>\n" @@ -1134,9 +1132,7 @@ + " <script>\n" + " function doTest() {\n" + " var myNode = document.getElementById('myNode');\n" - + " try {\n" - + " alert('Outer = ' + myNode.outerHTML);\n" - + " } catch(e) {alert('exception'); }\n" + + " alert('Outer = ' + myNode.outerHTML);\n" + " }\n" + " </script>\n" + "</head>\n" @@ -1420,11 +1416,9 @@ + " var myNode = document.getElementById('myNode');\n" + " var innerNode = document.getElementById('innerNode');\n" + " alert('Old = ' + myNode.innerHTML);\n" - + " try {\n" - + " innerNode.outerHTML = " + newVal + ";\n" - + " alert('New = ' + myNode.innerHTML);\n" - + " alert('Children: ' + myNode.childNodes.length);\n" - + " } catch(e) {alert('exception'); }\n" + + " innerNode.outerHTML = " + newVal + ";\n" + + " alert('New = ' + myNode.innerHTML);\n" + + " alert('Children: ' + myNode.childNodes.length);\n" + " }\n" + " </script>\n" + "</head>\n" @@ -1452,11 +1446,9 @@ + " var myNode = document.getElementById('myNode');\n" + " document.body.removeChild(myNode);\n" + " alert('Old = ' + myNode.innerHTML);\n" - + " try {\n" - + " myNode.outerHTML = null;\n" - + " alert('New = ' + myNode.innerHTML);\n" - + " alert('Children: ' + myNode.childNodes.length);\n" - + " } catch(e) {alert('exception'); }\n" + + " myNode.outerHTML = null;\n" + + " alert('New = ' + myNode.innerHTML);\n" + + " alert('Children: ' + myNode.childNodes.length);\n" + " }\n" + " </script>\n" + "</head>\n" @@ -1485,11 +1477,9 @@ + " var myNode = document.getElementById('myNode');\n" + " document.body.removeChild(myNode);\n" + " alert('Old = ' + myNode.innerHTML);\n" - + " try {\n" - + " myNode.outerHTML = undefined;\n" - + " alert('New = ' + myNode.innerHTML);\n" - + " alert('Children: ' + myNode.childNodes.length);\n" - + " } catch(e) {alert('exception'); }\n" + + " myNode.outerHTML = undefined;\n" + + " alert('New = ' + myNode.innerHTML);\n" + + " alert('Children: ' + myNode.childNodes.length);\n" + " }\n" + " </script>\n" + "</head>\n" @@ -1518,11 +1508,9 @@ + " var myNode = document.getElementById('myNode');\n" + " document.body.removeChild(myNode);\n" + " alert('Old = ' + myNode.innerHTML);\n" - + " try {\n" - + " myNode.outerHTML = '';\n" - + " alert('New = ' + myNode.innerHTML);\n" - + " alert('Children: ' + myNode.childNodes.length);\n" - + " } catch(e) {alert('exception'); }\n" + + " myNode.outerHTML = '';\n" + + " alert('New = ' + myNode.innerHTML);\n" + + " alert('Children: ' + myNode.childNodes.length);\n" + " }\n" + " </script>\n" + "</head>\n" @@ -1551,11 +1539,9 @@ + " var myNode = document.getElementById('myNode');\n" + " document.body.removeChild(myNode);\n" + " alert('Old = ' + myNode.innerHTML);\n" - + " try {\n" - + " myNode.outerHTML = '';\n" - + " alert('New = ' + myNode.innerHTML);\n" - + " alert('Children: ' + myNode.childNodes.length);\n" - + " } catch(e) {alert('exception'); }\n" + + " myNode.outerHTML = '';\n" + + " alert('New = ' + myNode.innerHTML);\n" + + " alert('Children: ' + myNode.childNodes.length);\n" + " }\n" + " </script>\n" + "</head>\n" @@ -1584,11 +1570,9 @@ + " var myNode = document.getElementById('myNode');\n" + " document.body.removeChild(myNode);\n" + " alert('Old = ' + myNode.innerHTML);\n" - + " try {\n" - + " myNode.outerHTML = '<p>test</p>';\n" - + " alert('New = ' + myNode.innerHTML);\n" - + " alert('Children: ' + myNode.childNodes.length);\n" - + " } catch(e) {alert('exception'); }\n" + + " myNode.outerHTML = '<p>test</p>';\n" + + " alert('New = ' + myNode.innerHTML);\n" + + " alert('Children: ' + myNode.childNodes.length);\n" + " }\n" + " </script>\n" + "</head>\n" @@ -1722,7 +1706,6 @@ final String html = "<html><body>\n" + "<div id='myDiv'><br/><div><span>test</span></div></div>\n" + "<script>\n" - + "try {\n" + " var oDiv = document.getElementById('myDiv');\n" + " for (var i = 0; i < oDiv.children.length; i++) {\n" + " alert(oDiv.children[i].tagName);\n" @@ -1731,7 +1714,6 @@ + " alert(oCol.length);\n" + " oDiv.insertAdjacentHTML('beforeEnd', '<br>');\n" + " alert(oCol.length);\n" - + "} catch(e) { alert('exception'); }\n" + "</script></body></html>"; loadPageWithAlerts2(html); } @@ -2117,13 +2099,11 @@ public void offsetParent_newElement() throws Exception { final String html = "<html><body>\n" + "<script>\n" - + "try {\n" + " var oNew = document.createElement('span');\n" + " alert(oNew.offsetParent);\n" - + "} catch(e) { alert('exception') }\n" - + "var fragment = document.createDocumentFragment();\n" - + "fragment.appendChild(oNew);\n" - + "alert(oNew.offsetParent);\n" + + " var fragment = document.createDocumentFragment();\n" + + " fragment.appendChild(oNew);\n" + + " alert(oNew.offsetParent);\n" + "</script>\n" + "</body></html>"; loadPageWithAlerts2(html); @@ -2226,21 +2206,19 @@ final String html = "<html><head><title>Prototype test</title>\n" + "<script>\n" + "function test() {\n" - + " try {\n" - + " var d = document.getElementById('foo');\n" - + " alert(d.foo);\n" - + " alert(d.myFunction);\n" - + " var link = document.getElementById('testLink');\n" - + " alert(link.foo);\n" - + " alert(link.myFunction);\n" - + " HTMLElement.prototype.foo = 123;\n" - + " alert(HTMLElement.foo);\n" - + " HTMLElement.prototype.myFunction = function() { return 'from myFunction'; };\n" - + " alert(d.foo);\n" - + " alert(d.myFunction());\n" - + " alert(link.foo);\n" - + " alert(link.myFunction());\n" - + " } catch (e) { alert('exception'); }\n" + + " var d = document.getElementById('foo');\n" + + " alert(d.foo);\n" + + " alert(d.myFunction);\n" + + " var link = document.getElementById('testLink');\n" + + " alert(link.foo);\n" + + " alert(link.myFunction);\n" + + " HTMLElement.prototype.foo = 123;\n" + + " alert(HTMLElement.foo);\n" + + " HTMLElement.prototype.myFunction = function() { return 'from myFunction'; };\n" + + " alert(d.foo);\n" + + " alert(d.myFunction());\n" + + " alert(link.foo);\n" + + " alert(link.myFunction());\n" + "}\n" + "</script></head><body onload='test()''>\n" + "<div id='foo'>bla</div>\n" @@ -2259,12 +2237,10 @@ public void prototype_Element() throws Exception { final String html = "<html><head><title>foo</title><script>\n" + "function test() {\n" - + " try {\n" - + " Element.prototype.selectNodes = function(sExpr){\n" - + " alert('in selectNodes');\n" - + " }\n" - + " document.getElementById('myDiv').selectNodes();\n" - + " } catch (e) { alert('exception'); }\n" + + " Element.prototype.selectNodes = function(sExpr){\n" + + " alert('in selectNodes');\n" + + " }\n" + + " document.getElementById('myDiv').selectNodes();\n" + "}\n" + "</script></head><body onload='test()'>\n" + " <div id='myDiv'></div>\n" @@ -2281,12 +2257,10 @@ final String html = "<html><head><title>instanceof test</title>\n" + "<script>\n" + "function test() {\n" - + " try {\n" - + " var d = document.getElementById('foo');\n" - + " alert(d instanceof HTMLDivElement);\n" - + " var link = document.getElementById('testLink');\n" - + " alert(link instanceof HTMLAnchorElement);\n" - + " } catch (e) { alert('exception'); }\n" + + " var d = document.getElementById('foo');\n" + + " alert(d instanceof HTMLDivElement);\n" + + " var link = document.getElementById('testLink');\n" + + " alert(link instanceof HTMLAnchorElement);\n" + "}\n" + "</script></head><body onload='test()''>\n" + "<div id='foo'>bla</div>\n" @@ -2415,11 +2389,9 @@ public void getBoundingClientRect() throws Exception { final String html = "<html><body>\n" + "<div id='div1'>hello</div><script>\n" - + "try {\n" + " var d1 = document.getElementById('div1');\n" + " var pos = d1.getBoundingClientRect();\n" + " alert(pos);\n" - + "} catch (e) { alert('exception');}\n" + "</script></body></html>"; loadPageWithAlerts2(html); } @@ -2432,12 +2404,10 @@ public void getBoundingClientRect2() throws Exception { final String html = "<html><head><title>foo</title><script>\n" + " function test() {\n" - + " try {\n" + " var d1 = document.getElementById('div1');\n" + " var pos = d1.getBoundingClientRect();\n" + " alert(pos.left);\n" + " alert(pos.top);\n" - + " } catch (e) { alert('exception');}\n" + " }\n" + "</script></head><body onload='test()'>\n" + "<div id='outer' style='position: absolute; left: 400px; top: 100px; width: 50px; height: 80px;'>" @@ -2454,7 +2424,6 @@ public void getBoundingClientRect_Scroll() throws Exception { final String html = "<html><head><title>foo</title><script>\n" + " function test() {\n" - + " try {\n" + " var d1 = document.getElementById('outer');\n" + " d1.scrollTop=150;\n" + " var pos = d1.getBoundingClientRect();\n" @@ -2465,7 +2434,6 @@ + " pos = d1.getBoundingClientRect();\n" + " alert(pos.left);\n" + " alert(pos.top);\n" - + " } catch (e) { alert('exception');}\n" + " }\n" + "</script></head>\n" + "<body onload='test()'>\n" @@ -2540,13 +2508,8 @@ "<html><head><title>foo</title><script>\n" + " function test() {\n" + " var d1 = document.createElement('div');\n" - + " try {\n" - + " alert(d1.getClientRects());\n" - + " } catch(e) { alert('exception'); }\n" - - + " try {\n" - + " alert(d1.getClientRects().length);\n" - + " } catch(e) { alert('exception'); }\n" + + " alert(d1.getClientRects());\n" + + " alert(d1.getClientRects().length);\n" + " }\n" + "</script></head>\n" + "<body onload='test()'>\n" @@ -2571,13 +2534,8 @@ + " }\n" + "\n" + " function display(elem) {\n" - + " try {\n" - + " alert(elem.getClientRects());\n" - + " } catch(e) { alert('exception'); }\n" - - + " try {\n" - + " alert(elem.getClientRects().length);\n" - + " } catch(e) { alert('exception'); }\n" + + " alert(elem.getClientRects());\n" + + " alert(elem.getClientRects().length);\n" + " }\n" + "</script></head>\n" + "<body onload='test()'>\n" @@ -2736,12 +2694,10 @@ "<html><head>\n" + "<script>\n" + "function foo() {\n" - + " try {\n" - + " var e = document.createEvent('MouseEvents');\n" - + " e.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n" - + " var d = document.getElementById('d');\n" - + " var canceled = !d.dispatchEvent(e);\n" - + " } catch(e) { alert('exception'); }\n" + + " var e = document.createEvent('MouseEvents');\n" + + " e.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n" + + " var d = document.getElementById('d');\n" + + " var canceled = !d.dispatchEvent(e);\n" + "}\n" + "</script></head>\n" + "<body onload='foo()'><div id='d' onclick='alert(\"clicked\")'>foo</div></body>\n" @@ -2763,11 +2719,9 @@ + " <span id='foo'/>\n" + "</form>\n" + "<script>\n" - + " try {\n" - + " var e = document.createEvent('HTMLEvents');\n" - + " e.initEvent('submit', true, false);\n" - + " document.getElementById('theForm').dispatchEvent(e);\n" - + " } catch(e) { alert('exception'); }\n" + + " var e = document.createEvent('HTMLEvents');\n" + + " e.initEvent('submit', true, false);\n" + + " document.getElementById('theForm').dispatchEvent(e);\n" + "</script>\n" + "</body></html>"; @@ -2808,12 +2762,10 @@ + "<head>\n" + "<script>\n" + " function test() {\n" - + " try {\n" - + " var elt = document.body;\n" - + " alert(elt.hasAttribute('onload'));\n" - + " alert(elt.hasAttribute('onLoad'));\n" - + " alert(elt.hasAttribute('foo'));\n" - + " } catch(e) { alert('exception'); }\n" + + " var elt = document.body;\n" + + " alert(elt.hasAttribute('onload'));\n" + + " alert(elt.hasAttribute('onLoad'));\n" + + " alert(elt.hasAttribute('foo'));\n" + " }\n" + "</script>\n" + "</head>\n" @@ -2834,10 +2786,8 @@ + "<head>\n" + "<script>\n" + " function test() {\n" - + " try {\n" - + " var elt = document.body;\n" - + " alert(typeof elt.hasAttribute);\n" - + " } catch(e) { alert('exception'); }\n" + + " var elt = document.body;\n" + + " alert(typeof elt.hasAttribute);\n" + " }\n" + "</script>\n" + "</head>\n" @@ -2857,13 +2807,11 @@ + "<head>\n" + "<script>\n" + " function test() {\n" - + " try {\n" - + " var elt = document.body;\n" - + " alert(typeof elt.hasAttribute);\n" - + " alert(elt.hasAttribute('onload'));\n" - + " alert(elt.hasAttribute('onLoad'));\n" - + " alert(elt.hasAttribute('foo'));\n" - + " } catch(e) { alert('exception'); }\n" + + " var elt = document.body;\n" + + " alert(typeof elt.hasAttribute);\n" + + " alert(elt.hasAttribute('onload'));\n" + + " alert(elt.hasAttribute('onLoad'));\n" + + " alert(elt.hasAttribute('foo'));\n" + " }\n" + "</script>\n" + "</head>\n" @@ -3241,15 +3189,12 @@ + " var b = document.body;\n" + " var div1 = document.getElementById('div1');\n" + " alert(typeof document.body.getElementsByClassName);\n" - + " try {\n" - + " test('*');\n" - + " test('foo');\n" - + " test('foo red');\n" - + " test('red foo');\n" - + " test('blue foo');\n" - + " test(null);\n" - + " }\n" - + " catch (e) { alert('exception') }\n" + + " test('*');\n" + + " test('foo');\n" + + " test('foo red');\n" + + " test('red foo');\n" + + " test('blue foo');\n" + + " test(null);\n" + "}\n" + "</script></head><body onload='doTest()'>\n" + "<div class='foo' id='div1'>\n" @@ -3785,12 +3730,10 @@ + " var parser=new DOMParser();\n" + " var doc=parser.parseFromString(text,'text/xml');\n" + " }\n" - + " try {\n" - + " var elem = doc.documentElement.getElementsByTagName('html').item(0);\n" - + " alert(elem.getAttribute('hi'));\n" - + " elem.setAttribute('hi', 'ho');\n" - + " alert(elem.getAttribute('hi'));\n" - + " } catch (e) { alert('exception'); }\n" + + " var elem = doc.documentElement.getElementsByTagName('html').item(0);\n" + + " alert(elem.getAttribute('hi'));\n" + + " elem.setAttribute('hi', 'ho');\n" + + " alert(elem.getAttribute('hi'));\n" + " }\n" + "</script></head><body onload='test()'>\n" + "</body></html>"; @@ -3805,12 +3748,10 @@ @Alerts({"[object Text]", "[object Text]"}) public void textContentShouldNotDetachNestedNode() throws Exception { final String html = "<html><body><div><div id='it'>foo</div></div><script>\n" - + "try {\n" + " var elt = document.getElementById('it');\n" + " alert(elt.firstChild);\n" + " elt.parentNode.textContent = '';\n" + " alert(elt.firstChild);\n" - + "} catch (e) { alert('exception'); }\n" + "</script></body></html>"; loadPageWithAlerts2(html); @@ -3901,20 +3842,15 @@ */ @Test @Alerts("declared") - // IE8 does not support appendChild for script elements public void appendChildDeclareJavaScript() throws Exception { final String html = HtmlPageTest.STANDARDS_MODE_PREFIX_ + "<html><head><title>foo</title><script>\n" + " function test() {\n" + " var newnode = document.createElement('script');\n" - + " try {\n" - + " newnode.appendChild(document.createTextNode('function tester() { alerter(); }'));\n" - + " var outernode = document.getElementById('myNode');\n" - + " outernode.appendChild(newnode);\n" - + " try {\n" - + " tester();\n" - + " } catch(e) { alert('exception'); }\n" - + " } catch(e) { alert('exception-append'); }\n" + + " newnode.appendChild(document.createTextNode('function tester() { alerter(); }'));\n" + + " var outernode = document.getElementById('myNode');\n" + + " outernode.appendChild(newnode);\n" + + " tester();\n" + " }\n" + " function alerter() {\n" + " alert('declared');\n" @@ -3984,20 +3920,15 @@ */ @Test @Alerts("declared") - // IE8 does not support appendChild for script elements public void insertBeforeDeclareJavaScript() throws Exception { final String html = HtmlPageTest.STANDARDS_MODE_PREFIX_ + "<html><head><title>foo</title><script>\n" + " function test() {\n" + " var newnode = document.createElement('script');\n" - + " try {\n" - + " newnode.appendChild(document.createTextNode('function tester() { alerter(); }'));\n" - + " var outernode = document.getElementById('myNode');\n" - + " outernode.insertBefore(newnode, null);\n" - + " try {\n" - + " tester();\n" - + " } catch(e) { alert('exception'); }\n" - + " } catch(e) { alert('exception-append'); }\n" + + " newnode.appendChild(document.createTextNode('function tester() { alerter(); }'));\n" + + " var outernode = document.getElementById('myNode');\n" + + " outernode.insertBefore(newnode, null);\n" + + " tester();\n" + " }\n" + " function alerter() {\n" + " alert('declared');\n" @@ -4067,20 +3998,15 @@ */ @Test @Alerts("declared") - // IE8 does not support appendChild for script elements public void replaceChildDeclareJavaScript() throws Exception { final String html = HtmlPageTest.STANDARDS_MODE_PREFIX_ + "<html><head><title>foo</title><script>\n" + " function test() {\n" + " var newnode = document.createElement('script');\n" - + " try {\n" - + " newnode.appendChild(document.createTextNode('function tester() { alerter(); }'));\n" - + " var outernode = document.getElementById('myNode');\n" - + " outernode.replaceChild(newnode, document.getElementById('inner'));\n" - + " try {\n" - + " tester();\n" - + " } catch(e) { alert('exception'); }\n" - + " } catch(e) { alert('exception-append'); }\n" + + " newnode.appendChild(document.createTextNode('function tester() { alerter(); }'));\n" + + " var outernode = document.getElementById('myNode');\n" + + " outernode.replaceChild(newnode, document.getElementById('inner'));\n" + + " tester();\n" + " }\n" + " function alerter() {\n" + " alert('declared');\n" @@ -4333,15 +4259,11 @@ + "<html><head><title>foo</title><script>\n" + " function test() {\n" + " var newnode = document.createElement('script');\n" - + " try {\n" - + " newnode.appendChild(document.createTextNode('function tester() { alerter(); }'));\n" - + " var outernode = document.getElementById('myNode');\n" - + " if (!outernode.insertAdjacentElement) { alert('insertAdjacentElement not available'); return }\n" - + " outernode.insertAdjacentElement('afterend', newnode);\n" - + " try {\n" - + " tester();\n" - + " } catch(e) { alert('exception'); }\n" - + " } catch(e) { alert('exception-append'); }\n" + + " newnode.appendChild(document.createTextNode('function tester() { alerter(); }'));\n" + + " var outernode = document.getElementById('myNode');\n" + + " if (!outernode.insertAdjacentElement) { alert('insertAdjacentElement not available'); return }\n" + + " outernode.insertAdjacentElement('afterend', newnode);\n" + + " tester();\n" + " }\n" + " function alerter() {\n" + " alert('declared');\n" @@ -4722,4 +4644,28 @@ loadPageWithAlerts2(html); } + /** + * @throws Exception if the test fails + */ + @Test + @Alerts({"false", "false"}) + public void hidden() throws Exception { + final String html = + "<html><head><script>\n" + + " function test() {\n" + + " var d1 = document.getElementById('div1');\n" + + " alert(d1.hidden);\n" + + " var d2 = document.getElementById('div2');\n" + + " alert(d2.hidden);\n" + + " }\n" + + "</script></head>\n" + + "<body onload='test()'>\n" + + " <div id='div1' style='display: none'>\n" + + " </div>\n" + + " <div id='div2' />\n" + + "</body></html>"; + + loadPageWithAlerts2(html); + } + } |