A personal repository of random information in compensation for a fatigued biological computer
xx
LoginTesting.xml
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="GDAP - Login testing" verbose="10">
<parameter name="gdap.url" value="http://test.xxxxxxxx" />
<parameter name="editor1.loginid" value="Tester1 - Wellington" />
<parameter name="editor1.password" value="Passw0rd" />
<parameter name="invalid.loginid" value="Tester1 - Wellingtom" />
<parameter name="invalid.password" value="Passw0Rd" />
<test name="dependancies">
<classes>
<class name="testNG.GDAPCommon">
</class>
</classes>
</test>
<test name="Login functionality" preserve-order="true">
<classes>
<class name="testNG.TC_PageLogin">
</class>
</classes>
</test>
</suite>
xx
TC_PageLogin.java
package testNG;
import org.openqa.selenium.WebDriver;
import org.testng.annotations.Test;
public class TC_PageLogin {
// Test login variations:
// - invalid credentials
// - user already logged in
// - valid login:
// - roles based checking of options post login? we will just use editor for now..
public TC_PageLogin() {
}
@Test(description="Tests login functionality")
public void testLogins() {
GDAPCommon.report("TC_Login.testLogins: START");
// Standard application startup
WebDriver driver = new GDAPCommon().startGDAP();
PageLogin pageLogin = new PageLogin(driver);
// Standard application startup ends
// get parameters from XML file
String loginID = GDAPCommon.getTestNGXMLParameter("editor1.loginid");
String loginPassword = GDAPCommon.getTestNGXMLParameter("editor1.password");
String loginIDBad = GDAPCommon.getTestNGXMLParameter("invalid.loginid");
String loginPasswordBad = GDAPCommon.getTestNGXMLParameter("invalid.password");
GDAPCommon.report("TC_Login.testLogins: Step 1: Performing proof valid login/verify/logout u='" + loginID + "', p='" + loginPassword + "'");
PageCommon pageCommon = pageLogin.login(loginID, loginPassword);
pageCommon.assertJobsLinkSelected(); // ? make this a generic 'assertDefault' and pass user type as an enum?
pageCommon.logout();
GDAPCommon.report("TC_Login.testLogins: Step 2: Performing bad credentials logins");
pageLogin.loginButFailOnBadCredentials("", "");
pageLogin.loginButFailOnBadCredentials(loginID, "");
pageLogin.loginButFailOnBadCredentials("", loginPassword);
pageLogin.loginButFailOnBadCredentials(loginID, loginPasswordBad);
pageLogin.loginButFailOnBadCredentials(loginIDBad, loginPassword);
pageLogin.loginButFailOnBadCredentials("", "");
pageLogin.loginButFailOnBadCredentials("admin", "admin");
pageLogin.loginButFailOnBadCredentials("admin", "password");
pageLogin.loginButFailOnBadCredentials("admin", "Passw0rd");
pageLogin.loginButFailOnBadCredentials("user", "password");
GDAPCommon.report("TC_Login.testLogins: Step 3: Performing valid login but expect fail with user already logged in");
GDAPCommon.report(" Setup by valid login then verify then close browser with user still logged in");
pageCommon = pageLogin.login(loginID, loginPassword);
pageCommon.assertJobsLinkSelected(); // ? make this a generic 'assertDefault' and pass user type as an enum? ie editor, reviewer etc
GDAPCommon.closeGDAP(driver);
GDAPCommon.report("TC_Login.testLogins: Step 3: Restart browser/application");
driver = new GDAPCommon().startGDAP();
pageLogin = new PageLogin(driver);
GDAPCommon.report("TC_Login.testLogins: Step 3: Login expect fail - user already logged in");
pageLogin.loginButFailOnExistingSession(loginID, loginPassword);
GDAPCommon.report("TC_Login.testLogins: Step 4: Performing valid login override existing login");
pageCommon = pageLogin.loginOverExistingSession(loginID, loginPassword);
pageCommon.assertJobsLinkSelected();
pageCommon.logout();
GDAPCommon.report("TC_Login.testLogins: END");
GDAPCommon.closeGDAP(driver);
}
}
xx
CreateJob.xml
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="GDAP - Login testing" verbose="10">
<parameter name="gdap.url" value="http://test.xxxxxxxx" />
<parameter name="editor1.loginid" value="Tester1 - Wellington" />
<parameter name="editor1.name" value="Tester1 - Wellington" />
<parameter name="editor1.password" value="Passw0rd" />
<parameter name="editor1.office" value="Wellington" />
<parameter name="newJobPrefix" value="TC_CreateJob" />
<test name="dependancies">
<classes>
<class name="testNG.GDAPCommon">
</class>
</classes>
</test>
<test name="Login functionality" preserve-order="true">
<classes>
<class name="testNG.TC_PageJob">
<methods>
<include name = "createJob"/>
</methods>
</class>
</classes>
</test>
</suite>
xx
TC_PageJob.java
package testNG;
import org.openqa.selenium.WebDriver;
import org.testng.annotations.Test;
public class TC_PageJob {
public TC_PageJob() {
}
@Test(description="Editor creates a job")
public void createJob() {
GDAPCommon.report("TC_CreateJob.createJob: START");
// get parameters from TestNG XML
String loginID = GDAPCommon.getTestNGXMLParameter("editor1.loginid");
String loginName = GDAPCommon.getTestNGXMLParameter("editor1.name");
String loginPassword = GDAPCommon.getTestNGXMLParameter("editor1.password");
String loginOffice = GDAPCommon.getTestNGXMLParameter("editor1.office");
String newJobTitle = GDAPCommon.getTestNGXMLParameter("newJobPrefix");
newJobTitle = GDAPCommon.appendCurrentDateTime(newJobTitle);
// Standard application startup
WebDriver driver = new GDAPCommon().startGDAP();
PageLogin pageLogin = new PageLogin(driver);
PageCommon pageCommon = pageLogin.login(loginID, loginPassword);
// Standard application startup ends
GDAPCommon.report("Step 1: Verify jobList is default selection");
pageCommon.assertJobsLinkSelected();
PageJob_List pageJob_List = new PageJob_List(driver);
GDAPCommon.report("Step 2: Create job (self verifies)");
pageJob_List.createJobAndVerify(newJobTitle, loginName, loginOffice);
GDAPCommon.report("Create In Draft Job & Edit Elements");
GDAPCommon.report("TC_CreateJob: END");
GDAPCommon.closeGDAP(driver);
}
@Test(description="Editor adds an ItemGroup to current job")
public void addItemGroupToJob() {
GDAPCommon.report("TC_CreateJob.addItemGroupToJob: START");
// Do we select a job or depend on a job preselected..
}
}
xx