From 9b1d777a2e8e56cba06ab48e72698c4c2ea047d7 Mon Sep 17 00:00:00 2001 From: Ravi Ranjan Date: Wed, 3 Feb 2016 20:18:09 +0530 Subject: [PATCH 1/5] Add new selenium test case for create new paragraph button --- .../integration/ParagraphActionsIT.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/zeppelin-server/src/test/java/org/apache/zeppelin/integration/ParagraphActionsIT.java b/zeppelin-server/src/test/java/org/apache/zeppelin/integration/ParagraphActionsIT.java index 41d7729191c..d449658e7f4 100644 --- a/zeppelin-server/src/test/java/org/apache/zeppelin/integration/ParagraphActionsIT.java +++ b/zeppelin-server/src/test/java/org/apache/zeppelin/integration/ParagraphActionsIT.java @@ -20,6 +20,7 @@ import org.apache.zeppelin.AbstractZeppelinIT; import org.apache.zeppelin.WebDriverManager; +import org.apache.zeppelin.ZeppelinITUtils; import org.hamcrest.CoreMatchers; import org.junit.After; import org.junit.Before; @@ -55,6 +56,33 @@ public void tearDown() { driver.quit(); } + @Test + public void testCreateNewButton() throws InterruptedException { + if (!endToEndTestEnabled()) { + return; + } + try { + createNewNote(); + + waitForParagraph(1, "READY"); + Integer nosOfParas = driver.findElements(By.xpath("//div[@ng-controller=\"ParagraphCtrl\"]")).size(); + driver.findElement(By.xpath(getParagraphXPath(1) + "//span[@class='icon-settings']")).click(); + driver.findElement(By.xpath(getParagraphXPath(1) + "//ul/li/a[@ng-click='insertNew()']")).click(); + waitForParagraph(2, "READY"); + Integer newNosOfParas = driver.findElements(By.xpath("//div[@ng-controller=\"ParagraphCtrl\"]")).size(); + collector.checkThat("The number of new paragraph and old paragraph", + (nosOfParas+1==newNosOfParas), + CoreMatchers.equalTo(true)); + + ZeppelinITUtils.sleep(1000,false); + deleteTestNotebook(driver); + + } catch (ElementNotVisibleException e) { + File scrFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); + } + + + } @Test public void testDisableParagraphRunButton() throws InterruptedException { From 2fbf220ddfe17e6973438c57eccba08bd87faa10 Mon Sep 17 00:00:00 2001 From: Ravi Ranjan Date: Thu, 4 Feb 2016 16:13:35 +0530 Subject: [PATCH 2/5] modified Debug message and in checkthat value of pargarphs used instead of or --- .../zeppelin/integration/ParagraphActionsIT.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/zeppelin-server/src/test/java/org/apache/zeppelin/integration/ParagraphActionsIT.java b/zeppelin-server/src/test/java/org/apache/zeppelin/integration/ParagraphActionsIT.java index d449658e7f4..81106871fd7 100644 --- a/zeppelin-server/src/test/java/org/apache/zeppelin/integration/ParagraphActionsIT.java +++ b/zeppelin-server/src/test/java/org/apache/zeppelin/integration/ParagraphActionsIT.java @@ -65,14 +65,17 @@ public void testCreateNewButton() throws InterruptedException { createNewNote(); waitForParagraph(1, "READY"); - Integer nosOfParas = driver.findElements(By.xpath("//div[@ng-controller=\"ParagraphCtrl\"]")).size(); + Integer oldNosOfParas = driver.findElements(By.xpath("//div[@ng-controller=\"ParagraphCtrl\"]")).size(); + collector.checkThat("Before CreateNew the number of paragraph ", + oldNosOfParas, + CoreMatchers.equalTo(1)); driver.findElement(By.xpath(getParagraphXPath(1) + "//span[@class='icon-settings']")).click(); driver.findElement(By.xpath(getParagraphXPath(1) + "//ul/li/a[@ng-click='insertNew()']")).click(); waitForParagraph(2, "READY"); Integer newNosOfParas = driver.findElements(By.xpath("//div[@ng-controller=\"ParagraphCtrl\"]")).size(); - collector.checkThat("The number of new paragraph and old paragraph", - (nosOfParas+1==newNosOfParas), - CoreMatchers.equalTo(true)); + collector.checkThat("After CreateNew the number of paragraph", + oldNosOfParas+1, + CoreMatchers.equalTo(newNosOfParas)); ZeppelinITUtils.sleep(1000,false); deleteTestNotebook(driver); From 0247d3f7f90958f18e8eff50f6eb59c01e7f131e Mon Sep 17 00:00:00 2001 From: Ravi Ranjan Date: Mon, 8 Feb 2016 12:34:28 +0530 Subject: [PATCH 3/5] Modified test case to test create new paragraph using '+' sign between paragraph --- .../integration/ParagraphActionsIT.java | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/zeppelin-server/src/test/java/org/apache/zeppelin/integration/ParagraphActionsIT.java b/zeppelin-server/src/test/java/org/apache/zeppelin/integration/ParagraphActionsIT.java index 81106871fd7..516d748bbd8 100644 --- a/zeppelin-server/src/test/java/org/apache/zeppelin/integration/ParagraphActionsIT.java +++ b/zeppelin-server/src/test/java/org/apache/zeppelin/integration/ParagraphActionsIT.java @@ -28,6 +28,8 @@ import org.junit.Test; import org.junit.rules.ErrorCollector; import org.openqa.selenium.*; +import org.openqa.selenium.interactions.Action; +import org.openqa.selenium.interactions.Actions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -63,21 +65,29 @@ public void testCreateNewButton() throws InterruptedException { } try { createNewNote(); - + Actions action = new Actions(driver); waitForParagraph(1, "READY"); Integer oldNosOfParas = driver.findElements(By.xpath("//div[@ng-controller=\"ParagraphCtrl\"]")).size(); - collector.checkThat("Before CreateNew the number of paragraph ", + collector.checkThat("Before Insert New : the number of paragraph ", oldNosOfParas, CoreMatchers.equalTo(1)); driver.findElement(By.xpath(getParagraphXPath(1) + "//span[@class='icon-settings']")).click(); driver.findElement(By.xpath(getParagraphXPath(1) + "//ul/li/a[@ng-click='insertNew()']")).click(); waitForParagraph(2, "READY"); - Integer newNosOfParas = driver.findElements(By.xpath("//div[@ng-controller=\"ParagraphCtrl\"]")).size(); - collector.checkThat("After CreateNew the number of paragraph", - oldNosOfParas+1, + Integer newNosOfParas = driver.findElements(By.xpath("//div[@ng-controller=\"ParagraphCtrl\"]")).size(); + collector.checkThat("After Insert New (using Insert New button) : number of paragraph", + oldNosOfParas + 1, CoreMatchers.equalTo(newNosOfParas)); - ZeppelinITUtils.sleep(1000,false); + WebElement newPara = driver.findElement(By.xpath(getParagraphXPath(1) + "//div[contains(@class,'new-paragraph')][1]")); + action.moveToElement(newPara).click().build().perform(); + + waitForParagraph(3, "READY"); + newNosOfParas = driver.findElements(By.xpath("//div[@ng-controller=\"ParagraphCtrl\"]")).size(); + collector.checkThat("After Insert New (using '+' button) : number of paragraph", + oldNosOfParas + 2, + CoreMatchers.equalTo(newNosOfParas)); + ZeppelinITUtils.sleep(1000, false); deleteTestNotebook(driver); } catch (ElementNotVisibleException e) { From ce253963deb1d36f2a0104e4c439f3436c22ba88 Mon Sep 17 00:00:00 2001 From: Ravi Ranjan Date: Mon, 8 Feb 2016 18:03:55 +0530 Subject: [PATCH 4/5] Add LOG.error in catch statement --- .../integration/ParagraphActionsIT.java | 45 +++++++++++++++++-- 1 file changed, 41 insertions(+), 4 deletions(-) diff --git a/zeppelin-server/src/test/java/org/apache/zeppelin/integration/ParagraphActionsIT.java b/zeppelin-server/src/test/java/org/apache/zeppelin/integration/ParagraphActionsIT.java index 516d748bbd8..ad5621d3bce 100644 --- a/zeppelin-server/src/test/java/org/apache/zeppelin/integration/ParagraphActionsIT.java +++ b/zeppelin-server/src/test/java/org/apache/zeppelin/integration/ParagraphActionsIT.java @@ -79,14 +79,51 @@ public void testCreateNewButton() throws InterruptedException { oldNosOfParas + 1, CoreMatchers.equalTo(newNosOfParas)); + driver.findElement(By.xpath(getParagraphXPath(1) + "//span[@class='icon-settings']")).click(); + driver.findElement(By.xpath(getParagraphXPath(1) + "//ul/li/a[@ng-click='removeParagraph()']")).click(); + ZeppelinITUtils.sleep(1000, false); + driver.findElement(By.xpath("//div[@class='modal-dialog'][contains(.,'delete this paragraph')]" + + "//div[@class='modal-footer']//button[contains(.,'OK')]")).click(); + ZeppelinITUtils.sleep(1000, false); + + WebElement oldParagraphEditor = driver.findElement(By.xpath(getParagraphXPath(1) + "//textarea")); + oldParagraphEditor.sendKeys(" original paragraph "); + WebElement newPara = driver.findElement(By.xpath(getParagraphXPath(1) + "//div[contains(@class,'new-paragraph')][1]")); action.moveToElement(newPara).click().build().perform(); + ZeppelinITUtils.sleep(1000, false); + waitForParagraph(1, "READY"); + + collector.checkThat("Paragraph is created above", + driver.findElement(By.xpath(getParagraphXPath(1) + "//div[contains(@class, 'editor')]")).getText(), + CoreMatchers.equalTo("")); + WebElement aboveParagraphEditor = driver.findElement(By.xpath(getParagraphXPath(1) + "//textarea")); + aboveParagraphEditor.sendKeys(" this is above "); + + newPara = driver.findElement(By.xpath(getParagraphXPath(2) + "//div[contains(@class,'new-paragraph')][2]")); + action.moveToElement(newPara).click().build().perform(); waitForParagraph(3, "READY"); - newNosOfParas = driver.findElements(By.xpath("//div[@ng-controller=\"ParagraphCtrl\"]")).size(); - collector.checkThat("After Insert New (using '+' button) : number of paragraph", - oldNosOfParas + 2, - CoreMatchers.equalTo(newNosOfParas)); + + collector.checkThat("Paragraph is created below", + driver.findElement(By.xpath(getParagraphXPath(3) + "//div[contains(@class, 'editor')]")).getText(), + CoreMatchers.equalTo("")); + WebElement belowParagraphEditor = driver.findElement(By.xpath(getParagraphXPath(3) + "//textarea")); + belowParagraphEditor.sendKeys(" this is below "); + + collector.checkThat("The output field of paragraph1 contains", + driver.findElement(By.xpath(getParagraphXPath(1) + "//div[contains(@class, 'editor')]")).getText(), + CoreMatchers.equalTo(" this is above ")); + collector.checkThat("The output field paragraph2 contains", + driver.findElement(By.xpath(getParagraphXPath(2) + "//div[contains(@class, 'editor')]")).getText(), + CoreMatchers.equalTo(" original paragraph ")); + collector.checkThat("The output field paragraph3 contains", + driver.findElement(By.xpath(getParagraphXPath(3) + "//div[contains(@class, 'editor')]")).getText(), + CoreMatchers.equalTo(" this is below ")); + collector.checkThat("The current number of paragraphs after creating paragraph above and below", + driver.findElements(By.xpath("//div[@ng-controller=\"ParagraphCtrl\"]")).size(), + CoreMatchers.equalTo(3)); + ZeppelinITUtils.sleep(1000, false); deleteTestNotebook(driver); From 7d5bc654ca10051d4deebad42595bcfd12ee4149 Mon Sep 17 00:00:00 2001 From: Ravi Ranjan Date: Wed, 17 Feb 2016 11:19:14 +0530 Subject: [PATCH 5/5] Add LOG.error message in catch statement --- .../org/apache/zeppelin/integration/ParagraphActionsIT.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/zeppelin-server/src/test/java/org/apache/zeppelin/integration/ParagraphActionsIT.java b/zeppelin-server/src/test/java/org/apache/zeppelin/integration/ParagraphActionsIT.java index ad5621d3bce..0adbba731c1 100644 --- a/zeppelin-server/src/test/java/org/apache/zeppelin/integration/ParagraphActionsIT.java +++ b/zeppelin-server/src/test/java/org/apache/zeppelin/integration/ParagraphActionsIT.java @@ -128,7 +128,10 @@ public void testCreateNewButton() throws InterruptedException { deleteTestNotebook(driver); } catch (ElementNotVisibleException e) { - File scrFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); + LOG.error("Exception in ParagraphActionsIT while testCreateNewButton ", e); + File scrFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); + throw e; + }