Skip to content

Commit 11da805

Browse files
committed
Extracted tab testing into its own spec and updated dependencies
1 parent a48f86e commit 11da805

File tree

3 files changed

+53
-28
lines changed

3 files changed

+53
-28
lines changed

build.sbt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ developers := List(
2525
Developer(id="darkfrog", name="Matt Hicks", email="matt@matthicks.com", url=url("https://matthicks.com"))
2626
)
2727

28-
val seleniumVersion = "4.6.0"
28+
val seleniumVersion = "4.7.2"
2929

3030
libraryDependencies ++= Seq(
3131
"com.outr" %% "scribe-slf4j" % "3.10.5",
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package spec
2+
3+
import com.outr.robobrowser.{By, ReadyState, WindowHandle}
4+
import com.outr.robobrowser.browser.chrome.Chrome
5+
import org.scalatest.matchers.should.Matchers
6+
import org.scalatest.wordspec.AnyWordSpec
7+
import spice.net._
8+
9+
import scala.concurrent.duration._
10+
11+
class MultiTabBrowserSpec extends AnyWordSpec with Matchers {
12+
"Multi-tab Browser" should {
13+
lazy val browser = Chrome.headless.create()
14+
15+
var googleTab: Option[WindowHandle] = None
16+
var duckDuckGoTab: Option[WindowHandle] = None
17+
18+
"initialize and load the first tab" in {
19+
browser.load(url"https://google.com")
20+
browser.url should be(url"https://www.google.com")
21+
browser.title should be("Google")
22+
browser.readyState should be(ReadyState.Complete)
23+
}
24+
"create a new tab" in {
25+
googleTab = Some(browser.window.handle) // Get a reference to the current tab
26+
duckDuckGoTab = Some(browser.window.newTab())
27+
googleTab shouldNot be(duckDuckGoTab)
28+
}
29+
"load duckduckgo.com" in {
30+
browser.load(url"https://duckduckgo.com")
31+
browser.url should be(url"https://duckduckgo.com")
32+
browser.title should be("DuckDuckGo — Privacy, simplified.")
33+
browser.readyState should be(ReadyState.Complete)
34+
}
35+
"do a Duck Duck Go search" in {
36+
val input = browser.oneBy(By.css("#search_form_input_homepage"))
37+
input.tagName should be("input")
38+
input.sendKeys("robobrowser")
39+
input.submit()
40+
browser.waitFor(5.seconds)(browser.title == "robobrowser at DuckDuckGo")
41+
browser.title should be("robobrowser at DuckDuckGo")
42+
}
43+
"switch back to Google tab" in {
44+
browser.window.handles.size should be(2)
45+
browser.window.switchTo(googleTab.getOrElse(fail()))
46+
browser.title should be("Google")
47+
}
48+
"dispose the browser" in {
49+
browser.dispose()
50+
}
51+
}
52+
}

src/test/scala/spec/RoboBrowserSpec.scala

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,6 @@ class RoboBrowserSpec extends AnyWordSpec with Matchers {
2424
}
2525
lazy val eventManager = new EventManager(browser, Some(server))
2626

27-
var googleTab: Option[WindowHandle] = None
28-
var duckDuckGoTab: Option[WindowHandle] = None
29-
3027
"load Google" in {
3128
browser.load(url"https://google.com")
3229
browser.url should be(url"https://www.google.com")
@@ -45,30 +42,6 @@ class RoboBrowserSpec extends AnyWordSpec with Matchers {
4542
browser.screenshot(screenshot)
4643
screenshot.length() should be > 0L
4744
}
48-
"create a new tab" in {
49-
googleTab = Some(browser.window.handle) // Get a reference to the current tab
50-
duckDuckGoTab = Some(browser.window.newTab())
51-
googleTab shouldNot be(duckDuckGoTab)
52-
}
53-
"load duckduckgo.com" in {
54-
browser.load(url"https://duckduckgo.com")
55-
browser.url should be(url"https://duckduckgo.com")
56-
browser.title should be("DuckDuckGo — Privacy, simplified.")
57-
browser.readyState should be(ReadyState.Complete)
58-
}
59-
"do a Duck Duck Go search" in {
60-
val input = browser.oneBy(By.css("#search_form_input_homepage"))
61-
input.tagName should be("input")
62-
input.sendKeys("robobrowser")
63-
input.submit()
64-
browser.waitFor(5.seconds)(browser.title == "robobrowser at DuckDuckGo")
65-
browser.title should be("robobrowser at DuckDuckGo")
66-
}
67-
"switch back to Google tab" in {
68-
browser.window.handles.size should be(2)
69-
browser.window.switchTo(googleTab.getOrElse(fail()))
70-
browser.title should be("robobrowser - Google Search")
71-
}
7245
// "verify logs are working" in {
7346
// browser.logs.info("This is a test")
7447
// browser.logs().map(_.copy(timestamp = 0L)) should be(List(LogEntry(LogLevel.Info, 0L, "This is a test")))

0 commit comments

Comments
 (0)