aboutsummaryrefslogtreecommitdiff
path: root/core/src/test/scala
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/test/scala')
-rw-r--r--core/src/test/scala/org/apache/spark/ui/UISeleniumSuite.scala50
-rw-r--r--core/src/test/scala/org/apache/spark/ui/UISuite.scala38
2 files changed, 49 insertions, 39 deletions
diff --git a/core/src/test/scala/org/apache/spark/ui/UISeleniumSuite.scala b/core/src/test/scala/org/apache/spark/ui/UISeleniumSuite.scala
index 6a972381fa..0d155982a8 100644
--- a/core/src/test/scala/org/apache/spark/ui/UISeleniumSuite.scala
+++ b/core/src/test/scala/org/apache/spark/ui/UISeleniumSuite.scala
@@ -17,20 +17,24 @@
package org.apache.spark.ui
+import javax.servlet.http.HttpServletRequest
+
import scala.collection.JavaConversions._
+import scala.xml.Node
-import org.openqa.selenium.{By, WebDriver}
import org.openqa.selenium.htmlunit.HtmlUnitDriver
+import org.openqa.selenium.{By, WebDriver}
import org.scalatest._
import org.scalatest.concurrent.Eventually._
import org.scalatest.selenium.WebBrowser
import org.scalatest.time.SpanSugar._
-import org.apache.spark._
import org.apache.spark.LocalSparkContext._
+import org.apache.spark._
import org.apache.spark.api.java.StorageLevels
import org.apache.spark.shuffle.FetchFailedException
+
/**
* Selenium tests for the Spark Web UI.
*/
@@ -310,4 +314,46 @@ class UISeleniumSuite extends FunSuite with WebBrowser with Matchers with Before
}
}
}
+
+ test("attaching and detaching a new tab") {
+ withSpark(newSparkContext()) { sc =>
+ val sparkUI = sc.ui.get
+
+ val newTab = new WebUITab(sparkUI, "foo") {
+ attachPage(new WebUIPage("") {
+ def render(request: HttpServletRequest): Seq[Node] = {
+ <b>"html magic"</b>
+ }
+ })
+ }
+ sparkUI.attachTab(newTab)
+ eventually(timeout(10 seconds), interval(50 milliseconds)) {
+ go to (sc.ui.get.appUIAddress.stripSuffix("/"))
+ find(cssSelector("""ul li a[href*="jobs"]""")) should not be(None)
+ find(cssSelector("""ul li a[href*="stages"]""")) should not be(None)
+ find(cssSelector("""ul li a[href*="storage"]""")) should not be(None)
+ find(cssSelector("""ul li a[href*="environment"]""")) should not be(None)
+ find(cssSelector("""ul li a[href*="foo"]""")) should not be(None)
+ }
+ eventually(timeout(10 seconds), interval(50 milliseconds)) {
+ // check whether new page exists
+ go to (sc.ui.get.appUIAddress.stripSuffix("/") + "/foo")
+ find(cssSelector("b")).get.text should include ("html magic")
+ }
+ sparkUI.detachTab(newTab)
+ eventually(timeout(10 seconds), interval(50 milliseconds)) {
+ go to (sc.ui.get.appUIAddress.stripSuffix("/"))
+ find(cssSelector("""ul li a[href*="jobs"]""")) should not be(None)
+ find(cssSelector("""ul li a[href*="stages"]""")) should not be(None)
+ find(cssSelector("""ul li a[href*="storage"]""")) should not be(None)
+ find(cssSelector("""ul li a[href*="environment"]""")) should not be(None)
+ find(cssSelector("""ul li a[href*="foo"]""")) should be(None)
+ }
+ eventually(timeout(10 seconds), interval(50 milliseconds)) {
+ // check new page not exist
+ go to (sc.ui.get.appUIAddress.stripSuffix("/") + "/foo")
+ find(cssSelector("b")) should be(None)
+ }
+ }
+ }
}
diff --git a/core/src/test/scala/org/apache/spark/ui/UISuite.scala b/core/src/test/scala/org/apache/spark/ui/UISuite.scala
index 92a21f82f3..77a038dc17 100644
--- a/core/src/test/scala/org/apache/spark/ui/UISuite.scala
+++ b/core/src/test/scala/org/apache/spark/ui/UISuite.scala
@@ -18,7 +18,6 @@
package org.apache.spark.ui
import java.net.ServerSocket
-import javax.servlet.http.HttpServletRequest
import scala.io.Source
import scala.util.{Failure, Success, Try}
@@ -28,9 +27,8 @@ import org.scalatest.FunSuite
import org.scalatest.concurrent.Eventually._
import org.scalatest.time.SpanSugar._
-import org.apache.spark.{SparkContext, SparkConf}
import org.apache.spark.LocalSparkContext._
-import scala.xml.Node
+import org.apache.spark.{SparkConf, SparkContext}
class UISuite extends FunSuite {
@@ -72,40 +70,6 @@ class UISuite extends FunSuite {
}
}
- ignore("attaching a new tab") {
- withSpark(newSparkContext()) { sc =>
- val sparkUI = sc.ui.get
-
- val newTab = new WebUITab(sparkUI, "foo") {
- attachPage(new WebUIPage("") {
- def render(request: HttpServletRequest): Seq[Node] = {
- <b>"html magic"</b>
- }
- })
- }
- sparkUI.attachTab(newTab)
- eventually(timeout(10 seconds), interval(50 milliseconds)) {
- val html = Source.fromURL(sparkUI.appUIAddress).mkString
- assert(!html.contains("random data that should not be present"))
-
- // check whether new page exists
- assert(html.toLowerCase.contains("foo"))
-
- // check whether other pages still exist
- assert(html.toLowerCase.contains("stages"))
- assert(html.toLowerCase.contains("storage"))
- assert(html.toLowerCase.contains("environment"))
- assert(html.toLowerCase.contains("executors"))
- }
-
- eventually(timeout(10 seconds), interval(50 milliseconds)) {
- val html = Source.fromURL(sparkUI.appUIAddress.stripSuffix("/") + "/foo").mkString
- // check whether new page exists
- assert(html.contains("magic"))
- }
- }
- }
-
test("jetty selects different port under contention") {
val server = new ServerSocket(0)
val startPort = server.getLocalPort