You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jspwiki.apache.org by ju...@apache.org on 2020/11/07 20:05:32 UTC
[jspwiki] 11/23: added actions for incoming search and edit tests +
an open url method to simplify tests + javadocs
This is an automated email from the ASF dual-hosted git repository.
juanpablo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jspwiki.git
commit 38a59ff838b16c49ad064b15fd46c2f8f9c0e896
Author: juanpablo <ju...@apache.org>
AuthorDate: Sat Nov 7 18:38:09 2020 +0100
added actions for incoming search and edit tests + an open url method to simplify tests + javadocs
---
.../apache/wiki/pages/haddock/ReadWikiPage.java | 99 +++++++++++++++++++---
1 file changed, 89 insertions(+), 10 deletions(-)
diff --git a/jspwiki-it-tests/jspwiki-selenide-tests/src/main/java/org/apache/wiki/pages/haddock/ReadWikiPage.java b/jspwiki-it-tests/jspwiki-selenide-tests/src/main/java/org/apache/wiki/pages/haddock/ReadWikiPage.java
index d9800f2..ae43e2d 100644
--- a/jspwiki-it-tests/jspwiki-selenide-tests/src/main/java/org/apache/wiki/pages/haddock/ReadWikiPage.java
+++ b/jspwiki-it-tests/jspwiki-selenide-tests/src/main/java/org/apache/wiki/pages/haddock/ReadWikiPage.java
@@ -18,49 +18,128 @@
*/
package org.apache.wiki.pages.haddock;
+import org.apache.wiki.pages.Page;
import org.openqa.selenium.By;
import com.codeborne.selenide.Condition;
import com.codeborne.selenide.Selenide;
import com.codeborne.selenide.SelenideElement;
+/**
+ * Actions available on the View page.
+ */
public class ReadWikiPage implements HaddockPage {
-
+
+ /**
+ * Open a given page for view.
+ *
+ * @param pageName Wiki page name to View.
+ * @return {@link ReadWikiPage} instance, to allow chaining of actions.
+ */
+ public static ReadWikiPage open( final String pageName ) {
+ return Page.withUrl( Page.baseUrl() + "/Wiki.jsp?page=" + pageName ).openAs( new ReadWikiPage() );
+ }
+
+ /**
+ * Returns the authenticated user text.
+ *
+ * @return the authenticated user text.
+ */
public String authenticatedText() {
return Selenide.$( By.className( "wikipage" ) ).text().trim();
}
-
+
+ /**
+ * Clicks on the login button.
+ *
+ * @return {@link LoginPage} instance, to allow chaining of actions.
+ */
public LoginPage clickOnLogin() {
Selenide.$( By.className( "icon-signin" ) ).click();
return new LoginPage();
}
-
+
+ /**
+ * Clicks on the show reader view link.
+ *
+ * @return {@link ReadWikiPage} instance, to allow chaining of actions.
+ */
public ReadWikiPage clickOnShowReaderView() {
Selenide.$( By.linkText( "Show Reader View" ) ).click();
- return new ReadWikiPage();
+ return this;
}
+ /**
+ * Hover's the user's icon, so the login area gets visible.
+ *
+ * @return {@link ReadWikiPage} instance, to allow chaining of actions.
+ */
public ReadWikiPage hoverLoginArea() {
Selenide.$( By.className( "icon-user" ) ).hover();
return this;
}
-
+
+ /**
+ * Hover's the More tab, making its associated pane visible.
+ *
+ * @return {@link ReadWikiPage} instance, to allow chaining of actions.
+ */
public ReadWikiPage hoverMoreArea() {
Selenide.$( By.id( "more" ) ).hover();
return this;
}
-
+
+ /**
+ * Clicks the edit link.
+ *
+ * @return {@link EditWikiPage} instance, to allow chaining of actions.
+ */
+ public EditWikiPage editPage() {
+ Selenide.$( By.cssSelector( "li#edit a" ) ).waitUntil( Condition.visible, 1_000L ).click();
+ return new EditWikiPage();
+ }
+
+ /**
+ * Searches for a given text.
+ *
+ * @param text text to search for.
+ * @return {@link SearchResultsPage} instance, to allow chaining of actions.
+ */
+ public SearchResultsPage searchFor( final String text ) {
+ Selenide.$( By.id( "searchForm" ) ).hover();
+ Selenide.$( By.id( "query" ) ).click();
+ Selenide.$( By.id( "query" ) ).val( text );
+ Selenide.$( By.id( "searchSubmit" ) ).click();
+ return new SearchResultsPage();
+ }
+
+ /**
+ * Logs the user out.
+ *
+ * @return {@link ReadWikiPage} instance, to allow chaining of actions.
+ */
public ReadWikiPage logout() {
Selenide.$( By.linkText( "Log out" ) ).click();
Selenide.$( By.className( "btn-success" ) ).waitUntil( Condition.visible, 1_000L ).click();
return this;
}
-
- public ReadWikiPage navigateTo( String wikiPageName ) {
+
+ /**
+ * Navigates to a given view page.
+ *
+ * @param wikiPageName wikipage name to navigate to.
+ * @return {@link ReadWikiPage} instance, to allow chaining of actions.
+ */
+ public ReadWikiPage navigateTo( final String wikiPageName ) {
Selenide.$( By.linkText( wikiPageName ) ).click();
- return new ReadWikiPage();
+ return this;
}
-
+
+ /**
+ * Returns the sidebar element.
+ *
+ * @return the sidebar element.
+ */
public SelenideElement sidebar() {
return Selenide.$( By.className( "sidebar" ) );
}