Skip to content

Commit 96f6f03

Browse files
author
Konstantin Bulavin
committed
rebase commit
1 parent edfcbce commit 96f6f03

File tree

14 files changed

+603
-44
lines changed

14 files changed

+603
-44
lines changed

jdi-light-angular-tests/src/main/java/io/github/com/StaticSite.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import io.github.com.pages.ButtonTogglePage;
99
import io.github.com.pages.ButtonsPage;
1010
import io.github.com.pages.CheckBoxPage;
11+
import io.github.com.pages.ChipsPage;
1112
import io.github.com.pages.ProgressBarPage;
1213
import io.github.com.pages.ProgressSpinnerPage;
1314
import io.github.com.pages.RadioButtonPage;
@@ -41,4 +42,7 @@ public class StaticSite {
4142

4243
@Url("checkbox")
4344
public static CheckBoxPage checkBoxPage;
45+
46+
@Url("chips")
47+
public static ChipsPage chipsPage;
4448
}
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package io.github.com.pages;
2+
3+
import com.epam.jdi.light.angular.elements.complex.ChipGroup;
4+
import com.epam.jdi.light.angular.elements.complex.Chips;
5+
import com.epam.jdi.light.elements.pageobjects.annotations.locators.UI;
6+
import com.epam.jdi.light.ui.html.elements.common.Text;
7+
8+
import static com.jdiai.tools.Timer.waitCondition;
9+
10+
public class ChipsPage extends NewAngularPage {
11+
12+
@UI("#basic-chips-row")
13+
public static ChipGroup basicChips;
14+
15+
@UI("#stacked-chips-list")
16+
public static ChipGroup stackedChips;
17+
18+
@UI("#chips-autocomplete-field")
19+
public static ChipGroup autocompleteChips;
20+
21+
@UI("#chips-with-input-field")
22+
public static ChipGroup inputChips;
23+
24+
@UI("#chips-with-form-control")
25+
public static ChipGroup formControlChips;
26+
27+
@UI("#chips-drag-and-drop")
28+
public static ChipGroup dragAndDropChips;
29+
30+
@UI("#chips-avatar")
31+
public static ChipGroup avatarChips;
32+
33+
@UI("#chips-disabled-ripple")
34+
public static ChipGroup disabledRippleChips;
35+
36+
@UI("#chips-enabled-ripple")
37+
public static ChipGroup enabledRippleChips;
38+
39+
@UI("#chips-disabled")
40+
public static ChipGroup disabledChips;
41+
42+
@UI("#chips-highlighted")
43+
public static ChipGroup highlightedChips;
44+
45+
@UI("#multiple-chips")
46+
public static ChipGroup multipleChips;
47+
48+
@UI("#chips-with-error-state")
49+
public static ChipGroup errorChips;
50+
51+
@UI("#basic-chips-label")
52+
public static Text basicSelectedValue;
53+
54+
@UI("#stacked-chips-label")
55+
public static Text stackedSelectedValue;
56+
57+
// @Override
58+
// public void checkOpened() {
59+
// super.checkOpened();
60+
// waitCondition(() -> !basicChips.isDisabled());
61+
// }
62+
63+
}
Lines changed: 82 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package io.github.epam.angular.tests.elements.complex;
22

3+
import io.github.com.pages.ChipsPage;
34
import io.github.epam.TestsInit;
5+
import org.testng.annotations.BeforeClass;
46
import org.testng.annotations.BeforeMethod;
57
import org.testng.annotations.Ignore;
68
import org.testng.annotations.Test;
@@ -9,18 +11,27 @@
911
import java.util.List;
1012

