[ https://issues.apache.org/jira/browse/SPARK-31756?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Apache Spark reassigned SPARK-31756: ------------------------------------ Assignee: Kousuke Saruta (was: Apache Spark) > Add real headless browser support for UI test > --------------------------------------------- > > Key: SPARK-31756 > URL: https://issues.apache.org/jira/browse/SPARK-31756 > Project: Spark > Issue Type: Improvement > Components: Web UI > Affects Versions: 3.1.0 > Reporter: Kousuke Saruta > Assignee: Kousuke Saruta > Priority: Major > > In the current master, there are two problems for UI test. > 1. Lots of tests especially JavaScript related ones are done manually. > Appearance is better to be confirmed by our eyes but logic should be tested > by test cases ideally. > > 2. Compared to the real web browsers, HtmlUnit doesn't seem to support > JavaScriopt enough. > I added a JavaScript related test before for SPARK-31534 using HtmlUnit which > is simple library based headless browser for test. > The test I added works somehow but some JavaScript related error is shown in > unit-tests.log. > {code:java} > ======= EXCEPTION START ======== > Exception > class=[net.sourceforge.htmlunit.corejs.javascript.JavaScriptException] > com.gargoylesoftware.htmlunit.ScriptException: Error: TOOLTIP: Option > "sanitizeFn" provided type "window" but expected type "(null|function)". > (http://192.168.1.209:60724/static/jquery-3.4.1.min.js#2) > at > com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:904) > at > net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:628) > at > net.sourceforge.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:515) > at > com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.callFunction(JavaScriptEngine.java:835) > at > com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.callFunction(JavaScriptEngine.java:807) > at > com.gargoylesoftware.htmlunit.InteractivePage.executeJavaScriptFunctionIfPossible(InteractivePage.java:216) > at > com.gargoylesoftware.htmlunit.javascript.background.JavaScriptFunctionJob.runJavaScript(JavaScriptFunctionJob.java:52) > at > com.gargoylesoftware.htmlunit.javascript.background.JavaScriptExecutionJob.run(JavaScriptExecutionJob.java:102) > at > com.gargoylesoftware.htmlunit.javascript.background.JavaScriptJobManagerImpl.runSingleJob(JavaScriptJobManagerImpl.java:426) > at > com.gargoylesoftware.htmlunit.javascript.background.DefaultJavaScriptExecutor.run(DefaultJavaScriptExecutor.java:157) > at java.lang.Thread.run(Thread.java:748) > Caused by: net.sourceforge.htmlunit.corejs.javascript.JavaScriptException: > Error: TOOLTIP: Option "sanitizeFn" provided type "window" but expected type > "(null|function)". (http://192.168.1.209:60724/static/jquery-3.4.1.min.js#2) > at > net.sourceforge.htmlunit.corejs.javascript.Interpreter.interpretLoop(Interpreter.java:1009) > at > net.sourceforge.htmlunit.corejs.javascript.Interpreter.interpret(Interpreter.java:800) > at > net.sourceforge.htmlunit.corejs.javascript.InterpretedFunction.call(InterpretedFunction.java:105) > at > net.sourceforge.htmlunit.corejs.javascript.ContextFactory.doTopCall(ContextFactory.java:413) > at > com.gargoylesoftware.htmlunit.javascript.HtmlUnitContextFactory.doTopCall(HtmlUnitContextFactory.java:252) > at > net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3264) > at > com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$4.doRun(JavaScriptEngine.java:828) > at > com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:889) > ... 10 more > JavaScriptException value = Error: TOOLTIP: Option "sanitizeFn" provided type > "window" but expected type "(null|function)". > == CALLING JAVASCRIPT == > function () { > throw e; > } > ======= EXCEPTION END ========{code} > > I tried to upgrade HtmlUnit to 2.40.0 but what is worse, the test become not > working even though it works on real browsers like Chrome, Safari and Firefox > without error. > {code:java} > [info] UISeleniumSuite: > [info] - SPARK-31534: text for tooltip should be escaped *** FAILED *** (17 > seconds, 745 milliseconds) > [info] The code passed to eventually never returned normally. Attempted 2 > times over 12.910785232 seconds. Last failure message: > com.gargoylesoftware.htmlunit.ScriptException: ReferenceError: Assignment to > undefined "regeneratorRuntime" in strict mode > (http://192.168.1.209:62132/static/vis-timeline-graph2d.min.js#52(Function)#1){code} > > To resolve those problems, it's better to support headless browser for UI > test. -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org