1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package org.htmlunit.javascript;
16
17 import org.htmlunit.ScriptException;
18 import org.htmlunit.SimpleWebTestCase;
19 import org.htmlunit.WebClient;
20 import org.htmlunit.html.HtmlPage;
21 import org.htmlunit.junit.BrowserRunner;
22 import org.junit.Test;
23 import org.junit.runner.RunWith;
24
25
26
27
28
29
30 @RunWith(BrowserRunner.class)
31 public class JavascriptErrorListener2Test extends SimpleWebTestCase {
32
33
34
35
36
37
38 @Test
39 public void parsingError() throws Exception {
40 final StringBuilder scriptExceptions = new StringBuilder();
41
42 final WebClient webClient = getWebClientWithMockWebConnection();
43 webClient.getOptions().setThrowExceptionOnScriptError(false);
44 webClient.setJavaScriptErrorListener(new SilentJavaScriptErrorListener() {
45 @Override
46 public void scriptException(final HtmlPage page, final ScriptException scriptException) {
47 scriptExceptions.append(scriptException.getCause() + "\n");
48 }
49 });
50
51 final String html = DOCTYPE_HTML + "<html><body><script>while (</script></body></html>";
52 getMockWebConnection().setDefaultResponse(html);
53 webClient.getPage(URL_FIRST);
54
55 assertEquals("org.htmlunit.corejs.javascript.EvaluatorException: "
56 + "Unexpected end of file (script in " + URL_FIRST + " from (2, 21) to (2, 37)#2)\n",
57 scriptExceptions.toString());
58 }
59 }