-
Notifications
You must be signed in to change notification settings - Fork 188
/
LoginPageTest.java
111 lines (93 loc) · 4.62 KB
/
LoginPageTest.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
/*
* Copyright (c) 2010-2018 Evolveum and contributors
*
* This work is dual-licensed under the Apache License 2.0
* and European Union Public License. See LICENSE file for details.
*/
package com.evolveum.midpoint.testing.schrodinger.page;
import com.codeborne.selenide.Condition;
import com.codeborne.selenide.Selenide;
import com.evolveum.midpoint.schrodinger.MidPoint;
import com.evolveum.midpoint.schrodinger.component.common.PrismForm;
import com.evolveum.midpoint.schrodinger.component.configuration.InfrastructureTab;
import com.evolveum.midpoint.schrodinger.component.configuration.NotificationsTab;
import com.evolveum.midpoint.schrodinger.page.configuration.SystemPage;
import com.evolveum.midpoint.schrodinger.page.login.FormLoginPage;
import com.evolveum.midpoint.schrodinger.page.login.MailNoncePage;
import com.evolveum.midpoint.schrodinger.page.login.SamlSelectPage;
import com.evolveum.midpoint.schrodinger.page.login.SecurityQuestionsPage;
import com.evolveum.midpoint.schrodinger.util.Schrodinger;
import org.openqa.selenium.By;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import java.io.File;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import static com.codeborne.selenide.Selenide.*;
/**
* Created by Viliam Repan (lazyman).
*/
public class LoginPageTest extends AbstractLoginPageTest {
private static final File SEC_QUES_RESET_PASS_SECURITY_POLICY = new File("src/test/resources/configuration/objects/securitypolicies/policy-secururity-question-reset-pass.xml");
private static final File MAIL_NONCE_RESET_PASS_SECURITY_POLICY = new File("src/test/resources/configuration/objects/securitypolicies/policy-nonce-reset-pass.xml");
@Test
public void test030resetPassowordMailNonce() throws IOException, InterruptedException {
basicPage.loggedUser().logoutIfUserIsLogin();
Selenide.sleep(MidPoint.TIMEOUT_DEFAULT_2_S);
FormLoginPage login = midPoint.formLogin();
login.forgotPassword();
$(Schrodinger.byDataId("email")).waitUntil(Condition.visible, MidPoint.TIMEOUT_DEFAULT_2_S).setValue(MAIL_OF_ENABLED_USER);
$(Schrodinger.byDataId("submitButton")).click();
TimeUnit.SECONDS.sleep(6);
String notification = readLastNotification();
String bodyTag = "body='";
String link = notification.substring(notification.indexOf(bodyTag) + bodyTag.length(), notification.lastIndexOf("'"));
open(link);
String actualUrl = basicPage.getCurrentUrl();
Assert.assertTrue(actualUrl.endsWith("/resetPassword"));
}
@Test
public void test031resetPassowordSecurityQuestion() {
basicPage.loggedUser().logoutIfUserIsLogin();
FormLoginPage login = midPoint.formLogin();
open("/login");
Selenide.sleep(MidPoint.TIMEOUT_DEFAULT_2_S);
open("/");
login.loginWithReloadLoginPage("administrator", "5ecr3t");
importObject(SEC_QUES_RESET_PASS_SECURITY_POLICY, true);
basicPage.loggedUser().logoutIfUserIsLogin();
login.forgotPassword();
$(Schrodinger.byDataId("username")).waitUntil(Condition.visible, MidPoint.TIMEOUT_DEFAULT_2_S).setValue(NAME_OF_ENABLED_USER);
$(Schrodinger.byDataId("email")).waitUntil(Condition.visible, MidPoint.TIMEOUT_DEFAULT_2_S).setValue(MAIL_OF_ENABLED_USER);
$(Schrodinger.byDataId("submitButton")).click();
$(Schrodinger.byDataId("answerTF")).waitUntil(Condition.visible, MidPoint.TIMEOUT_DEFAULT_2_S).setValue("10");
$(Schrodinger.byDataId("send")).click();
Selenide.sleep(MidPoint.TIMEOUT_DEFAULT_2_S);
String actualUrl = basicPage.getCurrentUrl();
Assert.assertTrue(actualUrl.endsWith("/resetpasswordsuccess"));
}
@Test
public void test040changeLanguageFormPage() {
basicPage.loggedUser().logoutIfUserIsLogin();
FormLoginPage login = midPoint.formLogin();
open("/login");
Selenide.sleep(MidPoint.TIMEOUT_DEFAULT_2_S);
open("/");
login.changeLanguage("de");
$(By.cssSelector(".btn.btn-primary")).shouldHave(Condition.value("Anmelden"));
}
@Test
public void test041changeLanguageSamlSelectPage() {
basicPage.loggedUser().logoutIfUserIsLogin();
SamlSelectPage login = midPoint.samlSelect();
login.goToUrl();
login.changeLanguage("us");
$(By.xpath("/html/body/div[2]/div/section/div[2]/div/div/div/h4"))
.shouldHave(Condition.text("Select an Identity Provider"));
}
@Override
protected File getSecurityPolicyMailNonceResetPass() {
return MAIL_NONCE_RESET_PASS_SECURITY_POLICY;
}
}