Remove navigate from login/logout and add clear command

This commit is contained in:
Joey Yakimowich-Payne 2018-07-23 10:13:06 +09:00
commit 7925c4b8b1
4 changed files with 43 additions and 24 deletions

View file

@ -22,6 +22,11 @@ template sendKeys*(session: Session, element, keys: string) =
check el.isSome() check el.isSome()
el.get().sendKeys(keys) el.get().sendKeys(keys)
template clear*(session: Session, element: string) =
let el = session.findElement(element)
check el.isSome()
el.get().clear()
template sendKeys*(session: Session, element: string, keys: varargs[Key]) = template sendKeys*(session: Session, element: string, keys: varargs[Key]) =
let el = session.findElement(element) let el = session.findElement(element)
check el.isSome() check el.isSome()
@ -82,10 +87,8 @@ proc setUserRank*(session: Session, baseUrl, user, rank: string) =
click "#save-btn" click "#save-btn"
wait() wait()
proc logout*(session: Session, baseUrl: string) = proc logout*(session: Session) =
with session: with session:
navigate baseUrl
wait()
click "#profile-btn" click "#profile-btn"
click "#profile-btn #logout-btn" click "#profile-btn #logout-btn"
wait() wait()
@ -93,12 +96,13 @@ proc logout*(session: Session, baseUrl: string) =
# Verify we have logged out by looking for the log in button. # Verify we have logged out by looking for the log in button.
ensureExists "#login-btn" ensureExists "#login-btn"
proc login*(session: Session, baseUrl, user, password: string) = proc login*(session: Session, user, password: string) =
with session: with session:
navigate baseUrl
wait()
click "#login-btn" click "#login-btn"
clear "#login-form input[name='username']"
clear "#login-form input[name='password']"
sendKeys "#login-form input[name='username']", user sendKeys "#login-form input[name='username']", user
sendKeys "#login-form input[name='password']", password sendKeys "#login-form input[name='password']", password
@ -115,6 +119,10 @@ proc register*(session: Session, user, password: string) =
with session: with session:
click "#signup-btn" click "#signup-btn"
clear "#signup-form input[name='email']"
clear "#signup-form input[name='username']"
clear "#signup-form input[name='password']"
sendKeys "#signup-form input[name='email']", user & "@" & user & ".com" sendKeys "#signup-form input[name='email']", user & "@" & user & ".com"
sendKeys "#signup-form input[name='username']", user sendKeys "#signup-form input[name='username']", user
sendKeys "#signup-form input[name='password']", password sendKeys "#signup-form input[name='password']", password

View file

@ -10,21 +10,23 @@ proc test*(session: Session, baseUrl: string) =
test "can see banned posts": test "can see banned posts":
with session: with session:
register("issue181", "issue181") register("issue181", "issue181")
logout(baseUrl) logout()
# Change rank to `user` so they can post. # Change rank to `user` so they can post.
login(baseUrl, "admin", "admin") login("admin", "admin")
setUserRank(baseUrl, "issue181", "user") setUserRank(baseUrl, "issue181", "user")
logout(baseUrl) logout()
login(baseUrl, "issue181", "issue181") login("issue181", "issue181")
navigate(baseUrl)
wait()
const title = "Testing issue 181." const title = "Testing issue 181."
createThread(title, "Test for issue #181") createThread(title, "Test for issue #181")
logout(baseUrl) logout()
login(baseUrl, "admin", "admin") login("admin", "admin")
# Ban our user. # Ban our user.
setUserRank(baseUrl, "issue181", "banned") setUserRank(baseUrl, "issue181", "banned")
@ -34,5 +36,5 @@ proc test*(session: Session, baseUrl: string) =
wait() wait()
ensureExists("tr.banned") ensureExists("tr.banned")
checkText("tr.banned .thread-title > a", title) checkText("tr.banned .thread-title > a", title)
logout(baseUrl) logout()
checkText("tr.banned .thread-title > a", title) checkText("tr.banned .thread-title > a", title)

View file

@ -20,10 +20,10 @@ proc test*(session: Session, baseUrl: string) =
# Logging in # Logging in
test "can login/logout": test "can login/logout":
with session: with session:
login(baseUrl, "admin", "admin") login("admin", "admin")
# Check whether we can log out. # Check whether we can log out.
logout(baseUrl) logout()
# Verify we have logged out by looking for the log in button. # Verify we have logged out by looking for the log in button.
ensureExists "#login-btn" ensureExists "#login-btn"
@ -31,4 +31,4 @@ proc test*(session: Session, baseUrl: string) =
with session: with session:
register("test", "test") register("test", "test")
session.logout(baseUrl) session.logout()

View file

@ -11,13 +11,13 @@ let
proc banUser(session: Session, baseUrl: string) = proc banUser(session: Session, baseUrl: string) =
with session: with session:
login baseUrl, "admin", "admin" login "admin", "admin"
setUserRank baseUrl, "user", "banned" setUserRank baseUrl, "user", "banned"
logout baseUrl logout()
proc userTests(session: Session, baseUrl: string) = proc userTests(session: Session, baseUrl: string) =
suite "user thread tests": suite "user thread tests":
session.login(baseUrl, "user", "user") session.login("user", "user")
setup: setup:
session.navigate(baseUrl) session.navigate(baseUrl)
@ -37,7 +37,7 @@ proc userTests(session: Session, baseUrl: string) =
checkText "#thread-title", userTitleStr checkText "#thread-title", userTitleStr
checkText ".original-post div.post-content", userContentStr checkText ".original-post div.post-content", userContentStr
session.logout(baseUrl) session.logout()
proc anonymousTests(session: Session, baseUrl: string) = proc anonymousTests(session: Session, baseUrl: string) =
@ -56,7 +56,10 @@ proc anonymousTests(session: Session, baseUrl: string) =
proc bannedTests(session: Session, baseUrl: string) = proc bannedTests(session: Session, baseUrl: string) =
suite "banned user thread tests": suite "banned user thread tests":
session.login(baseUrl, "banned", "banned") with session:
navigate baseUrl
wait()
login "banned", "banned"
test "can't start thread": test "can't start thread":
with session: with session:
@ -71,11 +74,11 @@ proc bannedTests(session: Session, baseUrl: string) =
ensureExists "#new-thread p.text-error" ensureExists "#new-thread p.text-error"
session.logout(baseUrl) session.logout()
proc adminTests(session: Session, baseUrl: string) = proc adminTests(session: Session, baseUrl: string) =
suite "admin thread tests": suite "admin thread tests":
session.login(baseUrl, "admin", "admin") session.login("admin", "admin")
setup: setup:
session.navigate(baseUrl) session.navigate(baseUrl)
@ -155,9 +158,12 @@ proc adminTests(session: Session, baseUrl: string) =
# Make sure the forum post is gone # Make sure the forum post is gone
checkIsNone adminTitleStr, LinkTextSelector checkIsNone adminTitleStr, LinkTextSelector
session.logout(baseUrl) session.logout()
proc test*(session: Session, baseUrl: string) = proc test*(session: Session, baseUrl: string) =
session.navigate(baseUrl)
session.wait()
userTests(session, baseUrl) userTests(session, baseUrl)
banUser(session, baseUrl) banUser(session, baseUrl)
@ -165,3 +171,6 @@ proc test*(session: Session, baseUrl: string) =
bannedTests(session, baseUrl) bannedTests(session, baseUrl)
anonymousTests(session, baseUrl) anonymousTests(session, baseUrl)
adminTests(session, baseUrl) adminTests(session, baseUrl)
session.navigate(baseUrl)
session.wait()