package er.modern.movies.test; import static com.codeborne.selenide.Selenide.$; import static com.codeborne.selenide.Selenide.$$; import static com.codeborne.selenide.Selenide.open; import org.junit.Test; import org.openqa.selenium.By; import com.codeborne.selenide.Condition; /** * Some simple tests for the automatic navigation feature of ERXNavigation. */ public class NavigationIT extends AbstractSelenideIT { @Test public void defaultActionTest() { open("/"); $(By.linkText("Login")).click(); $(By.linkText("Home")).parent().shouldHave(Condition.cssClass("Nav1Selected")); } @Test public void movieNavigationTest() { open("/"); $(By.linkText("Login")).click(); // from Home to Movies.Search $(By.linkText("Find")).click(); $(By.linkText("Movies")).parent().shouldHave(Condition.cssClass("Nav1Selected")); $(By.linkText("Search")).parent().shouldHave(Condition.cssClass("Nav2Selected")); $$(".ListMovieObjTable tr.ObjRow").shouldHaveSize(10); // edit first movie, we stay with Movies.Search $(By.linkText("Edit")).click(); $(By.linkText("Movies")).parent().shouldHave(Condition.cssClass("Nav1Selected")); $(By.linkText("Search")).parent().shouldHave(Condition.cssClass("Nav2Selected")); // cancel edit, we're still at Movies.Search $(By.linkText("Cancel")).click(); $(By.linkText("Movies")).parent().shouldHave(Condition.cssClass("Nav1Selected")); $(By.linkText("Search")).parent().shouldHave(Condition.cssClass("Nav2Selected")); // create new, we change to Movies.New $(By.linkText("New")).click(); $(By.linkText("Movies")).parent().shouldHave(Condition.cssClass("Nav1Selected")); $(By.linkText("New")).parent().shouldHave(Condition.cssClass("Nav2Selected")); $(By.linkText("Cancel")).click(); // we're back to Movies.Search $(By.linkText("Movies")).parent().shouldHave(Condition.cssClass("Nav1Selected")); $(By.linkText("Search")).parent().shouldHave(Condition.cssClass("Nav2Selected")); } @Test public void adminNavigationTest() { open("/"); $(By.linkText("Login")).click(); // from Home to Admin – no second level selected $(By.linkText("Admin")).click(); $(By.linkText("Admin")).parent().shouldHave(Condition.cssClass("Nav1Selected")); $(By.linkText("Talent")).parent().shouldNotHave(Condition.cssClass("Nav2Selected")); // we move on to Admin.Talent.Search $(By.linkText("Find")).click(); $$(".ListTalentObjTable tr.ObjRow").shouldHaveSize(10); $(By.linkText("Admin")).parent().shouldHave(Condition.cssClass("Nav1Selected")); $(By.linkText("Talent")).parent().shouldHave(Condition.cssClass("Nav2Selected")); $(By.linkText("Search")).parent().shouldHave(Condition.cssClass("Nav3Selected")); // editing, we stay at Admin.Talent.Search $(By.linkText("Edit")).click(); $(By.linkText("Admin")).parent().shouldHave(Condition.cssClass("Nav1Selected")); $(By.linkText("Talent")).parent().shouldHave(Condition.cssClass("Nav2Selected")); $(By.linkText("Search")).parent().shouldHave(Condition.cssClass("Nav3Selected")); // cancel edit, we're still at Admin.Talent.Search $(By.linkText("Cancel")).click(); $(By.linkText("Admin")).parent().shouldHave(Condition.cssClass("Nav1Selected")); $(By.linkText("Talent")).parent().shouldHave(Condition.cssClass("Nav2Selected")); $(By.linkText("Search")).parent().shouldHave(Condition.cssClass("Nav3Selected")); // create new, we change to Admin.Talent.New $(By.linkText("New")).click(); $(By.linkText("Admin")).parent().shouldHave(Condition.cssClass("Nav1Selected")); $(By.linkText("Talent")).parent().shouldHave(Condition.cssClass("Nav2Selected")); $(By.linkText("New")).parent().shouldHave(Condition.cssClass("Nav3Selected")); $(By.linkText("Cancel")).click(); // we're back to Admin.Talent.Search $(By.linkText("Admin")).parent().shouldHave(Condition.cssClass("Nav1Selected")); $(By.linkText("Talent")).parent().shouldHave(Condition.cssClass("Nav2Selected")); $(By.linkText("Search")).parent().shouldHave(Condition.cssClass("Nav3Selected")); } }