1113
import static com.jdiai.tools.StringUtils.format;
12-
import static io.github.com.StaticSite.angularPage;
13-
import static io.github.com.pages.sections.ChipsSection.*;
14+
import static com.jdiai.tools.Timer.waitCondition;
15+
import static io.github.com.StaticSite.chipsPage;
16+
import static io.github.com.pages.ChipsPage.autocompleteChips;
17+
import static io.github.com.pages.ChipsPage.basicChips;
18+
import static io.github.com.pages.ChipsPage.inputChips;
19+
import static io.github.com.pages.ChipsPage.multipleChips;
20+
import static io.github.com.pages.ChipsPage.stackedChips;
21+
import static io.github.com.pages.ChipsPage.stackedSelectedValue;
22+
import static io.github.com.pages.sections.ChipsSection.chipsAutocompleteField;
23+
import static io.github.com.pages.sections.ChipsSection.chipsAutocompleteInput;
24+
import static io.github.com.pages.sections.ChipsSection.chipsWithInputInput;
1425
import static io.github.epam.site.steps.States.shouldBeLoggedIn;
1526

1627
// TODO Move to the new page
17-
@Ignore
28+
//@Ignore
1829
public class ChipsTests extends TestsInit {
1930

2031
private static final String ONEFISH = "One fish";
2132
private static final String TWOFISH = "Two fish";
2233
private static final String PRIMARYFISH = "Primary fish";
23-
private static final String ACCENTFISH = "Accent fish";
34+
private static final String WARNFISH = "Warn fish";
2435

2536
private static final String NONE = "none";
2637
private static final String PRIMARY = "Primary";
@@ -33,34 +44,42 @@ public class ChipsTests extends TestsInit {
3344
private static final String LIME = "Lime";
3445

3546

36-
@BeforeMethod(alwaysRun = true)
47+
// @BeforeMethod(alwaysRun = true)
48+
// public void before() {
49+
// shouldBeLoggedIn();
50+
// angularPage.shouldBeOpened();
51+
// }
52+
53+
@BeforeClass
3754
public void before() {
38-
shouldBeLoggedIn();
39-
angularPage.shouldBeOpened();
55+
chipsPage.open();
56+
waitCondition(() -> chipsPage.isOpened());
57+
chipsPage.checkOpened();
4058
}
4159

4260
@Test
4361
public void basicChipsTest() {
44-
basicChipsRow.show();
45-
basicChipsRow.is().displayed();
46-
basicChipsRow.is().assertChipsIsEnabled();
47-
basicChipsRow.clickChipsByTextValue(ONEFISH);
48-
basicChipsRow.clickChipsByTextValue(TWOFISH);
49-
basicChipsRow.clickChipsByTextValue(PRIMARYFISH);
50-
basicChipsRow.clickChipsByTextValue(ACCENTFISH);
51-
52-
basicSelectedValue.has().text(format("You clicked: %s", ACCENTFISH));
62+
basicChips.show();
63+
// basicChips.is().displayed();
64+
// basicChips.is().assertChipsIsEnabled();
65+
// basicChips.selectByText(ONEFISH);
66+
basicChips.selectByText(TWOFISH);
67+
basicChips.selectByText(PRIMARYFISH);
68+
basicChips.selectByText(WARNFISH);
69+
70+
ChipsPage.basicSelectedValue.has().text(format("You clicked: %s", WARNFISH));
5371
}
5472

5573
@Test
5674
public void stackedChipsTest() {
57-
stackedChipsList.show();
58-
stackedChipsList.is().displayed();
59-
stackedChipsList.is().assertChipsIsEnabled();
60-
stackedChipsList.clickChipsByTextValue(NONE);
61-
stackedChipsList.clickChipsByTextValue(PRIMARY);
62-
stackedChipsList.clickChipsByTextValue(ACCENT);
63-
stackedChipsList.clickChipsByTextValue(WARN);
75+
stackedChips.show();
76+
// stackedChipsList.is().displayed();
77+
// stackedChipsList.is().assertChipsIsEnabled();
78+
stackedChips.is().vertical();
79+
stackedChips.selectByText(NONE);
80+
stackedChips.selectByText(PRIMARY);
81+
stackedChips.selectByText(ACCENT);
82+
stackedChips.selectByText(WARN);
6483

6584
stackedSelectedValue.has().text(format("You clicked: %s", WARN));
6685
}
@@ -70,29 +89,49 @@ public void chipsAutocompleteTest() {
7089
String[] expectedValuesArray = {
7190
"Apple", "Lemon", "Lime", "Orange", "Strawberry"};
7291
List<String> expectedValues = Arrays.asList(expectedValuesArray);
73-
chipsAutocompleteField.show();
74-
chipsAutocompleteField.is().displayed();
75-
chipsAutocompleteInput.is().assertChipsIsEnabled();
76-
chipsAutocompleteInput.has().assertChipsHasPlaceholder(PLACEHOLDER);
77-
chipsAutocompleteInput.has().assertChipsHasOptions(expectedValues);
78-
79-
chipsAutocompleteInput.setValue(LEMON);
80-
chipsAutocompleteField.collapseField();
81-
chipsAutocompleteInput.setValue(APPLE);
82-
chipsAutocompleteField.collapseField();
83-
chipsAutocompleteInput.setValue(LIME);
84-
chipsAutocompleteField.collapseField();
92+
autocompleteChips.show();
93+
94+
// autocompleteChips.is().disabled();
95+
// chipsAutocompleteField.is().displayed();
96+
// chipsAutocompleteInput.is().assertChipsIsEnabled();
97+
// autocompleteChips.has().assertChipsHasPlaceholder(PLACEHOLDER);
98+
// autocompleteChips.has().assertChipsHasOptions(expectedValues);
99+
100+
autocompleteChips.setValue(LEMON);
101+
// chipsAutocompleteField.collapseField();
102+
// chipsAutocompleteInput.setValue(APPLE);
103+
// chipsAutocompleteField.collapseField();
104+
// chipsAutocompleteInput.setValue(LIME);
105+
// chipsAutocompleteField.collapseField();
106+
107+
85108
}
86109

87110
@Test
88111
public void chipsWithInputTest() {
89-
chipsWithInputField.show();
90-
chipsWithInputField.is().displayed();
91-
chipsWithInputInput.is().assertChipsIsEnabled();
92-
chipsWithInputInput.has().assertChipsHasPlaceholder(PLACEHOLDER);
93-
chipsWithInputInput.input("Kiwi" + "\n");
94-
chipsWithInputInput.input("Melon");
95-
chipsWithInputInput.clearInputField();
96-
chipsWithInputInput.input("Rockmelon" + "\n");
112+
inputChips.show();
113+
chipsWithInputInput.is().displayed();
114+
// inputChips.is().assertChipsIsEnabled();
115+
inputChips.has().assertChipsHasPlaceholder(PLACEHOLDER);
116+
inputChips.input("Kiwi" + "\n");
117+
inputChips.input("Melon");
118+
inputChips.clearInputField();
119+
inputChips.input("Rockmelon" + "\n");
120+
}
121+
122+
123+
@Test
124+
public void mult() {
125+
multipleChips.show();
126+
// multipleChips.is().displayed();
127+
// multipleChips.is().multiselectable();
97128
}
129+
//
130+
// @Test
131+
// public void testTest() {
132+
// basicChips.getChipsByIndex(1).click();
133+
// ChipsPage.basicSelectedValue.has().text(format("You clicked: %s", ONEFISH));
134+
// System.out.println("Hello world!");
135+
// System.out.println(basicChips.getText());
136+
// }
98137
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package com.epam.jdi.light.angular.asserts;
2+
3+
import com.epam.jdi.light.angular.elements.common.Chip;
4+
import com.epam.jdi.light.asserts.generic.UIAssert;
5+
6+
public class ChipAssert extends UIAssert<ChipAssert, Chip> {
7+
8+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package com.epam.jdi.light.angular.asserts;
2+
3+
import com.epam.jdi.light.angular.elements.complex.ChipGroup;
4+
import com.epam.jdi.light.asserts.generic.UIAssert;
5+
import com.epam.jdi.light.common.JDIAction;
6+
import org.hamcrest.Matchers;
7+
8+
import java.util.List;
9+
10+
import static com.epam.jdi.light.asserts.core.SoftAssert.jdiAssert;
11+
12+
public class ChipGroupAssert extends UIAssert<ChipGroupAssert, ChipGroup> {
13+
14+
@JDIAction("")
15+
public ChipGroupAssert vertical(){
16+
jdiAssert(element().getOrientation(), Matchers.is("vertical"));
17+
return this;
18+
}
19+
20+
@JDIAction("Assert that '{name}' has placeholder '{0}'")
21+
public ChipGroupAssert assertChipsHasPlaceholder(String expected) {
22+
jdiAssert(element().getPlaceholderForChips(), Matchers.is(expected));
23+
return this;
24+
}
25+
26+
@JDIAction("Assert that '{name}' has options")
27+
public ChipGroupAssert assertChipsHasOptions(List<String> options) {
28+
jdiAssert(element().options(), Matchers.is(options));
29+
return this;
30+
}
31+
32+
public ChipGroupAssert multiselectable() {
33+
jdiAssert(element().isMultiselectable(), Matchers.is(true));
34+
return this;
35+
}
36+
37+
@JDIAction("Assert that '{name}' is displayed")
38+
public ChipGroupAssert displayed() {
39+
jdiAssert(element().isDisplayed() ? "displayed" : "hidden", Matchers.is("displayed"));
40+
return this;
41+
}
42+
43+
44+
}

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,10 @@ public ChipsAssert assertChipsHasPlaceholder(String expected) {
2929
jdiAssert(element().getPlaceholderForChips(), Matchers.is(expected));
3030
return this;
3131
}
32+
33+
@JDIAction("Assert that '{name}' is multiple selection")
34+
public ChipsAssert assertChipsIsMultiselectable() {
35+
jdiAssert(element().isMultipleSelection(), Matchers.is(true));
36+
return this;
37+
}
3238
}
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package com.epam.jdi.light.angular.elements.common;
2+
3+
import com.epam.jdi.light.angular.asserts.ChipAssert;
4+
import com.epam.jdi.light.angular.elements.interfaces.HasColor;
5+
import com.epam.jdi.light.angular.elements.interfaces.HasIcon;
6+
import com.epam.jdi.light.angular.elements.interfaces.HasImage;
7+
import com.epam.jdi.light.common.JDIAction;
8+
import com.epam.jdi.light.elements.base.UIBaseElement;
9+
import com.epam.jdi.light.elements.interfaces.base.HasClick;
10+
11+
public class Chip extends UIBaseElement<ChipAssert> implements HasClick, HasColor, HasIcon, HasImage {
12+
13+
// @Override
14+
// @JDIAction("Get if '{name}' is enabled")
15+
// public boolean isEnabled() {
16+
// return hasAttribute("disabled");
17+
// }
18+
19+
@JDIAction("Close '{name}'")
20+
public void close() {
21+
find("matChipRemove").click();
22+
}
23+
24+
@JDIAction ("Get if '{name}' is removable")
25+
public boolean isRemovable() {
26+
return hasAttribute("matchipremove");
27+
}
28+
29+
@JDIAction("Get if '{name} is focused'")
30+
public boolean isFocused() {
31+
return hasClass("cdk-focused");
32+
}
33+
34+
@JDIAction("Get if '{name} is selected'")
35+
public boolean isSelected() {
36+
return hasClass("mat-mdc-chip-selected");
37+
}
38+
39+
@JDIAction("Get if '{name} checkmark is visible'")
40+
public boolean showCheckMark() {
41+
return find("mdc-evolution-chip__checkmark").isVisible();
42+
}
43+
44+
public String getText() {
45+
return find(".mdc-evolution-chip__text-label").getText();
46+
}
47+
48+
public void click() {
49+
core().click();
50+
}
51+
52+
// @JDIAction("Get '{name}' text")
53+
// public String getText() {
54+
// return
55+
// }
56+
57+
@Override
58+
public ChipAssert is() {
59+
return new ChipAssert().set(this);
60+
}
61+
62+
}

0 commit comments

Comments
 (0)