package com.selenium;

import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;

import com.selenium.pageobjects.*;
import org.openqa.selenium.support.ui.Select;
import org.testng.annotations.Test;

import com.selenium.pageobjects.Registration;

public class PageObjectExample extends MercuryTestCase{
	@Test(groups ="group1")
	public void testPageObject()
	{
		Registration registration = new Registration(driver);
		registration.registerNewUser();
		assert driver.findElement(By.tagName("body")).getText().contains("Thank you for registering. You may now sign-in using the user name and password you've just entered.");
		
	}
	@Test(dataProvider = "regData",dataProviderClass = RegistrationData.class, dependsOnGroups = "group1",alwaysRun = true)
	public void testRegistrationNew(String sFirstName,String sLastName,String sPhoneNumber, String sUsername, String sEmail, String sCountry,String sPassword ,String sRepassword)
	{
		RegistrationData registrationData = new RegistrationData();
		registrationData.setFirstName(sFirstName);
		registrationData.setLastName(sLastName);
		registrationData.setPhoneNumber(sPhoneNumber);
		registrationData.setUsername(sUsername);
		registrationData.setEmail(sEmail);
		registrationData.setCountry(sCountry);
		registrationData.setPassword(sPassword);
		registrationData.setRePassword(sRepassword);
		Registration registration = new Registration(driver);
		registration.registerNewUserFromRegistrationData(registrationData);
		
		assert driver.findElement(By.tagName("body")).getText().contains("Thank you for registering. You may now sign-in using the user name and password you've just entered.");
	}
	@Test
	public void testJavaScriptExecutor()throws Exception
	{
		((JavascriptExecutor)driver).executeScript("document.getElementsByName('firstName')[0].value = 'selenium'");
		Thread.sleep(5000);
	}

}