Package org.openqa.selenium.example

Source Code of org.openqa.selenium.example.CommaSeparatedData

package org.openqa.selenium.example;

import java.util.Iterator;
import java.util.regex.Pattern;
import java.util.concurrent.TimeUnit;
import org.junit.*;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Action;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.interactions.internal.Coordinates;
import org.openqa.selenium.internal.seleniumemulation.DoubleClick;
import org.openqa.selenium.support.ui.Select;


public class CommaSeparatedData {
  private WebDriver driver;
  private String baseUrl;
  private StringBuffer verificationErrors = new StringBuffer();
  @Before
  public void setUp() throws Exception {
    driver = new FirefoxDriver();
    baseUrl = "http://localhost:8081";
    driver.get(baseUrl);
    driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
  }

  @Test
  public void testCommaSeparatedData() throws Exception {
   
    driver.get(baseUrl + "/maqetta/");
    driver.findElement(By.id("username")).clear();
    driver.findElement(By.id("username")).sendKeys("user1");
    driver.findElement(By.id("password")).clear();
    driver.findElement(By.id("password")).sendKeys("user1");
    driver.findElement(By.cssSelector("input[type=\"submit\"]")).click();
    driver.findElement(By.xpath("//span[@id='davinci_main_menu']/span/span/span")).click();
    driver.findElement(By.id("newHTML")).click();
    driver.findElement(By.xpath("//tr[@class='fileNameRow']/td[2]/div/div/input")).clear();
    driver.findElement(By.xpath("//tr[@class='fileNameRow']/td[2]/div/div/input")).sendKeys("dataGridCsdTestCase.html");
    driver.findElement(By.xpath("//span[.=\"Create\"]")).click();
    // wait for editor to load
    for (int second = 0;; second++) {
      if (second >= 10) fail("timeout");
      try { if (isElementPresent(By.xpath("//div[@id='editors_container_tablist_editor-._project1_dataGridCsdTestCase.html']"))) break; } catch (Exception e) {}
      Thread.sleep(1000);
    }
    // wait for the widget palette
    for (int second = 0;; second++) {
      if (second >= 10) fail("timeout");
      try { if (isElementPresent(By.linkText("Dojo Controls"))) break; } catch (Exception e) {}
      Thread.sleep(1000);
    }

    dragNDropWidget();
        //clickToAddWidget();

    driver.findElement(By.id("davinciIleb")).click();
    driver.findElement(By.id("davinciIleb")).clear();
    driver.findElement(By.id("davinciIleb")).sendKeys("one, two, three\naaaa, bbbb, cccc\ndddd, dddd, eeee\nfffff, gggg, hhhhh");
    driver.findElement(By.id("davinci.ve.input.SmartInput_ok_label")).click();
    driver.findElement(By.xpath("//div[@id='davinci.ve.style']/div/div/span/label[.='ID']/following-sibling::input")).click();
    driver.findElement(By.xpath("//div[@id='davinci.ve.style']/div/div/span/label[.='ID']/following-sibling::input")).clear();
    driver.findElement(By.xpath("//div[@id='davinci.ve.style']/div/div/span/label[.='ID']/following-sibling::input")).sendKeys("data_grid_testcase1\n");
    driver.switchTo().frame(driver.findElement(By.xpath("//div[@id='editor-._project1_dataGridCsdTestCase.html']/div[2]/div/div/iframe")));
    try {
      assertEquals("three", driver.findElement(By.xpath("//div[@id='data_grid_testcase1']/div/div/div//div/table/tbody/tr/th[3]/div")).getText());
    } catch (Error e) {
      verificationErrors.append(e.toString());
    }
    try {
      assertEquals("hhhhh", driver.findElement(By.xpath("//div[@id='data_grid_testcase1']/div[2]/div/div/div/div/div[3]/table/tbody/tr/td[3]")).getText());
    } catch (Error e) {
      verificationErrors.append(e.toString());
    }
    driver.switchTo().defaultContent();
    //  Save file and reopen
    driver.findElement(By.xpath("//span[@class='dijitReset dijitInline dijitIcon saveIcon']")).click();
    driver.findElement(By.xpath("//div[@id='editors_container_tablist_editor-._project1_dataGridCsdTestCase.html']/span[2]")).click();
    doubleClick(driver.findElement(By.xpath("//span[@class='dijitTreeContent']/span[. ='dataGridCsdTestCase.html']/../..")));
   
    try {
      assertTrue(isElementPresent(By.xpath("//div[@id='editors_container_tablist_editor-._project1_dataGridCsdTestCase.html']/span[2]")));
    } catch (Error e) {
      verificationErrors.append(e.toString());
    }
    driver.switchTo().frame(driver.findElement(By.xpath("//div[@id='editor-._project1_dataGridCsdTestCase.html']/div[2]/div/div/iframe")));
    try {
      assertEquals("three", driver.findElement(By.xpath("//div[@id='data_grid_testcase1']/div/div/div//div/table/tbody/tr/th[3]/div")).getText());
    } catch (Error e) {
      verificationErrors.append(e.toString());
    }
    try {
      assertEquals("hhhhh", driver.findElement(By.xpath("//div[@id='data_grid_testcase1']/div[2]/div/div/div/div/div[3]/table/tbody/tr/td[3]")).getText());
    } catch (Error e) {
      verificationErrors.append(e.toString());
    }
    driver.switchTo().defaultContent();
    // Open Preview

    String parentWindowHandle = driver.getWindowHandle(); // save the current window handle.
    driver.findElement(By.xpath("//span[@class='dijitReset dijitInline dijitIcon openBrowserIcon']")).click();
        WebDriver popup = null;
        Iterator<String> windowIterator = driver.getWindowHandles().iterator();
        while(windowIterator.hasNext()) {
          String windowHandle = windowIterator.next();
          popup = driver.switchTo().window(windowHandle);
          if (popup.getTitle().equals("Untitled")) { // find the popup
            break;
          }
        }
    try {
      assertEquals("three", driver.findElement(By.xpath("//div[@id='data_grid_testcase1']/div/div/div//div/table/tbody/tr/th[3]/div")).getText());
    } catch (Error e) {
      verificationErrors.append(e.toString());
    }
    try {
      assertEquals("hhhhh", driver.findElement(By.xpath("//div[@id='data_grid_testcase1']/div[2]/div/div/div/div/div[3]/table/tbody/tr/td[3]")).getText());
    } catch (Error e) {
      verificationErrors.append(e.toString());
    }
    driver.close()// the popup
    driver.switchTo().window(parentWindowHandle); // switch back to the main
    driver.findElement(By.xpath("//div[@id='editors_container_tablist_editor-._project1_dataGridCsdTestCase.html']/span[2]")).click();
  }

