From: <asa...@us...> - 2017-04-28 10:55:43
|
Revision: 14283 http://sourceforge.net/p/htmlunit/code/14283 Author: asashour Date: 2017-04-28 10:55:40 +0000 (Fri, 28 Apr 2017) Log Message: ----------- Add test case Issue 1874 Modified Paths: -------------- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/ArrayBufferViewBase.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint8ArrayTest.java Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/ArrayBufferViewBase.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/ArrayBufferViewBase.java 2017-04-28 10:30:19 UTC (rev 14282) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/ArrayBufferViewBase.java 2017-04-28 10:55:40 UTC (rev 14283) @@ -202,4 +202,22 @@ return 1; } + /** + * {@inheritDoc} + */ + @Override + public Object getDefaultValue(final Class<?> hint) { + if (String.class.equals(hint) || hint == null) { + final int length = getLength(); + final StringBuilder builder = new StringBuilder(); + for (int i = 0; i < length; i++) { + builder.append(get(i, this)); + if (i < length - 1) { + builder.append(','); + } + } + return builder.toString(); + } + return super.getDefaultValue(hint); + } } Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint8ArrayTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint8ArrayTest.java 2017-04-28 10:30:19 UTC (rev 14282) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint8ArrayTest.java 2017-04-28 10:55:40 UTC (rev 14283) @@ -171,4 +171,33 @@ loadPageWithAlerts2(html); } + /** + * @throws Exception if the test fails + */ + @Test + @Alerts(DEFAULT = {"0", "1"}, + IE = "exception") + public void defineProperty() throws Exception { + final String html + = "<html><head><title>foo</title><script>\n" + + "function test() {\n" + + " try {\n" + + " var array = new Uint8Array(1);\n" + + " (false) || Object.defineProperty(array, Symbol, {\n" + + " get: function() {\n" + + " return 1;\n" + + " }\n" + + " });\n" + + " alert(array);\n" + + " alert(array[Symbol]);\n" + + " } catch(e) {\n" + + " alert('exception');\n" + + " }\n" + + "}\n" + + "</script></head><body onload='test()'>\n" + + "</body></html>"; + + loadPageWithAlerts2(html); + } + } |