Skip to content

Commit cb5bbfb

Browse files
authored
Merge pull request #5282 from jdi-testing/task-4934-refactor-toggle-slide-tests
Task 4934 refactor toggle slide tests
2 parents 84d4439 + 9101b31 commit cb5bbfb

File tree

3 files changed

+30
-10
lines changed

3 files changed

+30
-10
lines changed

jdi-light-angular-tests/src/test/java/io/github/epam/angular/tests/elements/common/SlideToggleTests.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package io.github.epam.angular.tests.elements.common;
22

3-
import com.epam.jdi.light.elements.interfaces.base.ICoreElement;
43
import io.github.epam.TestsInit;
54
import org.testng.annotations.BeforeClass;
65
import org.testng.annotations.Test;
@@ -19,6 +18,8 @@
1918

2019
public class SlideToggleTests extends TestsInit {
2120

21+
private static final String SLIDE_ME = "Slide me!";
22+
2223
@BeforeClass
2324
public void before() {
2425
slideTogglePage.open();
@@ -28,7 +29,7 @@ public void before() {
2829

2930
@Test(description = "Test verifies functionality of basic slide toggle")
3031
public void basicToggleCheckedTest() {
31-
basicSlideToggle.waitFor(ICoreElement::isEnabled);
32+
basicSlideToggle.show();
3233
basicSlideToggle.check();
3334
basicSlideToggle.is().selected();
3435
basicSlideToggle.uncheck();
@@ -67,6 +68,8 @@ public void resultToggleDisableTest() {
6768
public void labelButtonTogglePositionTest() {
6869
beforeLabelPositionRadioButton.click();
6970
resultSlideToggle.has().labelBeforePosition();
71+
resultSlideToggle.has().label(SLIDE_ME);
7072
basicSlideToggle.has().labelAfterPosition();
73+
basicSlideToggle.has().label(SLIDE_ME);
7174
}
7275
}

jdi-light-angular/src/main/java/com/epam/jdi/light/angular/asserts/SlideToggleAssert.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package com.epam.jdi.light.angular.asserts;
22

3-
import static com.epam.jdi.light.asserts.core.SoftAssert.jdiAssert;
4-
53
import com.epam.jdi.light.angular.elements.common.SlideToggle;
64
import com.epam.jdi.light.asserts.generic.UIAssert;
75
import com.epam.jdi.light.common.JDIAction;
86
import org.hamcrest.Matchers;
97

8+
import static com.epam.jdi.light.asserts.core.SoftAssert.jdiAssert;
9+
1010
public class SlideToggleAssert extends UIAssert<SlideToggleAssert, SlideToggle> {
1111

1212
@Override
@@ -26,14 +26,20 @@ public SlideToggleAssert enabled() {
2626
@JDIAction(value = "'{name}' element label is in before position", isAssert = true)
2727
public SlideToggleAssert labelBeforePosition() {
2828
jdiAssert(element().hasLabelBeforePosition(), Matchers.is(true),
29-
"Slide toggle label is not in before position");
29+
"Slide toggle label is not in before position");
3030
return this;
3131
}
3232

3333
@JDIAction(value = "'{name}' element label is in after position", isAssert = true)
3434
public SlideToggleAssert labelAfterPosition() {
3535
jdiAssert(element().hasLabelBeforePosition(), Matchers.is(false),
36-
"Slide toggle label is not in after position");
36+
"Slide toggle label is not in after position");
37+
return this;
38+
}
39+
40+
@JDIAction("'{name}' has label with value '{0}'")
41+
public SlideToggleAssert label(String labelText) {
42+
jdiAssert(element().label().getValue(), Matchers.is(labelText));
3743
return this;
3844
}
3945

jdi-light-angular/src/main/java/com/epam/jdi/light/angular/elements/common/SlideToggle.java

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,21 @@
33
import com.epam.jdi.light.angular.asserts.SlideToggleAssert;
44
import com.epam.jdi.light.common.JDIAction;
55
import com.epam.jdi.light.elements.base.UIBaseElement;
6+
import com.epam.jdi.light.elements.common.Label;
67
import com.epam.jdi.light.elements.common.UIElement;
8+
import com.epam.jdi.light.elements.interfaces.base.HasLabel;
79

810
/**
911
* To see an example of SlideToggle web element please visit https://material.angular
1012
* .io/components/slide-toggle/overview.
1113
*/
1214

13-
public class SlideToggle extends UIBaseElement<SlideToggleAssert> {
15+
public class SlideToggle extends UIBaseElement<SlideToggleAssert> implements HasLabel {
1416

1517
private static final String FORM_FIELD_LOCATOR = ".mdc-form-field";
1618

19+
private static final String BUTTON_LOCATOR = "button[role=switch]";
20+
1721
public boolean isSelected() {
1822
return core().hasClass("mat-checked") || core().hasClass("mat-mdc-slide-toggle-checked");
1923
}
@@ -29,20 +33,27 @@ public boolean isDisabled() {
2933
return e.hasAttribute("disabled");
3034
}
3135

32-
@JDIAction("'{name}' element label is in before position")
36+
@Override
37+
public Label label() {
38+
return new Label().setCore(Label.class, core().find(".//label"));
39+
}
40+
41+
@JDIAction("Get if '{name}' element label is in before position")
3342
public boolean hasLabelBeforePosition() {
3443
return core().find(FORM_FIELD_LOCATOR).hasClass("mdc-form-field--align-end");
3544
}
3645

46+
@JDIAction("Turn on the '{name}' switch button")
3747
public void check() {
3848
if (!isSelected()) {
39-
core().find(FORM_FIELD_LOCATOR).click();
49+
core().find(BUTTON_LOCATOR).click();
4050
}
4151
}
4252

53+
@JDIAction("Turn off the '{name}' switch button")
4354
public void uncheck() {
4455
if (isSelected()) {
45-
core().find(FORM_FIELD_LOCATOR).click();
56+
core().find(BUTTON_LOCATOR).click();
4657
}
4758
}
4859

0 commit comments

Comments
 (0)