Skip to content

Commit ce4e5e1

Browse files
author
Igor Vlasiuk
committed
PR improvements
1 parent 0ee187f commit ce4e5e1

File tree

4 files changed

+97
-49
lines changed

4 files changed

+97
-49
lines changed

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@ public class CardPage extends NewAngularPage {
2020
public static Card cardAlignEndActions;
2121

2222
@UI("#card-with-media-size-sm-image")
23-
public static Card cardWithSmallImageSize;
23+
public static Card cardWithSmallImage;
2424

2525
@UI("#card-with-media-size-md-image")
26-
public static Card cardWithMediumImageSize;
26+
public static Card cardWithMediumImage;
2727

2828
@UI("#card-with-media-size-lg-image")
29-
public static Card cardWithLargeImageSize;
29+
public static Card cardWithLargeImage;
3030

3131
@UI("#card-with-media-size-xl-image")
32-
public static Card cardWithExtraLargeImageSize;
32+
public static Card cardWithExtraLargeImage;
3333
}

jdi-light-angular-tests/src/test/java/io/github/epam/angular/tests/elements/complex/CardTests.java

Lines changed: 33 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,30 @@
11
package io.github.epam.angular.tests.elements.complex;
22

3-
import com.epam.jdi.light.angular.elements.enums.CardImageSize;
43
import io.github.epam.TestsInit;
54
import org.testng.annotations.BeforeClass;
65
import org.testng.annotations.Test;
76

7+
import static com.epam.jdi.light.angular.elements.enums.CardImageSize.EXTRALARGE;
8+
import static com.epam.jdi.light.angular.elements.enums.CardImageSize.LARGE;
9+
import static com.epam.jdi.light.angular.elements.enums.CardImageSize.MEDIUM;
10+
import static com.epam.jdi.light.angular.elements.enums.CardImageSize.SMALL;
811
import static com.jdiai.tools.Timer.waitCondition;
912
import static io.github.com.StaticSite.cardPage;
1013
import static io.github.com.pages.CardPage.card;
1114
import static io.github.com.pages.CardPage.cardAlignEndActions;
1215
import static io.github.com.pages.CardPage.cardAlignStartActions;
13-
import static io.github.com.pages.CardPage.cardWithExtraLargeImageSize;
16+
import static io.github.com.pages.CardPage.cardWithExtraLargeImage;
1417
import static io.github.com.pages.CardPage.cardWithFooter;
15-
import static io.github.com.pages.CardPage.cardWithLargeImageSize;
16-
import static io.github.com.pages.CardPage.cardWithMediumImageSize;
17-
import static io.github.com.pages.CardPage.cardWithSmallImageSize;
18+
import static io.github.com.pages.CardPage.cardWithLargeImage;
19+
import static io.github.com.pages.CardPage.cardWithMediumImage;
20+
import static io.github.com.pages.CardPage.cardWithSmallImage;
1821
import static io.github.com.pages.CardPage.simpleCard;
1922

2023

