248 lines
9.0 KiB
Java
248 lines
9.0 KiB
Java
import com.google.common.collect.ImmutableMap;
|
||
import com.google.common.collect.Iterables;
|
||
import core.PageObject;
|
||
import core.TestTemplate;
|
||
import org.junit.Assert;
|
||
import org.junit.FixMethodOrder;
|
||
import org.junit.Test;
|
||
import org.junit.runner.RunWith;
|
||
import org.junit.runners.MethodSorters;
|
||
import org.springframework.beans.factory.annotation.Autowired;
|
||
import org.springframework.boot.test.context.SpringBootTest;
|
||
import org.springframework.test.context.junit4.SpringRunner;
|
||
import paper.PaperPage;
|
||
import paper.PapersDashboardPage;
|
||
import paper.PapersPage;
|
||
import ru.ulstu.NgTrackerApplication;
|
||
import ru.ulstu.configuration.ApplicationProperties;
|
||
|
||
import java.util.Arrays;
|
||
import java.util.List;
|
||
import java.util.Map;
|
||
|
||
@RunWith(SpringRunner.class)
|
||
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
|
||
@SpringBootTest(classes = NgTrackerApplication.class, webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
|
||
public class PaperTest extends TestTemplate {
|
||
private final Map<PageObject, List<String>> navigationHolder = ImmutableMap.of(
|
||
new PapersPage(), Arrays.asList("СТАТЬИ", "/papers/papers"),
|
||
new PaperPage(), Arrays.asList("РЕДАКТИРОВАНИЕ СТАТЬИ", "/papers/paper?id=0"),
|
||
new PapersDashboardPage(), Arrays.asList("СТАТЬИ", "/papers/dashboard")
|
||
);
|
||
|
||
@Autowired
|
||
private ApplicationProperties applicationProperties;
|
||
|
||
private String getPaperPageUrl() {
|
||
return Iterables.get(navigationHolder.entrySet(), 1).getValue().get(1);
|
||
}
|
||
|
||
private PaperPage getPaperPage() {
|
||
PaperPage paperPage = (PaperPage) getContext().initPage(Iterables.get(navigationHolder.entrySet(), 1).getKey());
|
||
paperPage.initElements();
|
||
return paperPage;
|
||
}
|
||
|
||
private String getPapersPageUrl() {
|
||
return Iterables.get(navigationHolder.entrySet(), 0).getValue().get(1);
|
||
}
|
||
|
||
private PapersPage getPapersPage() {
|
||
PapersPage papersPage = (PapersPage) getContext().initPage(Iterables.get(navigationHolder.entrySet(), 0).getKey());
|
||
papersPage.initElements();
|
||
return papersPage;
|
||
}
|
||
|
||
private String getPapersDashboardPageUrl() {
|
||
return Iterables.get(navigationHolder.entrySet(), 2).getValue().get(1);
|
||
}
|
||
|
||
private PapersDashboardPage getPapersDashboardPage() {
|
||
PapersDashboardPage papersDashboardPage = (PapersDashboardPage) getContext().initPage(Iterables.get(navigationHolder.entrySet(), 2).getKey());
|
||
papersDashboardPage.initElements();
|
||
return papersDashboardPage;
|
||
}
|
||
|
||
@Test
|
||
public void createNewPaperTest() {
|
||
getContext().goTo(applicationProperties.getBaseUrl() + getPaperPageUrl());
|
||
PaperPage paperPage = getPaperPage();
|
||
|
||
String testTitle = "test " + (String.valueOf(System.currentTimeMillis()));
|
||
fillRequiredFields(paperPage, testTitle);
|
||
paperPage.clickSaveBtn();
|
||
|
||
PapersPage papersPage = getPapersPage();
|
||
|
||
Assert.assertTrue(papersPage.havePaperWithTitle(testTitle));
|
||
}
|
||
|
||
@Test
|
||
public void editPaperTest() {
|
||
createNewPaper();
|
||
getContext().goTo(applicationProperties.getBaseUrl() + getPapersPageUrl());
|
||
PapersPage papersPage = getPapersPage();
|
||
papersPage.clickFirstPaper();
|
||
|
||
PaperPage paperPage = getPaperPage();
|
||
String testTitle = "test " + (String.valueOf(System.currentTimeMillis()));
|
||
paperPage.setTitle(testTitle);
|
||
paperPage.clickSaveBtn();
|
||
|
||
Assert.assertTrue(papersPage.havePaperWithTitle(testTitle));
|
||
}
|
||
|
||
private void createNewPaper() {
|
||
getContext().goTo(applicationProperties.getBaseUrl() + getPaperPageUrl());
|
||
PaperPage paperPage = getPaperPage();
|
||
String testTitle = "test " + (String.valueOf(System.currentTimeMillis()));
|
||
fillRequiredFields(paperPage, testTitle);
|
||
paperPage.clickSaveBtn();
|
||
}
|
||
|
||
@Test
|
||
public void addDeadlineTest() {
|
||
createNewPaper();
|
||
getContext().goTo(applicationProperties.getBaseUrl() + getPapersPageUrl());
|
||
PapersPage papersPage = getPapersPage();
|
||
papersPage.clickFirstPaper();
|
||
|
||
PaperPage paperPage = getPaperPage();
|
||
papersPage.clickAddDeadline();
|
||
String testDate = "01.01.2019";
|
||
String testDateResult = "2019-01-01";
|
||
String testDesc = "desc";
|
||
Integer deadlineNumber = 2;
|
||
paperPage.setDeadlineDate(deadlineNumber, testDate);
|
||
paperPage.setDeadlineDescription(deadlineNumber, testDesc);
|
||
String paperId = paperPage.getId();
|
||
paperPage.clickSaveBtn();
|
||
|
||
getContext().goTo(applicationProperties.getBaseUrl() + String.format("/papers/paper?id=%s", paperId));
|
||
|
||
Assert.assertTrue(paperPage.deadlineExist(testDesc, testDateResult));
|
||
}
|
||
|
||
@Test
|
||
public void noDeadlinesValidationTest() {
|
||
getContext().goTo(applicationProperties.getBaseUrl() + getPaperPageUrl());
|
||
PaperPage paperPage = getPaperPage();
|
||
|
||
String testTitle = "test " + (String.valueOf(System.currentTimeMillis()));
|
||
paperPage.setTitle(testTitle);
|
||
paperPage.clickSaveBtn();
|
||
|
||
Assert.assertTrue(paperPage.hasAlert("Не может быть пустым"));
|
||
}
|
||
|
||
private void fillRequiredFields(PaperPage paperPage, String title) {
|
||
paperPage.setTitle(title);
|
||
String testDate = "01.01.2019";
|
||
String testDesc = "desc";
|
||
Integer deadlineNumber = 1;
|
||
paperPage.setDeadlineDate(deadlineNumber, testDate);
|
||
paperPage.setDeadlineDescription(deadlineNumber, testDesc);
|
||
}
|
||
|
||
@Test
|
||
public void addReferenceTest() {
|
||
createNewPaper();
|
||
getContext().goTo(applicationProperties.getBaseUrl() + getPapersPageUrl());
|
||
PapersPage papersPage = getPapersPage();
|
||
papersPage.clickFirstPaper();
|
||
|
||
PaperPage paperPage = getPaperPage();
|
||
fillRequiredFields(paperPage, "test " + (String.valueOf(System.currentTimeMillis())));
|
||
paperPage.clickReferenceTab();
|
||
paperPage.clickAddReferenceButton();
|
||
|
||
paperPage.clickReferenceTab();
|
||
paperPage.showFirstReference();
|
||
String authors = "testAuthors";
|
||
paperPage.setFirstReferenceAuthors(authors);
|
||
|
||
String paperId = paperPage.getId();
|
||
paperPage.clickSaveBtn();
|
||
|
||
getContext().goTo(applicationProperties.getBaseUrl() + String.format("/papers/paper?id=%s", paperId));
|
||
|
||
Assert.assertTrue(paperPage.authorsExists(authors));
|
||
}
|
||
|
||
@Test
|
||
public void referencesFormatTest() {
|
||
getContext().goTo(applicationProperties.getBaseUrl() + getPaperPageUrl());
|
||
|
||
PaperPage paperPage = getPaperPage();
|
||
paperPage.setTitle("test");
|
||
paperPage.clickReferenceTab();
|
||
paperPage.clickAddReferenceButton();
|
||
|
||
paperPage.clickReferenceTab();
|
||
paperPage.showFirstReference();
|
||
paperPage.setFirstReferenceAuthors("authors");
|
||
paperPage.setFirstReferencePublicationTitle("title");
|
||
paperPage.setFirstReferencePublicationYear("2010");
|
||
paperPage.setFirstReferencePublisher("publisher");
|
||
paperPage.setFirstReferencePages("200");
|
||
paperPage.setFirstReferenceJournalOrCollectionTitle("journal");
|
||
paperPage.setFormatStandardSpringer();
|
||
paperPage.clickFormatButton();
|
||
|
||
Assert.assertEquals("authors (2010) title. journal, publisher, pp 200", paperPage.getFormatString());
|
||
}
|
||
|
||
@Test
|
||
public void dashboardLinkTest() {
|
||
getContext().goTo(applicationProperties.getBaseUrl() + getPaperPageUrl());
|
||
PaperPage paperPage = getPaperPage();
|
||
|
||
fillRequiredFields(paperPage, "test " + (String.valueOf(System.currentTimeMillis())));
|
||
String testLink = "http://test.com/";
|
||
paperPage.setUrl(testLink);
|
||
paperPage.clickSaveBtn();
|
||
|
||
getContext().goTo(applicationProperties.getBaseUrl() + getPapersDashboardPageUrl());
|
||
PapersDashboardPage papersDashboardPage = getPapersDashboardPage();
|
||
|
||
Assert.assertTrue(papersDashboardPage.externalLinkExists(testLink));
|
||
}
|
||
|
||
@Test
|
||
public void deletePaperTest() {
|
||
createNewPaper();
|
||
getContext().goTo(applicationProperties.getBaseUrl() + getPapersPageUrl());
|
||
PapersPage papersPage = getPapersPage();
|
||
|
||
int size = papersPage.getPapersCount();
|
||
papersPage.clickRemoveFirstPaperButton();
|
||
papersPage.clickConfirmDeleteButton();
|
||
|
||
Assert.assertEquals(size - 1, papersPage.getPapersCount());
|
||
}
|
||
|
||
@Test
|
||
public void latexValidationTest() {
|
||
getContext().goTo(applicationProperties.getBaseUrl() + getPaperPageUrl());
|
||
|
||
PaperPage paperPage = getPaperPage();
|
||
paperPage.setTitle("test");
|
||
paperPage.clickLatexTab();
|
||
paperPage.setLatexText("test");
|
||
paperPage.clickPdfButton();
|
||
|
||
Assert.assertTrue(paperPage.dangerMessageExist("Ошибка при создании PDF"));
|
||
}
|
||
|
||
@Test
|
||
public void titleValidationTest() {
|
||
getContext().goTo(applicationProperties.getBaseUrl() + getPaperPageUrl());
|
||
PaperPage paperPage = getPaperPage();
|
||
|
||
paperPage.clickSaveBtn();
|
||
|
||
Assert.assertTrue(paperPage.hasAlert("не может быть пусто"));
|
||
}
|
||
|
||
}
|