Skip to content

Commit

Permalink
Merge pull request #4 from alfa-laboratory/master
Browse files Browse the repository at this point in the history
Update
  • Loading branch information
snfrolov authored May 25, 2018
2 parents e419e51 + 4afa9ff commit a2adfe1
Show file tree
Hide file tree
Showing 4 changed files with 86 additions and 8 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ targetCompatibility = 1.8

project.ext {
cucumberVersion = '2.4.0'
selenideVersion = '4.11.2'
selenideVersion = '4.11.4'
}

dependencies {
Expand Down
36 changes: 33 additions & 3 deletions src/main/java/ru/alfabank/steps/DefaultSteps.java
Original file line number Diff line number Diff line change
Expand Up @@ -821,6 +821,20 @@ public void checkListElementsContainsText(String listName, String expectedValue)
elementsListText.stream().allMatch(item -> item.contains(value.toLowerCase())));
}

/**
* Проверка, что каждый элемент списка не содержит ожидаемый текст
*/
@Тогда("^элементы списка \"([^\"]*)\" не содержат текст \"([^\"]*)\"$")
public void checkListElementsNotContainsText(String listName, String expectedValue) {
final String value = getPropertyOrValue(expectedValue);
List<SelenideElement> listOfElementsFromPage = akitaScenario.getCurrentPage().getElementsList(listName);
List<String> elementsListText = listOfElementsFromPage.stream()
.map(element -> element.getText().trim().toLowerCase())
.collect(toList());
assertFalse(String.format("Элемены списка %s: [%s] содержат текст [%s] ", listName, elementsListText, value),
elementsListText.stream().allMatch(item -> item.contains(value.toLowerCase())));
}

