Skip to content

Commit f7343ea

Browse files
author
Konstantin Bulavin
committed
graft commit
1 parent 68d720a commit f7343ea

File tree

9 files changed

+311
-87
lines changed

9 files changed

+311
-87
lines changed

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
package io.github.com;
22

3+
import com.epam.jdi.light.angular.elements.complex.Dialog;
34
import com.epam.jdi.light.elements.pageobjects.annotations.JSite;
45
import com.epam.jdi.light.elements.pageobjects.annotations.Url;
56
import io.github.com.pages.AngularPage;
67
import io.github.com.pages.AutocompletePage;
78
import io.github.com.pages.BadgePage;
9+
import io.github.com.pages.DialogPage;
810
import io.github.com.pages.InputPage;
911
import io.github.com.pages.ButtonTogglePage;
1012
import io.github.com.pages.ButtonsPage;
@@ -36,6 +38,9 @@ public class StaticSite {
3638
@Url("badges")
3739
public static BadgePage badgePage;
3840

41+
@Url("dialog")
42+
public static DialogPage dialogPage;
43+
3944
@Url("buttons_toggle")
4045
public static ButtonTogglePage buttonTogglePage;
4146

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package io.github.com.custom.elements.dialog;
2+
3+
import com.epam.jdi.light.angular.elements.common.Button;
4+
import com.epam.jdi.light.angular.elements.complex.Dialog;
5+
6+
public class ActionDialog extends Dialog {
7+
8+
public String title() {
9+
return core().find("mat-dialog-title").getText();
10+
}
11+
12+
13+
public Button installButton() {
14+
return new Button().setCore(Button.class, core().find(".mat-mdc-dialog-actions button:last-child"));
15+
}
16+
17+
public Button cancelButton() {
18+
return new Button().setCore(Button.class, core().find(".mat-mdc-dialog-actions button:first-child"));
19+
}
20+
21+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package io.github.com.custom.elements.dialog;
2+
3+
import com.epam.jdi.light.angular.elements.common.Button;
4+
import com.epam.jdi.light.angular.elements.common.Input;
5+
import com.epam.jdi.light.angular.elements.complex.Dialog;
6+
7+
public class OverviewDialog extends Dialog {
8+
9+
public String title() {
10+
return core().find("mat-dialog-title").getText();
11+
}
12+
13+
public Input inputField() {
14+
return new Input().setCore(Input.class, core().find("input"));
15+
}
16+
17+
public Button okButton() {
18+
return new Button().setCore(Button.class, core().find(".mat-mdc-dialog-actions button:last-child"));
19+
}
20+
21+
public Button noThanksButton() {
22+
return new Button().setCore(Button.class, core().find(".mat-mdc-dialog-actions button:first-child"));
23+
}
24+
}
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package io.github.com.pages;
2+
3+
import com.epam.jdi.light.angular.elements.common.Button;
4+
import com.epam.jdi.light.angular.elements.common.Input;
5+
import com.epam.jdi.light.angular.elements.complex.AutoComplete;
6+
import com.epam.jdi.light.angular.elements.complex.Dialog;
7+
import com.epam.jdi.light.elements.pageobjects.annotations.locators.UI;
8+
import com.epam.jdi.light.ui.html.elements.common.Text;
9+
import io.github.com.custom.elements.dialog.ActionDialog;
10+
import io.github.com.custom.elements.dialog.OverviewDialog;
11+
12+
public class DialogPage extends NewAngularPage {
13+
14+
@UI(".mat-mdc-input-element")
15+
public static Input nameFormFields;
16+
17+
@UI("#dialog")
18+
public static Button dialogOverviewButton;
19+
20+
@UI("#dialog-animations-open-dialog-btn-without-animation")
21+
public static Button dialogWithoutAnimationsButton;
22+
23+
@UI("#dialog-animations-open-dialog-btn-with-animation")
24+
public static Button dialogWithAnimationsButton;
25+
26+
@UI("mat-dialog-container")
27+
public static OverviewDialog nameDialog;
28+
29+
@UI("dialog-overview-example li:last-child")
30+
public static Text youChooseText;
31+
32+
@UI("#dialog-animations-open-dialog-btn-without-animation")
33+
public static Button withoutAnimationButton;
34+
35+
@UI("#dialog-animations-open-dialog-btn-with-animation")
36+
public static Button withAnimationButton;
37+
38+
@UI("mat-dialog-container")
39+
public static Dialog withoutAnimationDialog;
40+
41+
@UI("mat-dialog-container")
42+
public static Dialog withAnimationDialog;
43+
44+
@UI("mat-form-field.ng-tns-c17-1")
45+
public static AutoComplete alignAction;
46+
47+
@UI("mat-form-field.ng-tns-c17-7")
48+
public static AutoComplete disableCloseAction;
49+
50+
@UI("mat-form-field.ng-tns-c17-15")
51+
public static AutoComplete maxHeightAutocomplete;
52+
53+
@UI("mat-form-field.ng-tns-c17-17")
54+
public static AutoComplete minHeightAutocomplete;
55+
56+
@UI("mat-form-field.ng-tns-c17-19")
57+
public static AutoComplete maxWidthAutocomplete;
58+
59+
@UI("mat-form-field.ng-tns-c17-21")
60+
public static AutoComplete minWidthAutocomplete;
61+
62+
@UI("mat-dialog-container")
63+
public static ActionDialog customizableDialog;
64+
65+
@UI("#dialog-scrollable-content-open-btn")
66+
public static Button dialogActionButton;
67+
}

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

Lines changed: 75 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,33 +2,89 @@
22

33
import io.github.epam.TestsInit;
44
import org.testng.annotations.BeforeClass;
5-
import org.testng.annotations.Ignore;
65
import org.testng.annotations.Test;
76

8-
import static io.github.com.StaticSite.angularPage;
9-
import static io.github.com.pages.AngularPage.dialog;
10-
import static io.github.epam.site.steps.States.shouldBeLoggedIn;
7+
import static com.epam.jdi.light.angular.elements.enums.DialogPosition.CENTER;
8+
import static com.jdiai.tools.Timer.waitCondition;
9+
import static io.github.com.StaticSite.checkBoxPage;
10+
import static io.github.com.StaticSite.dialogPage;
11+
import static io.github.com.pages.DialogPage.alignAction;
12+
import static io.github.com.pages.DialogPage.customizableDialog;
13+
import static io.github.com.pages.DialogPage.dialogActionButton;
14+
import static io.github.com.pages.DialogPage.dialogOverviewButton;
15+
import static io.github.com.pages.DialogPage.minHeightAutocomplete;
16+
import static io.github.com.pages.DialogPage.minWidthAutocomplete;
17+
import static io.github.com.pages.DialogPage.nameDialog;
18+
import static io.github.com.pages.DialogPage.nameFormFields;
19+
import static io.github.com.pages.DialogPage.withAnimationButton;
20+
import static io.github.com.pages.DialogPage.withAnimationDialog;
21+
import static io.github.com.pages.DialogPage.withoutAnimationButton;
22+
import static io.github.com.pages.DialogPage.withoutAnimationDialog;
23+
import static io.github.com.pages.DialogPage.youChooseText;
1124

12-
// TODO Move to the new page
13-
@Ignore
1425
public class DialogTests extends TestsInit {
1526

1627
@BeforeClass(alwaysRun = true)
1728
public void before() {
18-
shouldBeLoggedIn();
19-
angularPage.shouldBeOpened();
20-
dialog.show();
29+
dialogPage.open();
30+
waitCondition((() -> checkBoxPage.isOpened()));
31+
dialogPage.checkOpened();
2132
}
2233

23-
@Test
24-
public void basicDialogTest() {
25-
dialog.sendKeysToNameFormField("EPAM Systems");
26-
dialog.open();
27-
dialog.is().opened();
28-
dialog.is().nameText("EPAM Systems");
29-
dialog.sendKeysToAnswerFormField("Lion");
30-
dialog.submitAnswer();
31-
dialog.is().closed();
32-
dialog.is().answerText("Lion");
34+
@Test(description = "Test checks opening and closing a dialog")
35+
public void baseTest() {
36+
nameFormFields.input("EPAM Systems");
37+
dialogOverviewButton.click();
38+
nameDialog.is().opened();
39+
nameDialog.close();
40+
nameDialog.is().closed();
3341
}
42+
43+
44+
@Test(description = "Test checks opening and closing a dialog")
45+
public void dialogOverviewTest() {
46+
nameFormFields.input("EPAM Systems");
47+
dialogOverviewButton.click();
48+
nameDialog.is().opened();
49+
nameDialog.inputField().input("Lion");
50+
nameDialog.okButton().click();
51+
nameDialog.is().closed();
52+
youChooseText.is().text("You choose: Lion");
53+
}
54+
55+
@Test(description = "Test checks the dialog animation")
56+
public void animationTest() {
57+
withoutAnimationButton.click();
58+
withoutAnimationDialog.is().opened();
59+
withoutAnimationDialog.has().animationDuration("0ms");
60+
withoutAnimationDialog.close();
61+
62+
withAnimationButton.click();
63+
withAnimationDialog.is().opened();
64+
withAnimationDialog.has().animationDuration("3000ms");
65+
withAnimationDialog.close();
66+
}
67+
68+
@Test(description = "Test checks the align of action buttons")
69+
public void actionAlignTest() {
70+
alignAction.select("Center");
71+
dialogActionButton.click();
72+
customizableDialog.is().opened();
73+
customizableDialog.has().position(CENTER);
74+
customizableDialog.close();
75+
}
76+
77+
@Test(description = "Test checks the height and width")
78+
public void sizeTest() {
79+
minHeightAutocomplete.select("500px");
80+
minWidthAutocomplete.select("500px");
81+
dialogActionButton.click();
82+
customizableDialog.is().opened();
83+
customizableDialog.has().maxHeight("1000px");
84+
customizableDialog.has().minHeight("500px");
85+
customizableDialog.has().maxWidth("1000px");
86+
customizableDialog.has().minWidth("500px");
87+
customizableDialog.close();
88+
}
89+
3490
}
Lines changed: 51 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.epam.jdi.light.angular.asserts;
22

33
import com.epam.jdi.light.angular.elements.complex.Dialog;
4+
import com.epam.jdi.light.angular.elements.enums.DialogPosition;
45
import com.epam.jdi.light.asserts.generic.UIAssert;
56
import com.epam.jdi.light.common.JDIAction;
67
import org.hamcrest.Matchers;
@@ -14,21 +15,63 @@ public DialogAssert opened() {
1415
return this;
1516
}
1617

17-
@JDIAction(value = "Assert that '{name}' closed", isAssert = true)
18+
@JDIAction(value = "Assert that '{name}' closed")
1819
public DialogAssert closed() {
19-
jdiAssert(element().isClosed(), Matchers.is(true), "ERROR MESSAGE IS REQUIRED");
20+
jdiAssert(element().isClosed(), Matchers.is(false), "ERROR MESSAGE IS REQUIRED");
2021
return this;
2122
}
2223

23-
@JDIAction(value = "Assert that '{name}' name is {0}", isAssert = true)
24-
public DialogAssert nameText(String name) {
25-
jdiAssert(element().nameText(name), Matchers.is(true), "ERROR MESSAGE IS REQUIRED");
24+
// @JDIAction(value = "Assert that '{name}' has title", isAssert = true)
25+
// public DialogAssert title() {
26+
// jdiAssert(element().hasTitle(), Matchers.is(true), "ERROR MESSAGE IS REQUIRED");
27+
// return this;
28+
// }
29+
30+
@JDIAction(value = "Assert that '{name}' ", isAssert = true)
31+
public DialogAssert position(DialogPosition position) {
32+
jdiAssert(element().dialogActionsAlign(), Matchers.is(position));
33+
return this;
34+
}
35+
36+
@JDIAction(value = "Assert that '{name}'", isAssert = true)
37+
public DialogAssert maxHeight(String value) {
38+
jdiAssert(element().maxHeight(), Matchers.is(value), "ERROR MESSAGE IS REQUIRED");
39+
return this;
40+
}
41+
42+
@JDIAction(value = "Assert that '{name}'", isAssert = true)
43+
public DialogAssert minHeight(String value) {
44+
jdiAssert(element().minHeight(), Matchers.is(value), "ERROR MESSAGE IS REQUIRED");
45+
return this;
46+
}
47+
48+
@JDIAction(value = "Assert that '{name}'", isAssert = true)
49+
public DialogAssert maxWidth(String value) {
50+
jdiAssert(element().maxWidth(), Matchers.is(value), "ERROR MESSAGE IS REQUIRED");
51+
return this;
52+
}
53+
54+
@JDIAction(value = "Assert that '{name}'", isAssert = true)
55+
public DialogAssert minWidth(String value) {
56+
jdiAssert(element().minHeight(), Matchers.is(value), "ERROR MESSAGE IS REQUIRED");
2657
return this;
2758
}
2859

29-
@JDIAction(value = "Assert that '{name}' answer is {0}", isAssert = true)
30-
public DialogAssert answerText(String answer) {
31-
jdiAssert(element().answerText(answer), Matchers.is(true), "ERROR MESSAGE IS REQUIRED");
60+
@JDIAction(value = "Assert that '{name}'", isAssert = true)
61+
public DialogAssert animationDuration(String value) {
62+
jdiAssert(element().animationDuration(), Matchers.is(value));
3263
return this;
3364
}
65+
//
66+
// @JDIAction(value = "Assert that '{name}' has content", isAssert = true)
67+
// public DialogAssert content() {
68+
// jdiAssert(element().hasContent(), Matchers.is(true), "ERROR MESSAGE IS REQUIRED");
69+
// return this;
70+
// }
71+
//
72+
// @JDIAction(value = "Assert that '{name}' has action", isAssert = true)
73+
// public DialogAssert action() {
74+
// jdiAssert(element().hasAction(), Matchers.is(true), "ERROR MESSAGE IS REQUIRED");
75+
// return this;
76+
// }
3477
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ public void select(String value) {
6161
if (value == null) {
6262
return;
6363
}
64+
click();
6465
WebList options = getOptions(optionsCss);
6566
options.get(value).click();
6667
}

0 commit comments

Comments
 (0)