2019-05-10 15:07:47 +04:00
|
|
|
import com.google.common.collect.ImmutableMap;
|
|
|
|
import com.google.common.collect.Iterables;
|
|
|
|
import conference.ConferencePage;
|
|
|
|
import conference.ConferencesDashboardPage;
|
|
|
|
import conference.ConferencesPage;
|
|
|
|
import core.PageObject;
|
|
|
|
import core.TestTemplate;
|
|
|
|
import org.assertj.core.api.Assertions;
|
|
|
|
import org.junit.Assert;
|
|
|
|
import org.junit.Test;
|
|
|
|
import org.junit.runner.RunWith;
|
2019-05-10 17:03:47 +04:00
|
|
|
import org.openqa.selenium.By;
|
2019-05-10 19:15:22 +04:00
|
|
|
import org.openqa.selenium.WebElement;
|
2019-05-10 15:07:47 +04:00
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
import org.springframework.boot.test.context.SpringBootTest;
|
|
|
|
import org.springframework.test.context.junit4.SpringRunner;
|
|
|
|
import ru.ulstu.NgTrackerApplication;
|
|
|
|
import ru.ulstu.configuration.ApplicationProperties;
|
|
|
|
|
|
|
|
import java.util.Arrays;
|
|
|
|
import java.util.Date;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
@RunWith(SpringRunner.class)
|
|
|
|
@SpringBootTest(classes = NgTrackerApplication.class, webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
|
|
|
|
public class IndexConferenceTest extends TestTemplate {
|
|
|
|
private final Map<PageObject, List<String>> navigationHolder = ImmutableMap.of(
|
|
|
|
new ConferencesPage(), Arrays.asList("КОНФЕРЕНЦИИ", "/conferences/conferences"),
|
|
|
|
new ConferencePage(), Arrays.asList("РЕДАКТИРОВАНИЕ КОНФЕРЕНЦИИ", "/conferences/conference?id=0"),
|
|
|
|
new ConferencesDashboardPage(), Arrays.asList("АКТУАЛЬНЫЕ КОНФЕРЕНЦИИ", "/conferences/dashboard")
|
|
|
|
);
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
private ApplicationProperties applicationProperties;
|
|
|
|
|
|
|
|
@Test
|
|
|
|
public void testStartApplication() {
|
|
|
|
getContext().goTo(applicationProperties.getBaseUrl());
|
|
|
|
Assertions
|
|
|
|
.assertThat(getContext().getTitle())
|
|
|
|
.isEqualTo("NG-Tracker");
|
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
|
|
public void testCreateNewConference() {
|
|
|
|
Map.Entry<PageObject, List<String>> page = Iterables.get(navigationHolder.entrySet(), 1);
|
|
|
|
|
|
|
|
getContext().goTo(applicationProperties.getBaseUrl() + page.getValue().get(1));
|
|
|
|
ConferencePage conferencePage = (ConferencePage) getContext().initPage(page.getKey());
|
|
|
|
ConferencesPage conferencesPage = (ConferencesPage) getContext().initPage(Iterables.get(navigationHolder.entrySet(), 0).getKey());
|
|
|
|
|
|
|
|
String newConferenceName = "test " + (new Date()).getTime();
|
|
|
|
conferencePage.setName(newConferenceName);
|
|
|
|
conferencePage.clickSaveBut();
|
|
|
|
|
|
|
|
Assert.assertTrue(conferencesPage.getConferencesList()
|
|
|
|
.stream()
|
|
|
|
.anyMatch(webElement -> webElement.getText().equals(newConferenceName)));
|
|
|
|
}
|
2019-05-10 15:54:12 +04:00
|
|
|
|
|
|
|
@Test
|
|
|
|
public void testChangeConferenceNameAndSave() {
|
|
|
|
Map.Entry<PageObject, List<String>> page = Iterables.get(navigationHolder.entrySet(), 0);
|
|
|
|
|
|
|
|
getContext().goTo(applicationProperties.getBaseUrl() + page.getValue().get(1));
|
|
|
|
ConferencesPage conferencesPage = (ConferencesPage) getContext().initPage(page.getKey());
|
|
|
|
ConferencePage conferencePage = (ConferencePage) getContext().initPage(Iterables.get(navigationHolder.entrySet(), 1).getKey());
|
|
|
|
|
|
|
|
conferencesPage.getConferenceFirst();
|
|
|
|
String newConferenceName = "test " + (new Date()).getTime();
|
|
|
|
conferencePage.clearName();
|
|
|
|
conferencePage.setName(newConferenceName);
|
|
|
|
conferencePage.clickSaveBut();
|
|
|
|
|
|
|
|
Assert.assertTrue(conferencesPage.getConferencesList()
|
|
|
|
.stream()
|
|
|
|
.anyMatch(webElement -> webElement.getText().equals(newConferenceName)));
|
|
|
|
}
|
|
|
|
|
2019-05-10 17:03:47 +04:00
|
|
|
@Test
|
|
|
|
public void testAddDeadlineAndSave() {
|
|
|
|
Map.Entry<PageObject, List<String>> page = Iterables.get(navigationHolder.entrySet(), 0);
|
2019-05-10 15:54:12 +04:00
|
|
|
|
2019-05-10 17:03:47 +04:00
|
|
|
getContext().goTo(applicationProperties.getBaseUrl() + page.getValue().get(1));
|
|
|
|
ConferencesPage conferencesPage = (ConferencesPage) getContext().initPage(page.getKey());
|
|
|
|
ConferencePage conferencePage = (ConferencePage) getContext().initPage(Iterables.get(navigationHolder.entrySet(), 1).getKey());
|
|
|
|
|
|
|
|
conferencesPage.getConferenceFirst();
|
|
|
|
String conferenceId = conferencePage.getId();
|
|
|
|
Integer deadlineCount = conferencePage.getDeadlineCount();
|
|
|
|
|
|
|
|
String description = "test";
|
|
|
|
String date = "09.09.2019";
|
|
|
|
String dateValue = "2019-09-09";
|
|
|
|
conferencePage.clickAddDeadlineBut();
|
|
|
|
conferencePage.setDeadlineDescription(description, deadlineCount);
|
|
|
|
conferencePage.setDeadlineDate(date, deadlineCount);
|
|
|
|
conferencePage.clickSaveBut();
|
|
|
|
|
|
|
|
getContext().goTo(applicationProperties.getBaseUrl() + String.format("/conferences/conference?id=%s", conferenceId));
|
|
|
|
|
|
|
|
Assert.assertTrue(conferencePage.getDeadlineList()
|
|
|
|
.stream()
|
|
|
|
.anyMatch(webElement -> {
|
|
|
|
return webElement.findElement(By.className("deadline-text")).getAttribute("value").equals(description)
|
|
|
|
&& webElement.findElement(By.cssSelector("input[type=\"date\"]")).getAttribute("value").equals(dateValue);
|
|
|
|
}));
|
|
|
|
}
|
2019-05-10 17:21:36 +04:00
|
|
|
|
|
|
|
@Test
|
|
|
|
public void testTakePartAndSave() {
|
|
|
|
Map.Entry<PageObject, List<String>> page = Iterables.get(navigationHolder.entrySet(), 0);
|
|
|
|
|
|
|
|
getContext().goTo(applicationProperties.getBaseUrl() + page.getValue().get(1));
|
|
|
|
ConferencesPage conferencesPage = (ConferencesPage) getContext().initPage(page.getKey());
|
|
|
|
ConferencePage conferencePage = (ConferencePage) getContext().initPage(Iterables.get(navigationHolder.entrySet(), 1).getKey());
|
|
|
|
|
|
|
|
conferencesPage.getConferenceFirst();
|
|
|
|
String conferenceId = conferencePage.getId();
|
2019-05-10 19:15:22 +04:00
|
|
|
Integer membersCount = conferencePage.getMemberCount();
|
2019-05-10 17:21:36 +04:00
|
|
|
|
|
|
|
conferencePage.clickTakePartBut();
|
|
|
|
conferencePage.clickSaveBut();
|
|
|
|
|
|
|
|
getContext().goTo(applicationProperties.getBaseUrl() + String.format("/conferences/conference?id=%s", conferenceId));
|
|
|
|
|
2019-05-10 19:15:22 +04:00
|
|
|
Assert.assertTrue(membersCount + 1 == conferencePage.getMemberCount()
|
2019-05-10 17:21:36 +04:00
|
|
|
&& conferencePage.getTakePartButDisabledValue().equals("true"));
|
|
|
|
}
|
2019-05-10 17:40:24 +04:00
|
|
|
|
|
|
|
@Test
|
|
|
|
public void testDeleteDeadlineAndSave() {
|
|
|
|
Map.Entry<PageObject, List<String>> page = Iterables.get(navigationHolder.entrySet(), 0);
|
|
|
|
|
|
|
|
getContext().goTo(applicationProperties.getBaseUrl() + page.getValue().get(1));
|
|
|
|
ConferencesPage conferencesPage = (ConferencesPage) getContext().initPage(page.getKey());
|
|
|
|
ConferencePage conferencePage = (ConferencePage) getContext().initPage(Iterables.get(navigationHolder.entrySet(), 1).getKey());
|
|
|
|
|
|
|
|
conferencesPage.getConferenceFirst();
|
|
|
|
String conferenceId = conferencePage.getId();
|
|
|
|
Integer deadlineCount = conferencePage.getDeadlineCount();
|
|
|
|
|
|
|
|
conferencePage.clickDeleteDeadlineBut();
|
|
|
|
conferencePage.clickSaveBut();
|
|
|
|
|
|
|
|
getContext().goTo(applicationProperties.getBaseUrl() + String.format("/conferences/conference?id=%s", conferenceId));
|
|
|
|
|
|
|
|
Assert.assertTrue(deadlineCount - 1 == conferencePage.getDeadlineCount());
|
|
|
|
}
|
2019-05-10 19:15:22 +04:00
|
|
|
|
|
|
|
@Test
|
|
|
|
public void testAttachArticle() {
|
|
|
|
Map.Entry<PageObject, List<String>> page = Iterables.get(navigationHolder.entrySet(), 0);
|
|
|
|
|
|
|
|
getContext().goTo(applicationProperties.getBaseUrl() + page.getValue().get(1));
|
|
|
|
ConferencesPage conferencesPage = (ConferencesPage) getContext().initPage(page.getKey());
|
|
|
|
ConferencePage conferencePage = (ConferencePage) getContext().initPage(Iterables.get(navigationHolder.entrySet(), 1).getKey());
|
|
|
|
|
|
|
|
conferencesPage.getConferenceFirst();
|
|
|
|
String conferenceId = conferencePage.getId();
|
2019-05-10 21:15:49 +04:00
|
|
|
Integer paperCount = conferencePage.getArticlesCount();
|
2019-05-10 19:15:22 +04:00
|
|
|
|
|
|
|
conferencePage.showAllowToAttachArticles();
|
2019-05-10 21:15:49 +04:00
|
|
|
WebElement paper = conferencePage.selectArticle();
|
2019-05-10 19:15:22 +04:00
|
|
|
String paperName = paper.findElement(By.className("text")).getText();
|
|
|
|
conferencePage.clickSaveBut();
|
|
|
|
|
|
|
|
getContext().goTo(applicationProperties.getBaseUrl() + String.format("/conferences/conference?id=%s", conferenceId));
|
|
|
|
|
2019-05-10 21:15:49 +04:00
|
|
|
Assert.assertTrue(paperCount + 1 == conferencePage.getArticlesCount()
|
|
|
|
&& conferencePage.getArticles()
|
2019-05-10 19:15:22 +04:00
|
|
|
.stream()
|
|
|
|
.anyMatch(webElement -> webElement
|
2019-05-10 21:15:49 +04:00
|
|
|
.findElements(By.tagName("input"))
|
|
|
|
.get(1).getAttribute("value")
|
|
|
|
.equals(paperName)));
|
2019-05-10 19:15:22 +04:00
|
|
|
}
|
2019-05-10 20:07:55 +04:00
|
|
|
|
|
|
|
@Test
|
|
|
|
public void testAddArticle() {
|
|
|
|
Map.Entry<PageObject, List<String>> page = Iterables.get(navigationHolder.entrySet(), 0);
|
|
|
|
|
|
|
|
getContext().goTo(applicationProperties.getBaseUrl() + page.getValue().get(1));
|
|
|
|
ConferencesPage conferencesPage = (ConferencesPage) getContext().initPage(page.getKey());
|
|
|
|
ConferencePage conferencePage = (ConferencePage) getContext().initPage(Iterables.get(navigationHolder.entrySet(), 1).getKey());
|
|
|
|
|
|
|
|
conferencesPage.getConferenceFirst();
|
|
|
|
String conferenceId = conferencePage.getId();
|
2019-05-10 21:15:49 +04:00
|
|
|
Integer paperCount = conferencePage.getArticlesCount();
|
2019-05-10 20:07:55 +04:00
|
|
|
|
|
|
|
conferencePage.clickAddPaperBut();
|
2019-05-10 21:15:49 +04:00
|
|
|
List<WebElement> webElements = conferencePage.getArticles();
|
2019-05-10 20:54:43 +04:00
|
|
|
String paperName = webElements.get(webElements.size() - 1).findElements(By.tagName("input")).get(1).getAttribute("value");
|
2019-05-10 20:07:55 +04:00
|
|
|
conferencePage.clickSaveBut();
|
|
|
|
|
|
|
|
getContext().goTo(applicationProperties.getBaseUrl() + String.format("/conferences/conference?id=%s", conferenceId));
|
|
|
|
|
2019-05-10 21:15:49 +04:00
|
|
|
Assert.assertTrue(paperCount + 1 == conferencePage.getArticlesCount()
|
|
|
|
&& conferencePage.getArticles()
|
2019-05-10 20:07:55 +04:00
|
|
|
.stream()
|
|
|
|
.anyMatch(webElement -> webElement
|
2019-05-10 20:54:43 +04:00
|
|
|
.findElements(By.tagName("input"))
|
|
|
|
.get(1).getAttribute("value")
|
|
|
|
.equals(paperName)));
|
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
|
|
public void testTransitionToTheArticle() {
|
|
|
|
Map.Entry<PageObject, List<String>> page = Iterables.get(navigationHolder.entrySet(), 0);
|
|
|
|
|
|
|
|
getContext().goTo(applicationProperties.getBaseUrl() + page.getValue().get(1));
|
|
|
|
ConferencesPage conferencesPage = (ConferencesPage) getContext().initPage(page.getKey());
|
|
|
|
ConferencePage conferencePage = (ConferencePage) getContext().initPage(Iterables.get(navigationHolder.entrySet(), 1).getKey());
|
|
|
|
|
|
|
|
conferencesPage.getConferenceFirst();
|
|
|
|
|
2019-05-10 21:15:49 +04:00
|
|
|
WebElement paper = conferencePage.getArticles().get(0);
|
2019-05-10 20:54:43 +04:00
|
|
|
String paperName = paper.findElements(By.tagName("input")).get(1).getAttribute("value");
|
|
|
|
paper.findElement(By.tagName("a")).click();
|
|
|
|
|
|
|
|
Assertions.assertThat(conferencePage.getName())
|
|
|
|
.isEqualTo(paperName);
|
2019-05-10 20:07:55 +04:00
|
|
|
}
|
2019-05-10 21:15:49 +04:00
|
|
|
|
|
|
|
@Test
|
|
|
|
public void testUndockArticle() {
|
|
|
|
Map.Entry<PageObject, List<String>> page = Iterables.get(navigationHolder.entrySet(), 0);
|
|
|
|
|
|
|
|
getContext().goTo(applicationProperties.getBaseUrl() + page.getValue().get(1));
|
|
|
|
ConferencesPage conferencesPage = (ConferencesPage) getContext().initPage(page.getKey());
|
|
|
|
ConferencePage conferencePage = (ConferencePage) getContext().initPage(Iterables.get(navigationHolder.entrySet(), 1).getKey());
|
|
|
|
|
|
|
|
conferencesPage.getConferenceFirst();
|
|
|
|
String conferenceId = conferencePage.getId();
|
|
|
|
Integer paperCount = conferencePage.getArticlesCount();
|
|
|
|
|
|
|
|
conferencePage.clickUndockArticleBut();
|
|
|
|
conferencePage.clickSaveBut();
|
|
|
|
|
|
|
|
getContext().goTo(applicationProperties.getBaseUrl() + String.format("/conferences/conference?id=%s", conferenceId));
|
|
|
|
|
|
|
|
Assert.assertTrue(paperCount - 1 == conferencePage.getArticlesCount());
|
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
|
|
public void testSortAndFilterConferenceList() {
|
|
|
|
Map.Entry<PageObject, List<String>> page = Iterables.get(navigationHolder.entrySet(), 0);
|
|
|
|
|
|
|
|
getContext().goTo(applicationProperties.getBaseUrl() + page.getValue().get(1));
|
|
|
|
ConferencesPage conferencesPage = (ConferencesPage) getContext().initPage(page.getKey());
|
|
|
|
|
|
|
|
conferencesPage.selectMember();
|
|
|
|
conferencesPage.selectYear();
|
|
|
|
|
|
|
|
Assert.assertEquals(1, conferencesPage.getConferencesList().size());
|
|
|
|
}
|
2019-05-10 15:07:47 +04:00
|
|
|
}
|