2124
public class CardTests extends TestsInit {
25+
26+
private static final String IMAGE_SRC = "https://material.angular.io/assets/img/examples/shiba2.jpg";
27+
2228
@BeforeClass
2329
public void before() {
2430
cardPage.open();
@@ -35,8 +41,13 @@ public void displayedBasicCardTest() {
3541
@Test(description = "Test verifies card text and image")
3642
public void attributeCardTest() {
3743
simpleCard.has().cardText("Simple card");
38-
card.has().altImageAttribute("Photo of a Shiba Inu");
39-
card.has().srcImageAttribute("https://material.angular.io/assets/img/examples/shiba2.jpg");
44+
card.has().altImageAttribute(1, "Photo of a Shiba Inu");
45+
card.has().srcImageAttribute(1,IMAGE_SRC);
46+
47+
cardWithSmallImage.has().headerImageWithSrcAttribute(1, IMAGE_SRC);
48+
cardWithMediumImage.has().headerImageWithSrcAttribute(1, IMAGE_SRC);
49+
cardWithLargeImage.has().headerImageWithSrcAttribute(1, IMAGE_SRC);
50+
cardWithExtraLargeImage.has().headerImageWithSrcAttribute(1, IMAGE_SRC);
4051
}
4152

4253
@Test(description = "Test verifies that elements of the card are displayed")
@@ -48,7 +59,7 @@ public void displayedCardTest() {
4859
card.getTitle().is().text("Shiba Inu");
4960
card.getSubtitle().is().displayed();
5061
card.getSubtitle().is().text("Dog Breed");
51-
card.image().is().displayed();
62+
card.image(1).is().displayed();
5263
card.getContent().is().displayed();
5364
cardWithFooter.show();
5465
cardWithFooter.getFooter().is().displayed();
@@ -78,10 +89,18 @@ public void alignPositionTest() {
7889

7990
@Test(description = "Test verifies image size of the card")
8091
public void sizeOfCardImageTest() {
81-
cardWithSmallImageSize.has().imageSize(CardImageSize.SMALL);
82-
cardWithMediumImageSize.has().imageSize(CardImageSize.MEDIUM);
83-
cardWithLargeImageSize.has().imageSize(CardImageSize.LARGE);
84-
cardWithExtraLargeImageSize.has().imageSize(CardImageSize.EXTRALARGE);
85-
}
92+
card.has().imageSize(1, 320, 400);
8693

87-
}
94+
cardWithSmallImage.has().headerImageSize(1, SMALL);
95+
cardWithSmallImage.has().headerImageSize(1, 80, 80);
96+
97+
cardWithMediumImage.has().headerImageSize(1, MEDIUM);
98+
cardWithMediumImage.has().headerImageSize(1, 112, 112);
99+
100+
cardWithLargeImage.has().headerImageSize(1, LARGE);
101+
cardWithLargeImage.has().headerImageSize(1, 152, 152);
102+
103+
cardWithExtraLargeImage.has().headerImageSize(1, EXTRALARGE);
104+
cardWithExtraLargeImage.has().headerImageSize(1, 240, 240);
105+
}
106+
}

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

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,20 @@ public CardAssert cardText(String value) {
1717
}
1818

1919
@JDIAction(value = "Assert that '{name}' alt image attribute has text '{0}'", isAssert = true)
20-
public CardAssert altImageAttribute(String value) {
21-
jdiAssert(element().image().attr("alt").contains(value), Matchers.is(true), "ERROR MESSAGE IS REQUIRED");
20+
public CardAssert altImageAttribute(int imageNumber, String value) {
21+
jdiAssert(element().image(imageNumber).alt().contains(value), Matchers.is(true), "ERROR MESSAGE IS REQUIRED");
2222
return this;
2323
}
2424

2525
@JDIAction(value = "Assert that '{name}' src image attribute has text '{0}'", isAssert = true)
26-
public CardAssert srcImageAttribute(String value) {
27-
jdiAssert(element().image().attr("src").contains(value), Matchers.is(true), "ERROR MESSAGE IS REQUIRED");
26+
public CardAssert srcImageAttribute(int imageNumber, String value) {
27+
jdiAssert(element().image(imageNumber).src().contains(value), Matchers.is(true), "ERROR MESSAGE IS REQUIRED");
28+
return this;
29+
}
30+
31+
@JDIAction(value = "Assert that '{name}' alt image attribute has text '{0}'", isAssert = true)
32+
public CardAssert headerImageWithSrcAttribute(int imageNumber, String src) {
33+
jdiAssert(element().cartHeaderImage(imageNumber).src().contains(src), Matchers.is(true), "ERROR MESSAGE IS REQUIRED");
2834
return this;
2935
}
3036

@@ -48,9 +54,23 @@ public CardAssert alignStartActions() {
4854
return this;
4955
}
5056

51-
@JDIAction("Assert that {name} has image '{0}' size")
52-
public CardAssert imageSize(CardImageSize size) {
53-
final CardImageSize actualCardImageSize = element().cardHeaderImageSize();
57+
@JDIAction("Assert that {name} has image with '{1}' height and '{2}' width")
58+
public CardAssert imageSize(int imageNumber, int height, int width) {
59+
jdiAssert(element().image(imageNumber).height(), Matchers.equalTo(height), "HEIGHT IS DIFFERENT");
60+
jdiAssert(element().image(imageNumber).width(), Matchers.equalTo(width), "WIDTH IS DIFFERENT");
61+
return this;
62+
}
63+
64+
@JDIAction("Assert that {name} has header image with '{1}' height and '{2}' width")
65+
public CardAssert headerImageSize(int imageNumber, int height, int width) {
66+
jdiAssert(element().cartHeaderImage(imageNumber).height(), Matchers.equalTo(height), "HEIGHT IS DIFFERENT");
67+
jdiAssert(element().cartHeaderImage(imageNumber).width(), Matchers.equalTo(width), "WIDTH IS DIFFERENT");
68+
return this;
69+
}
70+
71+
@JDIAction("Assert that {name} has image '{1}' size")
72+
public CardAssert headerImageSize(int imageNumber, CardImageSize size) {
73+
final CardImageSize actualCardImageSize = element().cardHeaderImageSize(imageNumber);
5474
jdiAssert(actualCardImageSize, Matchers.is(size));
5575
return this;
5676
}

jdi-light-angular/src/main/java/com/epam/jdi/light/angular/elements/complex/Card.java

Lines changed: 33 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@
1313
import static com.epam.jdi.light.angular.elements.enums.CardImageSize.LARGE;
1414
import static com.epam.jdi.light.angular.elements.enums.CardImageSize.MEDIUM;
1515
import static com.epam.jdi.light.angular.elements.enums.CardImageSize.SMALL;
16+
import static com.epam.jdi.light.angular.elements.enums.CardImageSize.UNKNOWN;
1617
import static com.epam.jdi.light.common.Exceptions.runtimeException;
18+
import static org.apache.commons.lang3.StringUtils.isNotBlank;
1719

1820
/**
1921
* To see an example of Card web element please visit https://material.angular.io/components/card/overview.
@@ -32,8 +34,8 @@ public UIElement getFooter() {
3234
}
3335

3436
@JDIAction("Get '{name}' avatar")
35-
public UIElement getAvatar() {
36-
return this.find(".mat-mdc-card-avatar");
37+
public Image getAvatar() {
38+
return new Image().setCore(Image.class, core().find(".mat-mdc-card-avatar"));
3739
}
3840

3941
@JDIAction("Get '{name}' title")
@@ -46,16 +48,6 @@ public UIElement getSubtitle() {
4648
return this.find(".mat-mdc-card-subtitle");
4749
}
4850

49-
@JDIAction("Get '{name}' image")
50-
public Image image() {
51-
core().show();
52-
if (core().find("//img").isExist()) {
53-
return new Image().setCore(Image.class, core().find("//img"));
54-
} else {
55-
throw runtimeException("Element doesn't have image", this);
56-
}
57-
}
58-
5951
@JDIAction("Get '{name}' content")
6052
public UIElement getContent() {
6153
return this.find(".mat-mdc-card-content");
@@ -91,30 +83,47 @@ public boolean actionsEndAlign() {
9183
}
9284
}
9385

94-
@JDIAction("Get '{name}' size")
95-
public CardImageSize cardHeaderImageSize() {
96-
UIElement image = core().find("//mat-card-header//img");
97-
return defineSize(image);
86+
@JDIAction("Get '{name}' image")
87+
public Image image(int imageNumber) {
88+
core().show();
89+
UIElement potentialImage = core().find("//img[" + imageNumber + "]");
90+
if (potentialImage.isExist()) {
91+
return new Image().setCore(Image.class, potentialImage);
92+
} else {
93+
throw runtimeException("Element doesn't have image", this);
94+
}
95+
}
96+
97+
@JDIAction("Get '{name}' header image")
98+
public Image cartHeaderImage(int imageNumber) {
99+
core().show();
100+
UIElement potentialImage = core().find("//mat-card-header//img[" + imageNumber + "]");
101+
if (potentialImage.isExist()) {
102+
return new Image().setCore(Image.class, potentialImage);
103+
} else {
104+
throw runtimeException("Element doesn't have image", this);
105+
}
98106
}
99107

100108
@JDIAction("Get '{name}' size")
101-
public CardImageSize cardImageSize() {
102-
UIElement image = core().find("//img");
109+
public CardImageSize cardHeaderImageSize(int imageNumber) {
110+
Image image = cartHeaderImage(imageNumber);
103111
return defineSize(image);
104112
}
105113

106-
private CardImageSize defineSize(UIElement image) {
107-
CardImageSize size = CardImageSize.UNKNOWN;
108-
if (image.hasClass("mat-mdc-card-xl-image")) {
114+
private CardImageSize defineSize(Image image) {
115+
CardImageSize size = UNKNOWN;
116+
117+
if (isNotBlank(image.classLike("-xl-"))) {
109118
size = EXTRALARGE;
110119
}
111-
if (image.hasClass("mat-mdc-card-lg-image")) {
120+
if (isNotBlank(image.classLike("-lg-"))) {
112121
size = LARGE;
113122
}
114-
if (image.hasClass("mat-mdc-card-md-image")) {
123+
if (isNotBlank(image.classLike("-md-"))) {
115124
size = MEDIUM;
116125
}
117-
if (image.hasClass("mat-mdc-card-sm-image")) {
126+
if (isNotBlank(image.classLike("-sm-"))) {
118127
size = SMALL;
119128
}
120129
return size;

0 commit comments

Comments
 (0)