From: <asa...@us...> - 2017-06-16 16:04:06
|
Revision: 14614 http://sourceforge.net/p/htmlunit/code/14614 Author: asashour Date: 2017-06-16 16:04:04 +0000 (Fri, 16 Jun 2017) Log Message: ----------- Fix Audio with null constructor. Issue 1893 Modified Paths: -------------- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLMediaElement.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/ErrorOutputChecker.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLAudioElementTest.java Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLMediaElement.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLMediaElement.java 2017-06-16 15:56:29 UTC (rev 14613) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLMediaElement.java 2017-06-16 16:04:04 UTC (rev 14614) @@ -96,7 +96,11 @@ */ @JsxFunction public String canPlayType(final String type) { - return ((HtmlMedia) getDomNodeOrDie()).canPlayType(type); + final HtmlMedia element = (HtmlMedia) getDomNodeOrNull(); + if (element == null) { + return "maybe"; + } + return element.canPlayType(type); } /** Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/ErrorOutputChecker.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/ErrorOutputChecker.java 2017-06-16 15:56:29 UTC (rev 14613) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/ErrorOutputChecker.java 2017-06-16 16:04:04 UTC (rev 14614) @@ -38,7 +38,7 @@ private final ByteArrayOutputStream baos_ = new ByteArrayOutputStream(); private static final Pattern[] PATTERNS = { Pattern.compile("Starting ChromeDriver " + ExternalTest.CHROME_DRIVER_.replace(".", "\\.") - + "\\.461591 ?\\(?[0-9a-f]*\\)? on port \\d*\r?\n" + + "\\.[0-9]+ ?\\(?[0-9a-f]*\\)? on port \\d*\r?\n" + "Only local connections are allowed\\.\r?\n"), Pattern.compile(".*FirefoxOptions toCapabilities\r?\n"), Pattern.compile(".*Preferring the firefox binary in these options \\(.*\\)\r?\n"), Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLAudioElementTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLAudioElementTest.java 2017-06-16 15:56:29 UTC (rev 14613) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLAudioElementTest.java 2017-06-16 16:04:04 UTC (rev 14614) @@ -148,4 +148,26 @@ loadPage2(html); assertEquals(1, getMockWebConnection().getRequestCount()); } -} + + /** + * @throws Exception if the test fails + */ + @Test + @Alerts({"[object HTMLAudioElement]", "maybe", "done"}) + public void nullConstructor() throws Exception { + final String html = "" + + "<html><head><title>foo</title>\n" + + "<script>\n" + + " function test() {\n" + + " var a = new Audio(null);\n" + + " alert(a);\n" + + " alert(a.canPlayType('audio/ogg'));\n" + + " alert('done');\n" + + " }\n" + + "</script>\n" + + "</head>\n" + + "<body onload='test()'>\n" + + "</body></html>"; + + loadPageWithAlerts2(html); + }} |