/**
* Ввод в поле случайной последовательности латинских или кириллических букв задаваемой длины
*/
Expand Down Expand Up @@ -869,12 +883,11 @@ public void inputAndSetRandomNumSequence(String elementName, int seqLength, Stri
public void checkListTextsByRegExp(String listName, String pattern) {
akitaScenario.getCurrentPage().getElementsList(listName).forEach(element -> {
String str = akitaScenario.getCurrentPage().getAnyElementText(element);
Assert.assertTrue(
format("Текст '%s' из списка '%s' не соответствует формату регулярного выражения", str, listName), isTextMatches(str, pattern));
assertTrue(format("Текст '%s' из списка '%s' не соответствует формату регулярного выражения", str, listName),
isTextMatches(str, pattern));
});
}


/**
* Выполняется запуск js-скрипта с указанием в js.executeScript его логики
* Скрипт можно передать как аргумент метода или значение из application.properties
Expand All @@ -901,7 +914,15 @@ public void checkFieldSymbolsCount(String element, int num) {
public void listContainsNumberOfElements(String listName, int quantity) {
List<SelenideElement> listOfElementsFromPage = akitaScenario.getCurrentPage().getElementsList(listName);
assertTrue(String.format("Число элементов в списке отличается от ожидаемого: %s", listOfElementsFromPage.size()), listOfElementsFromPage.size() == quantity);
}

/**
* Производится проверка соответствия числа элементов списка значению из property файла, из переменной сценария или указанному в шаге
*/
@Тогда("^в списке \"([^\"]*)\" содержится количество элементов, равное значению из переменной \"([^\"]*)\"")
public void listContainsNumberFromVariable(String listName, String quantity) {
int numberOfElements = Integer.parseInt(getPropertyOrStringVariableOrValue(quantity));
listContainsNumberOfElements(listName, numberOfElements);
}

/**
Expand All @@ -916,6 +937,15 @@ public void listContainsMoreOrLessElements(String listName, String moreOrLess, i

}

/**
* Проверка совпадения значения из переменной и значения и property
*/
@Тогда("^значения из переменной \"([^\"]*)\" и из property файла \"([^\"]*)\" совпадают$")
public void checkIfValueFromVariableEqualPropertyVariable(String envVarible, String propertyVariable) {
assertThat("Переменные " + envVarible + " и " + propertyVariable + " не совпадают",
(String) akitaScenario.getVar(envVarible), equalToIgnoringCase(loadProperty(propertyVariable)));
}

/**
* Возвращает значение из property файла, если отсутствует, то из пользовательских переменных,
* если и оно отсутствует, то возвращает значение переданной на вход переменной
Expand Down
53 changes: 50 additions & 3 deletions src/test/java/ru/alfabank/steps/DefaultStepsTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -536,20 +536,35 @@ public void selectRandomElementFromListAndSaveVarNegative() {
}

@Test
public void checkListElementsContainsTextPositive() {
public void testCheckListElementsContainsTextPositive() {
ds.checkListElementsContainsText("List2", "item");
}

@Test
public void checkListElementsContainsTextPositiveWithProps() {
public void testCheckListElementsContainsTextPositiveWithProps() {
ds.checkListElementsContainsText("List2", "itemValueInProps");
}

@Test(expected = AssertionError.class)
public void checkListElementsContainsTextNegative() {
public void testCheckListElementsContainsTextNegative() {
ds.checkListElementsContainsText("List2", "item1");
}

@Test
public void testCheckListElementsNotContainsTextPositive() {
ds.checkListElementsNotContainsText("List2", "item1");
}

@Test(expected = AssertionError.class)
public void testCheckListElementsNotContainsTextNegative() {
ds.checkListElementsNotContainsText("List2", "item");
}

@Test(expected = AssertionError.class)
public void testCheckListElementsNotContainsTextNegativeWithProps() {
ds.checkListElementsNotContainsText("List2", "itemValueInProps");
}

@Test
public void checkIfListInnerTextConsistsOfTableElements() {
ArrayList<String> types = new ArrayList<>();
Expand Down Expand Up @@ -721,6 +736,27 @@ public void testListContainsNumberOfElementsNegative() {
ds.listContainsNumberOfElements("List", 4);
}

@Test
public void testListContainsNumberOfElementsOrContainsFromVariablePositive() {
ds.listContainsNumberFromVariable("List", "3");
}

@Test
public void testListContainsNumberOfElementsOrContainsFromVariableAnotherPositive() {
akitaScenario.setVar("variable", "3");
ds.listContainsNumberFromVariable("List", "variable");
}

@Test
public void testListContainsNumberOfElementsOrContainsFromVariableOneMorePositive() {
ds.listContainsNumberFromVariable("List", "var3");
}

@Test(expected = AssertionError.class)
public void testListContainsNumberOfElementsOrContainsFromVariableNegative() {
ds.listContainsNumberFromVariable("List", "4");
}

@Test
public void testListContainsMoreOrLessElementsLessPositive(){
ds.listContainsMoreOrLessElements("List", "менее", 4);
Expand All @@ -741,4 +777,15 @@ public void testListContainsMoreOrLessElementsMoreNegative(){
ds.listContainsMoreOrLessElements("List", "более", 3);
}

@Test
public void testCheckIfValueFromVariableEqualPropertyVariablePositive(){
akitaScenario.setVar("timeout","60000");
ds.checkIfValueFromVariableEqualPropertyVariable("timeout","waitingAppearTimeout");
}

@Test(expected = AssertionError.class)
public void testCheckIfValueFromVariableEqualPropertyVariableNegative(){
akitaScenario.setVar("timeout","500");
ds.checkIfValueFromVariableEqualPropertyVariable("timeout","waitingAppearTimeout");
}
}
3 changes: 2 additions & 1 deletion src/test/resources/application.properties
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,5 @@ textValueInProps=text
testingPageTextProps=Serious testing page
testScript=alert('privet');
bodyValue={"property":"body"}
var2="2"
var2="2"
var3=3

0 comments on commit a2adfe1

Please sign in to comment.