  @After
  public void tearDown() throws Exception {
    driver.quit();
    String verificationErrorString = verificationErrors.toString();
    if (!"".equals(verificationErrorString)) {
      fail(verificationErrorString);
    }
  }

  private boolean isElementPresent(By by) {
    try {
      driver.findElement(by);
      return true;
    } catch (NoSuchElementException e) {
      return false;
    }
  }
 
  private void dragNDropWidget() {
    // Becouse we have the DnD target in an iFrame we need to do this bit of code
    driver.findElement(By.linkText("Dojo Controls")).click();
    WebElement srcElement = driver.findElement(By.xpath("//a[text()='Dojo Controls']/../following-sibling::div/a[.='DataGridDojo Controls']"));
    String xto=Integer.toString(srcElement.getLocation().x);
    srcElement.click();
    // switch to the canvas
    driver.switchTo().frame(driver.findElement(By.xpath("//div[@id='editor-._project1_dataGridCsdTestCase.html']/div[2]/div/div/iframe")));
    WebElement targetElement = driver.findElement(By.xpath("//body[@id=\"myapp\"]"));
    String yto=Integer.toString(targetElement.getLocation().y);
    driver.switchTo().defaultContent();
    ((JavascriptExecutor)driver).executeScript("function simulate(f,c,d,e){var b,a=null;for(b in eventMatchers)if(eventMatchers[b].test(c)){a=b;break}if(!a)return!1;document.createEvent?(b=document.createEvent(a),a==\"HTMLEvents\"?b.initEvent(c,!0,!0):b.initMouseEvent(c,!0,!0,document.defaultView,0,d,e,d,e,!1,!1,!1,!1,0,null),f.dispatchEvent(b)):(a=document.createEventObject(),a.detail=0,a.screenX=d,a.screenY=e,a.clientX=d,a.clientY=e,a.ctrlKey=!1,a.altKey=!1,a.shiftKey=!1,a.metaKey=!1,a.button=1,f.fireEvent(\"on\"+c,a));return!0} var eventMatchers={HTMLEvents:/^(?:load|unload|abort|error|select|change|submit|reset|focus|blur|resize|scroll)$/,MouseEvents:/^(?:click|dblclick|mouse(?:down|up|over|move|out))$/}; " +
         "simulate(arguments[0],\"mousedown\",arguments[1],arguments[2]);",srcElement,xto,yto);
    ((JavascriptExecutor)driver).executeScript("function simulate(f,c,d,e){var b,a=null;for(b in eventMatchers)if(eventMatchers[b].test(c)){a=b;break}if(!a)return!1;document.createEvent?(b=document.createEvent(a),a==\"HTMLEvents\"?b.initEvent(c,!0,!0):b.initMouseEvent(c,!0,!0,document.defaultView,0,d,e,d,e,!1,!1,!1,!1,0,null),f.dispatchEvent(b)):(a=document.createEventObject(),a.detail=0,a.screenX=d,a.screenY=e,a.clientX=d,a.clientY=e,a.ctrlKey=!1,a.altKey=!1,a.shiftKey=!1,a.metaKey=!1,a.button=1,f.fireEvent(\"on\"+c,a));return!0} var eventMatchers={HTMLEvents:/^(?:load|unload|abort|error|select|change|submit|reset|focus|blur|resize|scroll)$/,MouseEvents:/^(?:click|dblclick|mouse(?:down|up|over|move|out))$/}; " +
         "simulate(arguments[0],\"mousemove\",arguments[1],arguments[2]);",srcElement,xto,yto);
     driver.switchTo().frame(driver.findElement(By.xpath("//div[@id='editor-._project1_dataGridCsdTestCase.html']/div[2]/div/div/iframe")));
     ((JavascriptExecutor)driver).executeScript("function simulate(f,c,d,e){var b,a=null;for(b in eventMatchers)if(eventMatchers[b].test(c)){a=b;break}if(!a)return!1;document.createEvent?(b=document.createEvent(a),a==\"HTMLEvents\"?b.initEvent(c,!0,!0):b.initMouseEvent(c,!0,!0,document.defaultView,0,d,e,d,e,!1,!1,!1,!1,0,null),f.dispatchEvent(b)):(a=document.createEventObject(),a.detail=0,a.screenX=d,a.screenY=e,a.clientX=d,a.clientY=e,a.ctrlKey=!1,a.altKey=!1,a.shiftKey=!1,a.metaKey=!1,a.button=1,f.fireEvent(\"on\"+c,a));return!0} var eventMatchers={HTMLEvents:/^(?:load|unload|abort|error|select|change|submit|reset|focus|blur|resize|scroll)$/,MouseEvents:/^(?:click|dblclick|mouse(?:down|up|over|move|out))$/}; " +
         "simulate(arguments[0],\"mouseup\",arguments[1],arguments[2]);",targetElement,xto,yto);
    
  /*  ((JavascriptExecutor)driver).executeScript("function simulate(f,c,d,e){var b,a=null;for(b in eventMatchers)if(eventMatchers[b].test(c)){a=b;break}if(!a)return!1;document.createEvent?(b=document.createEvent(a),a==\"HTMLEvents\"?b.initEvent(c,!0,!0):b.initMouseEvent(c,!0,!0,document.defaultView,0,d,e,d,e,!1,!1,!1,!1,0,null),f.dispatchEvent(b)):(a=document.createEventObject(),a.detail=0,a.screenX=d,a.screenY=e,a.clientX=d,a.clientY=e,a.ctrlKey=!1,a.altKey=!1,a.shiftKey=!1,a.metaKey=!1,a.button=1,f.fireEvent(\"on\"+c,a));return!0} var eventMatchers={HTMLEvents:/^(?:load|unload|abort|error|select|change|submit|reset|focus|blur|resize|scroll)$/,MouseEvents:/^(?:click|dblclick|mouse(?:down|up|over|move|out))$/}; " +
    "simulate(arguments[0],\"mousedown\",0,0); simulate(arguments[0],\"mousemove\",arguments[1],arguments[2]); simulate(arguments[0],\"mouseup\",arguments[1],arguments[2]); ",
    srcElement,xto,yto);*/
    driver.switchTo().defaultContent();
  }
 
  private void clickToAddWidget(){
    // this bit clicks the widget is the palette and then clicks in the iFrame to place
    driver.findElement(By.linkText("Dojo Controls")).click();
    driver.findElement(By.xpath("//a[text()='Dojo Controls']/../following-sibling::div/a[.='DataGridDojo Controls']")).click();
    // switch to the canvas
    driver.switchTo().frame(driver.findElement(By.xpath("//div[@id='editor-._project1_dataGridCsdTestCase.html']/div[2]/div/div/iframe")));
    driver.findElement(By.xpath("//body[@id=\"myapp\"]")).click();
    driver.switchTo().defaultContent();
  }
 
  private void doubleClick(WebElement element){
    // hack for doubleClick
    element.click();
    JavascriptExecutor js = (JavascriptExecutor) driver;
    js.executeScript("var evt = document.createEvent('MouseEvents');" +
            "evt.initMouseEvent('dblclick',true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0,null);" +
            "arguments[0].dispatchEvent(evt);", element);
    // end hack for doubleClick
  }

}
TOP

Related Classes of org.openqa.selenium.example.CommaSeparatedData

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.