diff --git a/tests/browsertests/common.nim b/tests/browsertests/common.nim index 96649ca..2c60840 100644 --- a/tests/browsertests/common.nim +++ b/tests/browsertests/common.nim @@ -22,6 +22,11 @@ template sendKeys*(session: Session, element, keys: string) = check el.isSome() 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]) = let el = session.findElement(element) check el.isSome() @@ -82,10 +87,8 @@ proc setUserRank*(session: Session, baseUrl, user, rank: string) = click "#save-btn" wait() -proc logout*(session: Session, baseUrl: string) = +proc logout*(session: Session) = with session: - navigate baseUrl - wait() click "#profile-btn" click "#profile-btn #logout-btn" wait() @@ -93,12 +96,13 @@ proc logout*(session: Session, baseUrl: string) = # Verify we have logged out by looking for the log in button. ensureExists "#login-btn" -proc login*(session: Session, baseUrl, user, password: string) = +proc login*(session: Session, user, password: string) = with session: - navigate baseUrl - wait() 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='password']", password @@ -115,6 +119,10 @@ proc register*(session: Session, user, password: string) = with session: 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='username']", user sendKeys "#signup-form input[name='password']", password diff --git a/tests/browsertests/issue181.nim b/tests/browsertests/issue181.nim index c7fe98c..7a646c2 100644 --- a/tests/browsertests/issue181.nim +++ b/tests/browsertests/issue181.nim @@ -10,21 +10,23 @@ proc test*(session: Session, baseUrl: string) = test "can see banned posts": with session: register("issue181", "issue181") - logout(baseUrl) + logout() # Change rank to `user` so they can post. - login(baseUrl, "admin", "admin") + login("admin", "admin") setUserRank(baseUrl, "issue181", "user") - logout(baseUrl) + logout() - login(baseUrl, "issue181", "issue181") + login("issue181", "issue181") + navigate(baseUrl) + wait() const title = "Testing issue 181." createThread(title, "Test for issue #181") - logout(baseUrl) + logout() - login(baseUrl, "admin", "admin") + login("admin", "admin") # Ban our user. setUserRank(baseUrl, "issue181", "banned") @@ -34,5 +36,5 @@ proc test*(session: Session, baseUrl: string) = wait() ensureExists("tr.banned") checkText("tr.banned .thread-title > a", title) - logout(baseUrl) + logout() checkText("tr.banned .thread-title > a", title) diff --git a/tests/browsertests/scenario1.nim b/tests/browsertests/scenario1.nim index d0d8aee..34132e5 100644 --- a/tests/browsertests/scenario1.nim +++ b/tests/browsertests/scenario1.nim @@ -20,10 +20,10 @@ proc test*(session: Session, baseUrl: string) = # Logging in test "can login/logout": with session: - login(baseUrl, "admin", "admin") + login("admin", "admin") # Check whether we can log out. - logout(baseUrl) + logout() # Verify we have logged out by looking for the log in button. ensureExists "#login-btn" @@ -31,4 +31,4 @@ proc test*(session: Session, baseUrl: string) = with session: register("test", "test") - session.logout(baseUrl) + session.logout() diff --git a/tests/browsertests/threads.nim b/tests/browsertests/threads.nim index fe6b4e0..f0b1b32 100644 --- a/tests/browsertests/threads.nim +++ b/tests/browsertests/threads.nim @@ -11,13 +11,13 @@ let proc banUser(session: Session, baseUrl: string) = with session: - login baseUrl, "admin", "admin" + login "admin", "admin" setUserRank baseUrl, "user", "banned" - logout baseUrl + logout() proc userTests(session: Session, baseUrl: string) = suite "user thread tests": - session.login(baseUrl, "user", "user") + session.login("user", "user") setup: session.navigate(baseUrl) @@ -37,7 +37,7 @@ proc userTests(session: Session, baseUrl: string) = checkText "#thread-title", userTitleStr checkText ".original-post div.post-content", userContentStr - session.logout(baseUrl) + session.logout() proc anonymousTests(session: Session, baseUrl: string) = @@ -56,7 +56,10 @@ proc anonymousTests(session: Session, baseUrl: string) = proc bannedTests(session: Session, baseUrl: string) = suite "banned user thread tests": - session.login(baseUrl, "banned", "banned") + with session: + navigate baseUrl + wait() + login "banned", "banned" test "can't start thread": with session: @@ -71,11 +74,11 @@ proc bannedTests(session: Session, baseUrl: string) = ensureExists "#new-thread p.text-error" - session.logout(baseUrl) + session.logout() proc adminTests(session: Session, baseUrl: string) = suite "admin thread tests": - session.login(baseUrl, "admin", "admin") + session.login("admin", "admin") setup: session.navigate(baseUrl) @@ -155,9 +158,12 @@ proc adminTests(session: Session, baseUrl: string) = # Make sure the forum post is gone checkIsNone adminTitleStr, LinkTextSelector - session.logout(baseUrl) + session.logout() proc test*(session: Session, baseUrl: string) = + session.navigate(baseUrl) + session.wait() + userTests(session, baseUrl) banUser(session, baseUrl) @@ -165,3 +171,6 @@ proc test*(session: Session, baseUrl: string) = bannedTests(session, baseUrl) anonymousTests(session, baseUrl) adminTests(session, baseUrl) + + session.navigate(baseUrl) + session.wait()