package ru.stqa.pft.addressbook;

import org.testng.annotations.BeforeMethod;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.*;

public class GroupCreationTests {
    FirefoxDriver wd;

    @BeforeMethod
    public void setUp() throws Exception {
        wd = new FirefoxDriver();
        wd.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
        wd.get("http://addressbook/");
        login("admin", "secret");
    }

    @Test
    public void testGroupCreation() {
        goToGroupsPage();
        initGroupCreation();
        fillGroupForm(new GroupData("my group", "group header", "group footer"));
        submitGroupCreation();
        returnToGroupsPage();
        logout();
    }

    @AfterMethod
    public void tearDown() {
        wd.quit();
    }

    private void login(String username, String password) {
        wd.findElement(By.id("LoginForm")).click();
        wd.findElement(By.name("user")).click();
        wd.findElement(By.name("user")).clear();
        wd.findElement(By.name("user")).sendKeys(username);
        wd.findElement(By.id("LoginForm")).click();
        wd.findElement(By.name("pass")).click();
        wd.findElement(By.name("pass")).clear();
        wd.findElement(By.name("pass")).sendKeys(password);
        wd.findElement(By.xpath("//form[@id='LoginForm']/input[3]")).click();
    }

    private void goToGroupsPage() {
        wd.findElement(By.linkText("groups")).click();
    }

    private void initGroupCreation() {
        wd.findElement(By.name("new")).click();
    }

    private void fillGroupForm(GroupData group) {
        wd.findElement(By.name("group_name")).click();
        wd.findElement(By.name("group_name")).clear();
        wd.findElement(By.name("group_name")).sendKeys(group.getName());
        wd.findElement(By.name("group_header")).click();
        wd.findElement(By.name("group_header")).clear();
        wd.findElement(By.name("group_header")).sendKeys(group.getHeader());
        wd.findElement(By.name("group_footer")).click();
        wd.findElement(By.name("group_footer")).clear();
        wd.findElement(By.name("group_footer")).sendKeys(group.getFooter());
    }

    private void submitGroupCreation() {
        wd.findElement(By.name("submit")).click();
    }

    private void returnToGroupsPage() {
        wd.findElement(By.linkText("group page")).click();
    }

    private void logout() {
        wd.findElement(By.linkText("Logout")).click();
    }
}

@@ -323,18 +323,23 @@
 xDriver 
-wd
+browser
 ;%0A%0A    @
@@ -402,18 +402,23 @@
         
-wd
+browser
  = new F
@@ -441,18 +441,23 @@
         
-wd
+browser
 .manage(
@@ -515,18 +515,23 @@
         
-wd
+browser
 .get(%22ht
@@ -917,18 +917,23 @@
         
-wd
+browser
 .quit();
@@ -999,34 +999,39 @@
 word) %7B%0A        
-wd
+browser
 .findElement(By.
@@ -1056,34 +1056,39 @@
 lick();%0A        
-wd
+browser
 .findElement(By.
@@ -1110,34 +1110,39 @@
 lick();%0A        
-wd
+browser
 .findElement(By.
@@ -1164,34 +1164,39 @@
 lear();%0A        
-wd
+browser
 .findElement(By.
@@ -1229,34 +1229,39 @@
 rname);%0A        
-wd
+browser
 .findElement(By.
@@ -1286,34 +1286,39 @@
 lick();%0A        
-wd
+browser
 .findElement(By.
@@ -1340,34 +1340,39 @@
 lick();%0A        
-wd
+browser
 .findElement(By.
@@ -1394,34 +1394,39 @@
 lear();%0A        
-wd
+browser
 .findElement(By.
@@ -1459,34 +1459,39 @@
 sword);%0A        
-wd
+browser
 .findElement(By.
@@ -1585,34 +1585,39 @@
 age() %7B%0A        
-wd
+browser
 .findElement(By.
@@ -1691,34 +1691,39 @@
 ion() %7B%0A        
-wd
+browser
 .findElement(By.
@@ -1801,34 +1801,39 @@
 roup) %7B%0A        
-wd
+browser
 .findElement(By.
@@ -1861,34 +1861,39 @@
 lick();%0A        
-wd
+browser
 .findElement(By.
@@ -1921,34 +1921,39 @@
 lear();%0A        
-wd
+browser
 .findElement(By.
@@ -1999,34 +1999,39 @@
 ame());%0A        
-wd
+browser
 .findElement(By.
@@ -2061,34 +2061,39 @@
 lick();%0A        
-wd
+browser
 .findElement(By.
@@ -2123,34 +2123,39 @@
 lear();%0A        
-wd
+browser
 .findElement(By.
@@ -2205,34 +2205,39 @@
 der());%0A        
-wd
+browser
 .findElement(By.
@@ -2267,34 +2267,39 @@
 lick();%0A        
-wd
+browser
 .findElement(By.
@@ -2329,34 +2329,39 @@
 lear();%0A        
-wd
+browser
 .findElement(By.
@@ -2459,34 +2459,39 @@
 ion() %7B%0A        
-wd
+browser
 .findElement(By.
@@ -2562,34 +2562,39 @@
 age() %7B%0A        
-wd
+browser
 .findElement(By.
@@ -2673,10 +2673,15 @@
     
-wd
+browser
 .fin

change driver name from wd to browser