diff --git a/Test-Output/Logs/Test.log b/Test-Output/Logs/Test.log
index 81ac7cf..9b6ad44 100644
--- a/Test-Output/Logs/Test.log
+++ b/Test-Output/Logs/Test.log
@@ -1,6 +1,94 @@
-2024-12-04 22:04:30 DEBUG TestNG - suiteXmlPath: "C:\Users\lenovo\IdeaProjects\Ellithium\TestNGRunner.xml"
-2024-12-04 22:04:31 INFO logsUtils - [94mGetting Timestamp: 2024-12-04[0m
-2024-12-04 22:04:31 INFO logsUtils - [94mReading value for key: LastRunDate from JSON file: Test-Output\UpdateChecker\checker[0m
-2024-12-04 22:04:31 INFO logsUtils - [92mSuccessfully read value for key: LastRunDate from JSON file: Test-Output\UpdateChecker\checker[0m
-2024-12-04 22:04:31 INFO logsUtils - [94mSetting value for key: LastRunDate in JSON file: Test-Output\UpdateChecker\checker[0m
-2024-12-04 22:04:31 INFO logsUtils - [92mSuccessfully updated JSON file: Test-Output\UpdateChecker\checker[0m
+2024-12-11 22:58:48 DEBUG TestNG - suiteXmlPath: "C:\Users\lenovo\IdeaProjects\Ellithium\TestNGRunner.xml"
+2024-12-11 22:58:49 INFO Logger - [94mGetting Timestamp: 2024-12-11[0m
+2024-12-11 22:58:49 INFO Logger - [94mReading value for key: LastRunDate from JSON file: Test-Output\UpdateChecker\checker[0m
+2024-12-11 22:58:49 ERROR AllureLifecycle - Could not start step: no test case running
+2024-12-11 22:58:49 ERROR AllureLifecycle - Could not stop step: step with uuid e0aa492b-0fe3-42ae-bc21-d1f4011c53dd not found
+2024-12-11 22:58:49 INFO Logger - [92mSuccessfully read value for key: LastRunDate from JSON file: Test-Output\UpdateChecker\checker[0m
+2024-12-11 22:58:49 ERROR AllureLifecycle - Could not start step: no test case running
+2024-12-11 22:58:49 ERROR AllureLifecycle - Could not stop step: step with uuid bd753d9c-b012-4919-af6f-45ea5e89bf1f not found
+2024-12-11 22:58:49 INFO Logger - [92mSuccessfully loaded properties file: src\main\resources\properties\config[0m
+2024-12-11 22:58:49 ERROR AllureLifecycle - Could not start step: no test case running
+2024-12-11 22:58:49 ERROR AllureLifecycle - Could not stop step: step with uuid f5108031-3522-4425-aec3-1012c7873255 not found
+2024-12-11 22:58:49 INFO Logger - [92mInitialize default Timeout for Element [0m
+2024-12-11 22:58:49 ERROR AllureLifecycle - Could not start step: no test case running
+2024-12-11 22:58:49 ERROR AllureLifecycle - Could not stop step: step with uuid d6c03f7c-128a-4b57-9295-ae37b7896a6a not found
+2024-12-11 22:58:49 INFO Logger - [92mSuccessfully loaded properties file: src\main\resources\properties\config[0m
+2024-12-11 22:58:49 ERROR AllureLifecycle - Could not start step: no test case running
+2024-12-11 22:58:49 ERROR AllureLifecycle - Could not stop step: step with uuid 64d411a4-746c-4437-91d3-f490dec5d5a7 not found
+2024-12-11 22:58:49 INFO Logger - [92mInitialize default Polling Time for Element [0m
+2024-12-11 22:58:49 ERROR AllureLifecycle - Could not start step: no test case running
+2024-12-11 22:58:49 ERROR AllureLifecycle - Could not stop step: step with uuid 8f8affe7-0a62-4858-8eae-6d14c238d0b6 not found
+2024-12-11 22:58:49 INFO Logger - [92mSuccessfully loaded properties file: src\main\resources\properties\config[0m
+2024-12-11 22:58:49 ERROR AllureLifecycle - Could not start step: no test case running
+2024-12-11 22:58:49 ERROR AllureLifecycle - Could not stop step: step with uuid af0dfe93-706b-4663-ba7e-647d86440594 not found
+2024-12-11 22:58:49 INFO Logger - [92mInitialize default Implicit Wait for the Driver [0m
+2024-12-11 22:58:49 ERROR AllureLifecycle - Could not start step: no test case running
+2024-12-11 22:58:49 ERROR AllureLifecycle - Could not stop step: step with uuid 747c97a6-f635-4219-9df2-a5227288bdb8 not found
+2024-12-11 22:58:49 INFO Logger - [92mSuccessfully loaded properties file: src\main\resources\properties\config[0m
+2024-12-11 22:58:49 ERROR AllureLifecycle - Could not start step: no test case running
+2024-12-11 22:58:49 ERROR AllureLifecycle - Could not stop step: step with uuid 48fbd617-398d-4465-89d5-4f66fb565531 not found
+2024-12-11 22:58:49 INFO Logger - [94m---------------------------------------------[0m
+2024-12-11 22:58:49 INFO Logger - [96m------- Ellithium Engine Setup -------------[0m
+2024-12-11 22:58:49 INFO Logger - [94m---------------------------------------------[0m
+2024-12-11 22:58:49 INFO Logger - [92mSuccessfully loaded properties file: src\main\resources\properties\allure[0m
+2024-12-11 22:58:49 TRACE Graph - [Graph] ADDING NODE BaseRemote.Setup()[pri:0, instance:null] -152046584
+2024-12-11 22:58:49 TRACE Graph - [Graph] ================ SORTING
+2024-12-11 22:58:49 TRACE Graph - [Graph] =============== DONE SORTING
+2024-12-11 22:58:49 TRACE Graph - [Graph] ====== SORTED NODES
+2024-12-11 22:58:49 TRACE Graph - [Graph] ====== END SORTED NODES
+2024-12-11 22:58:49 TRACE Graph - [Graph] ADDING NODE BaseRemote.tareDown()[pri:0, instance:null] 391358389
+2024-12-11 22:58:49 TRACE Graph - [Graph] ================ SORTING
+2024-12-11 22:58:49 TRACE Graph - [Graph] =============== DONE SORTING
+2024-12-11 22:58:49 TRACE Graph - [Graph] ====== SORTED NODES
+2024-12-11 22:58:49 TRACE Graph - [Graph] ====== END SORTED NODES
+2024-12-11 22:58:49 TRACE Graph - [Graph] ADDING NODE loginTestsRemote.validLogin()[pri:2, instance:Tests.loginTestsRemote@46d9aec8] 832491811
+2024-12-11 22:58:49 TRACE Graph - [Graph] ADDING NODE loginTestsRemote.invalidLogin(java.lang.String,java.lang.String,java.lang.String)[pri:1, instance:Tests.loginTestsRemote@46d9aec8] -686925744
+2024-12-11 22:58:49 TRACE Graph - [Graph] ================ SORTING
+2024-12-11 22:58:49 TRACE Graph - [Graph] =============== DONE SORTING
+2024-12-11 22:58:49 TRACE Graph - [Graph] ====== SORTED NODES
+2024-12-11 22:58:49 TRACE Graph - [Graph] ====== END SORTED NODES
+2024-12-11 22:58:49 INFO Logger - [38;5;200m[SUITE STARTED]: FRAMEWORK TEST [SUITE STARTED][0m
+2024-12-11 22:58:49 INFO Logger - [95m[ALL TESTS STARTED]: WEB UI TEST CHROME [ALL TESTS STARTED][0m
+2024-12-11 22:58:49 INFO Logger - [92mChrome Options Configured[0m
+2024-12-11 22:58:52 INFO Logger - [92mDriver Created[0m
+2024-12-11 22:58:52 ERROR AllureLifecycle - Could not update test case: no test case running
+2024-12-11 22:58:52 INFO Logger - [94m[START] TESTCASE invalidLogin [STARTED][0m
+2024-12-11 22:58:52 INFO Logger - [94mNavigating to URL: https://the-internet.herokuapp.com/[0m
+2024-12-11 22:58:55 INFO Logger - [94mClicked on element: [0m
+2024-12-11 22:58:55 INFO Logger - [94mSent Data: "tomsmith" into Username.[0m
+2024-12-11 22:58:56 INFO Logger - [94mSent Data: "hamada" into Password.[0m
+2024-12-11 22:58:57 INFO Logger - [94mClicked on element: [0m
+2024-12-11 22:58:57 INFO Logger - [92m[PASSED] TESTCASE invalidLogin [PASSED][0m
+2024-12-11 22:58:57 INFO Logger - [94m[START] TESTCASE invalidLogin [STARTED][0m
+2024-12-11 22:58:57 INFO Logger - [94mNavigating to URL: https://the-internet.herokuapp.com/[0m
+2024-12-11 22:58:57 INFO Logger - [94mClicked on element: [0m
+2024-12-11 22:58:58 INFO Logger - [94mSent Data: "hamada" into Username.[0m
+2024-12-11 22:58:58 INFO Logger - [94mSent Data: "SuperSecretPassword!" into Password.[0m
+2024-12-11 22:58:58 INFO Logger - [94mClicked on element: [0m
+2024-12-11 22:58:58 INFO Logger - [92m[PASSED] TESTCASE invalidLogin [PASSED][0m
+2024-12-11 22:58:58 INFO Logger - [94m[START] TESTCASE validLogin [STARTED][0m
+2024-12-11 22:58:58 INFO Logger - [94mNavigating to URL: https://the-internet.herokuapp.com/[0m
+2024-12-11 22:58:59 INFO Logger - [94mClicked on element: [0m
+2024-12-11 22:58:59 INFO Logger - [94mSent Data: "SuperSecretPassword!" into Password.[0m
+2024-12-11 22:58:59 INFO Logger - [94mSent Data: "tomsmith" into Username.[0m
+2024-12-11 22:59:00 INFO Logger - [94mClicked on element: [0m
+2024-12-11 22:59:00 INFO Logger - [92m[PASSED] TESTCASE validLogin [PASSED][0m
+2024-12-11 22:59:00 INFO Logger - [94mWebDriver quit[0m
+2024-12-11 22:59:00 ERROR AllureLifecycle - Could not update test case: no test case running
+2024-12-11 22:59:00 INFO Logger - [95m[ALL TESTS COMPLETED]: WEB UI TEST CHROME [ALL TESTS COMPLETED][0m
+2024-12-11 22:59:00 INFO Logger - [38;5;200m[SUITE FINISHED]: FRAMEWORK TEST [SUITE FINISHED][0m
+2024-12-11 22:59:01 INFO Logger - [94mTotal Execution Time is: 0 Min 11 Sec 602 Mills[0m
+2024-12-11 22:59:01 INFO Logger - [94m------------------------------------------[0m
+2024-12-11 22:59:01 INFO Logger - [96m------- Ellithium Engine TearDown -------[0m
+2024-12-11 22:59:01 INFO Logger - [94m------------------------------------------[0m
+2024-12-11 22:59:01 INFO Logger - [92mSuccessfully loaded properties file: src\main\resources\properties\allure[0m
+2024-12-11 22:59:01 INFO Logger - [92mSuccessfully loaded properties file: src\main\resources\properties\allure[0m
+2024-12-11 22:59:01 INFO Logger - [92mSuccessfully loaded properties file: src\main\resources\properties\allure[0m
+2024-12-11 22:59:01 INFO Logger - [92mAllure folder exists at: C:\Users\lenovo\.m2\repository\allure-Ellithium[0m
+2024-12-11 22:59:01 INFO Logger - [92mFound Allure binary directory: C:\Users\lenovo\.m2\repository\allure-Ellithium\-2.30.0\bin[0m
+2024-12-11 22:59:01 INFO Logger - [92mAttempting to execute command: C:\Users\lenovo\.m2\repository\allure-Ellithium\-2.30.0\bin\allure generate --single-file --name "Test Report" -o .\LastReport\ .\Test-Output/Reports/Allure/allure-results\[0m
+2024-12-11 22:59:03 INFO Logger - [92mCommand executed successfully. Exit code: 0[0m
+2024-12-11 22:59:03 INFO Logger - [94mGetting Timestamp: 2024-12-11-10-59-03PM[0m
+2024-12-11 22:59:03 INFO Logger - [92mSuccessfully loaded properties file: src\main\resources\properties\allure[0m
+2024-12-11 22:59:03 INFO Logger - [92mAttempting to execute command: start Test-Output\Reports\Allure\allure-report\Ellithium-Test-Report-2024-12-11-10-59-03PM.html[0m
+2024-12-11 22:59:03 INFO Logger - [92mCommand executed successfully. Exit code: 0[0m
diff --git a/Test-Output/UpdateChecker/checker.json b/Test-Output/UpdateChecker/checker.json
index 02b4ada..03a5628 100644
--- a/Test-Output/UpdateChecker/checker.json
+++ b/Test-Output/UpdateChecker/checker.json
@@ -1,3 +1,3 @@
{
- "LastRunDate": "2024-12-04"
+ "LastRunDate": "2024-12-11"
}
\ No newline at end of file
diff --git a/TestNGRunner.xml b/TestNGRunner.xml
index d0f8a54..e85e84a 100644
--- a/TestNGRunner.xml
+++ b/TestNGRunner.xml
@@ -6,21 +6,8 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/src/main/java/Ellithium/core/driver/BrowserSetUp.java b/src/main/java/Ellithium/core/driver/BrowserSetUp.java
index 489484b..21064f8 100644
--- a/src/main/java/Ellithium/core/driver/BrowserSetUp.java
+++ b/src/main/java/Ellithium/core/driver/BrowserSetUp.java
@@ -38,7 +38,7 @@ public static WebDriver setupLocalDriver(DriverType driverType, HeadlessMode hea
return null;
}
}
- public static WebDriver setupRemoteDriver(DriverType driverType, URL remoteAddress, Capabilities capabilities, HeadlessMode headlessMode, PageLoadStrategyMode pageLoadStrategy, PrivateMode privateMode, SandboxMode sandboxMode, WebSecurityMode webSecurityMode) {
+ public static RemoteWebDriver setupRemoteDriver(DriverType driverType, URL remoteAddress, Capabilities capabilities, HeadlessMode headlessMode, PageLoadStrategyMode pageLoadStrategy, PrivateMode privateMode, SandboxMode sandboxMode, WebSecurityMode webSecurityMode) {
RemoteWebDriver driver;
switch (driverType) {
case REMOTE_Chrome->{
diff --git a/src/main/java/Ellithium/core/driver/DriverFactory.java b/src/main/java/Ellithium/core/driver/DriverFactory.java
index 516a144..2da8111 100644
--- a/src/main/java/Ellithium/core/driver/DriverFactory.java
+++ b/src/main/java/Ellithium/core/driver/DriverFactory.java
@@ -25,6 +25,7 @@
import static io.appium.java_client.proxy.Helpers.createProxy;
public class DriverFactory {
+ private static ThreadLocal RemoteWebDriverThreadLocal= new ThreadLocal<>();;
private static ThreadLocal WebDriverThread = new ThreadLocal<>();
private static ThreadLocal AndroidDriverThread = new ThreadLocal<>();
private static ThreadLocal IOSDriverThread = new ThreadLocal<>();
@@ -94,7 +95,7 @@ public static T getNewRemoteWebDriver(DriverType dri
ConfigContext.setCapabilities(capabilities);
ConfigContext.setRemoteAddress(remoteAddress);
webSetUp();
- return (T) WebDriverThread.get();
+ return (T)RemoteWebDriverThreadLocal.get();
}
@SuppressWarnings("unchecked")
public static T getNewRemoteWebDriver(DriverType driverType, URL remoteAddress, Capabilities capabilities, HeadlessMode headlessMode, PrivateMode privateMode, PageLoadStrategyMode pageLoadStrategyMode, WebSecurityMode webSecurityMode) {
@@ -178,46 +179,55 @@ private static void webSetUp() {
var PrivateMode=ConfigContext.getPrivateMode();
var SandboxMode=ConfigContext.getSandboxMode();
var WebSecurityMode=ConfigContext.getWebSecurityMode();
- WebDriver localDriver ;
switch (driverType){
case REMOTE_Edge,REMOTE_Safari,REMOTE_FireFox,REMOTE_Chrome ->{
var capabilities=ConfigContext.getCapabilities();
var remoteAddress=ConfigContext.getRemoteAddress();
- localDriver=BrowserSetUp.setupRemoteDriver(driverType,remoteAddress,capabilities, headlessMode,PageLoadStrategy,PrivateMode,SandboxMode,WebSecurityMode);
+ var localDriver=BrowserSetUp.setupRemoteDriver(driverType,remoteAddress,capabilities, headlessMode,PageLoadStrategy,PrivateMode,SandboxMode,WebSecurityMode);
+ localDriver.manage().timeouts().implicitlyWait(Duration.ofSeconds(WaitManager.getDefaultImplicitWait()));
+ RemoteWebDriverThreadLocal.set(getDecoratedWebDriver(localDriver));
+ if(RemoteWebDriverThreadLocal!=null){
+ Reporter.log("Driver Created", LogLevel.INFO_GREEN);
+ }
+ else {
+ Reporter.log("Driver Creation Failed",LogLevel.INFO_RED);
+ }
}
default-> {
- localDriver= BrowserSetUp.setupLocalDriver(driverType, headlessMode,PageLoadStrategy,PrivateMode,SandboxMode,WebSecurityMode);
- }
- }
- String loggerExtensiveTraceModeFlag=PropertyHelper.getDataFromProperties(ConfigContext.getConfigFilePath(), "loggerExtensiveTraceMode");
- if (loggerExtensiveTraceModeFlag.equalsIgnoreCase("true")){
- DevTools devTools;
- switch (driverType){
- case Edge, REMOTE_Edge->{
- devTools=((EdgeDriver)localDriver).getDevTools();
- logDevTools(devTools);
+ var localDriver= BrowserSetUp.setupLocalDriver(driverType, headlessMode,PageLoadStrategy,PrivateMode,SandboxMode,WebSecurityMode);
+ String loggerExtensiveTraceModeFlag=PropertyHelper.getDataFromProperties(ConfigContext.getConfigFilePath(), "loggerExtensiveTraceMode");
+ if (loggerExtensiveTraceModeFlag.equalsIgnoreCase("true")){
+ DevTools devTools;
+ switch (driverType){
+ case Edge->{
+ devTools=((EdgeDriver)localDriver).getDevTools();
+ logDevTools(devTools);
+ }
+ case Chrome->{
+ devTools=((ChromeDriver)localDriver).getDevTools();
+ logDevTools(devTools);
+ }
+ }
}
- case Chrome, REMOTE_Chrome->{
- devTools=((ChromeDriver)localDriver).getDevTools();
- logDevTools(devTools);
+ localDriver.manage().timeouts().implicitlyWait(Duration.ofSeconds(WaitManager.getDefaultImplicitWait()));
+ WebDriverThread.set(getDecoratedWebDriver(localDriver));
+ if(WebDriverThread!=null){
+ Reporter.log("Driver Created", LogLevel.INFO_GREEN);
+ }
+ else {
+ Reporter.log("Driver Creation Failed",LogLevel.INFO_RED);
}
}
}
- assert localDriver != null;
- localDriver.manage().timeouts().implicitlyWait(Duration.ofSeconds(WaitManager.getDefaultImplicitWait()));
- WebDriverThread.set(getDecoratedWebDriver(localDriver));
- if(WebDriverThread!=null){
- Reporter.log("Driver Created", LogLevel.INFO_GREEN);
- }
- else {
- Reporter.log("Driver Creation Failed",LogLevel.INFO_RED);
- }
}
@SuppressWarnings("unchecked")
private static WebDriver getDecoratedWebDriver(WebDriver driver){
return new EventFiringDecorator<>(org.openqa.selenium.WebDriver.class, new seleniumListener()).decorate(driver);
}
-
+ @SuppressWarnings("unchecked")
+ private static RemoteWebDriver getDecoratedWebDriver(RemoteWebDriver driver){
+ return new EventFiringDecorator<>(org.openqa.selenium.remote.RemoteWebDriver.class, new seleniumListener()).decorate(driver);
+ }
private static AndroidDriver getDecoratedAndroidDriver(URL remoteAddress, Capabilities capabilities){
return createProxy(
AndroidDriver.class,
diff --git a/src/main/java/Ellithium/core/execution/listener/CustomTestNGListener.java b/src/main/java/Ellithium/core/execution/listener/CustomTestNGListener.java
index ecac1d3..a38afb2 100644
--- a/src/main/java/Ellithium/core/execution/listener/CustomTestNGListener.java
+++ b/src/main/java/Ellithium/core/execution/listener/CustomTestNGListener.java
@@ -93,8 +93,8 @@ public void afterInvocation(IInvokedMethod method, ITestResult testResult) {
Reporter.attachScreenshotToReport(screenShot, screenShot.getName(),
driverName,testResult.getName());
}
- Reporter.addParams(GeneralHandler.getParameters());
}
+ Reporter.addParams(GeneralHandler.getParameters());
}
@Override
public void transform(ITestAnnotation annotation, Class testClass, Constructor testConstructor, Method testMethod) {
diff --git a/src/test/java/Base/BaseRemote.java b/src/test/java/Base/BaseRemote.java
new file mode 100644
index 0000000..b8193b4
--- /dev/null
+++ b/src/test/java/Base/BaseRemote.java
@@ -0,0 +1,29 @@
+package Base;
+
+import Ellithium.core.driver.DriverFactory;
+import Ellithium.core.driver.DriverType;
+import Pages.HomPage;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.chrome.ChromeOptions;
+import org.openqa.selenium.remote.DesiredCapabilities;
+import org.openqa.selenium.remote.RemoteWebDriver;
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.BeforeClass;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+public class BaseRemote {
+ protected WebDriver driver;
+ protected HomPage home;
+ @BeforeClass
+ public void Setup() throws MalformedURLException {
+ DesiredCapabilities capabilities=new DesiredCapabilities();
+ driver= DriverFactory.getNewRemoteWebDriver(DriverType.REMOTE_Chrome ,new URL("http://localhost:4444/wd/hub"),capabilities);
+ home=new HomPage(driver);
+ }
+ @AfterClass
+ public void tareDown(){
+ driver.quit();;
+ }
+}
diff --git a/src/test/java/Base/BaseTests.java b/src/test/java/Base/BaseTests.java
index a40aba9..1762a47 100644
--- a/src/test/java/Base/BaseTests.java
+++ b/src/test/java/Base/BaseTests.java
@@ -6,20 +6,12 @@
import org.openqa.selenium.WebDriver;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Parameters;
public class BaseTests extends NonBDDSetup {
protected WebDriver driver;
protected HomPage home;
- @Parameters({"BrowserName"})
@BeforeClass
- public void Setup(String BrowserName){
- DriverType type;
- switch(BrowserName.toLowerCase()){
- case "edge"->type=DriverType.Edge;
- case "firefox"->type=DriverType.FireFox;
- default -> {type=DriverType.Chrome;}
- }
- driver= DriverFactory.getNewLocalWebDriver(type, HeadlessMode.False, PrivateMode.True, PageLoadStrategyMode.Normal,WebSecurityMode.SecureMode,SandboxMode.Sandbox);
+ public void Setup(){
+ driver= DriverFactory.getNewLocalWebDriver(DriverType.Chrome, HeadlessMode.False, PrivateMode.True, PageLoadStrategyMode.Normal,WebSecurityMode.SecureMode,SandboxMode.Sandbox);
home=new HomPage(driver);
}
@AfterClass
diff --git a/src/test/java/Pages/SecureAreaPage.java b/src/test/java/Pages/SecureAreaPage.java
index dc76e81..91393ed 100644
--- a/src/test/java/Pages/SecureAreaPage.java
+++ b/src/test/java/Pages/SecureAreaPage.java
@@ -8,7 +8,6 @@ public class SecureAreaPage {
DriverActions driverActions;
public SecureAreaPage(WebDriver Driver){
driver=Driver;
-
driverActions=new DriverActions(driver);
}
public String getLoginMassega(){
diff --git a/src/test/java/Tests/loginTestsRemote.java b/src/test/java/Tests/loginTestsRemote.java
new file mode 100644
index 0000000..4cb8ffe
--- /dev/null
+++ b/src/test/java/Tests/loginTestsRemote.java
@@ -0,0 +1,35 @@
+package Tests;
+import Base.BaseRemote;
+import Pages.LoginPage;
+import org.testng.Assert;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+public class loginTestsRemote extends BaseRemote {
+ @DataProvider(name= "invalidLoginData")
+ Object[][] getInvalidTestData(){
+ return new Object[][]{
+ {"tomsmith","hamada","Your password is invalid"},
+ {"hamada","SuperSecretPassword!","Your username is invalid"}
+ };
+ }
+ LoginPage login;
+ @Test(priority = 1, dataProvider = "invalidLoginData")
+ public void invalidLogin(String username, String password, String expectedMessage){
+ login =home.clickFormAuthentication();
+ login.setUserName(username);
+ login.setPassword(password);
+ var secureAreaPage=login.clickLoginBtn();
+ String actualMessage=secureAreaPage.getLoginMassega();
+ Assert.assertTrue(actualMessage.contains(expectedMessage));
+ }
+ @Test(priority = 2)
+ public void validLogin() {
+ login = home.clickFormAuthentication();
+ login.setPassword("SuperSecretPassword!");
+ login.setUserName("tomsmith");
+ var secureAreaPage=login.clickLoginBtn();
+ String actualMessage=secureAreaPage.getLoginMassega();
+ String expectedMessage="You logged into a secure area!";
+ Assert.assertTrue(actualMessage.contains(expectedMessage));
+ }
+}