You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@falcon.apache.org by ra...@apache.org on 2015/05/06 01:02:54 UTC
falcon git commit: FALCON-1187: Test that changes made via API are
reflected on UI contributed by Ruslan Ostafiychuk
Repository: falcon
Updated Branches:
refs/heads/master bbd01241c -> 844dab219
FALCON-1187: Test that changes made via API are reflected on UI contributed by Ruslan Ostafiychuk
Project: http://git-wip-us.apache.org/repos/asf/falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/falcon/commit/844dab21
Tree: http://git-wip-us.apache.org/repos/asf/falcon/tree/844dab21
Diff: http://git-wip-us.apache.org/repos/asf/falcon/diff/844dab21
Branch: refs/heads/master
Commit: 844dab219f691ddaa1d657a475f6f208cba6c3bd
Parents: bbd0124
Author: Raghav Kumar Gautam <ra...@apache.org>
Authored: Tue May 5 16:02:44 2015 -0700
Committer: Raghav Kumar Gautam <ra...@apache.org>
Committed: Tue May 5 16:02:44 2015 -0700
----------------------------------------------------------------------
falcon-regression/CHANGES.txt | 3 +
.../regression/ui/pages/EntitiesPage.java | 6 -
.../apache/falcon/regression/ui/pages/Page.java | 7 ++
.../falcon/regression/ui/search/SearchPage.java | 9 +-
.../searchUI/EntitiesTableReflectionTest.java | 115 +++++++++++++++++++
.../falcon/regression/ui/ProcessUITest.java | 5 +-
6 files changed, 133 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/falcon/blob/844dab21/falcon-regression/CHANGES.txt
----------------------------------------------------------------------
diff --git a/falcon-regression/CHANGES.txt b/falcon-regression/CHANGES.txt
index cfae2f8..870187b 100644
--- a/falcon-regression/CHANGES.txt
+++ b/falcon-regression/CHANGES.txt
@@ -5,6 +5,9 @@ Trunk (Unreleased)
INCOMPATIBLE CHANGES
NEW FEATURES
+ FALCON-1187 Test that changes made via API are reflected on UI (Ruslan Ostafiychuk
+ via Raghav Kumar Gautam)
+
FALCON-1173 Tests for entities table of search-ui (Ruslan Ostafiychuk)
FALCON-1171 Adding search API tests (Paul Isaychuk via Raghav Kumar Gautam)
http://git-wip-us.apache.org/repos/asf/falcon/blob/844dab21/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/ui/pages/EntitiesPage.java
----------------------------------------------------------------------
diff --git a/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/ui/pages/EntitiesPage.java b/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/ui/pages/EntitiesPage.java
index b4f3f38..16ff525 100644
--- a/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/ui/pages/EntitiesPage.java
+++ b/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/ui/pages/EntitiesPage.java
@@ -119,10 +119,4 @@ public class EntitiesPage extends Page {
return entities;
}
- /**
- * Status of entity that can be shown on Falcon UI.
- */
- public enum EntityStatus {
- UNKNOWN, SUBMITTED, RUNNING, SUSPENDED
- }
}
http://git-wip-us.apache.org/repos/asf/falcon/blob/844dab21/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/ui/pages/Page.java
----------------------------------------------------------------------
diff --git a/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/ui/pages/Page.java b/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/ui/pages/Page.java
index 5319b6d..f176949 100644
--- a/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/ui/pages/Page.java
+++ b/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/ui/pages/Page.java
@@ -130,6 +130,13 @@ public abstract class Page {
}
}
+ /**
+ * Status of entity that can be shown on Falcon UI.
+ */
+ public enum EntityStatus {
+ UNKNOWN, SUBMITTED, RUNNING, SUSPENDED
+ }
+
static class Condition implements ExpectedCondition<Boolean> {
private final boolean isPresent;
http://git-wip-us.apache.org/repos/asf/falcon/blob/844dab21/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/ui/search/SearchPage.java
----------------------------------------------------------------------
diff --git a/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/ui/search/SearchPage.java b/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/ui/search/SearchPage.java
index 5d3febf..9ad2591 100644
--- a/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/ui/search/SearchPage.java
+++ b/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/ui/search/SearchPage.java
@@ -129,7 +129,8 @@ public class SearchPage extends AbstractSearchPage {
}
private String getActiveAlertText() {
- List<WebElement> alerts = driver.findElements(By.className("ng-animate"));
+ WebElement alertsBlock = driver.findElement(By.className("messages-to-show"));
+ List<WebElement> alerts = alertsBlock.findElements(By.className("ng-animate"));
if (!alerts.isEmpty()) {
WebElement last = alerts.get(alerts.size() - 1);
if (last.isDisplayed()) {
@@ -260,7 +261,7 @@ public class SearchPage extends AbstractSearchPage {
private String tags = "";
private String clusterName;
private String type;
- private String status;
+ private EntityStatus status;
public static SearchResult create(String entityName) {
return new SearchResult(entityName);
@@ -291,7 +292,7 @@ public class SearchPage extends AbstractSearchPage {
}
public SearchResult withStatus(String pStatus) {
- this.status = pStatus;
+ this.status = EntityStatus.valueOf(pStatus);
return this;
}
@@ -315,7 +316,7 @@ public class SearchPage extends AbstractSearchPage {
return type;
}
- public String getStatus() {
+ public EntityStatus getStatus() {
return status;
}
}
http://git-wip-us.apache.org/repos/asf/falcon/blob/844dab21/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/searchUI/EntitiesTableReflectionTest.java
----------------------------------------------------------------------
diff --git a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/searchUI/EntitiesTableReflectionTest.java b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/searchUI/EntitiesTableReflectionTest.java
new file mode 100644
index 0000000..8d64a0e
--- /dev/null
+++ b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/searchUI/EntitiesTableReflectionTest.java
@@ -0,0 +1,115 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.falcon.regression.searchUI;
+
+import org.apache.falcon.regression.core.bundle.Bundle;
+import org.apache.falcon.regression.core.util.AssertUtil;
+import org.apache.falcon.regression.core.util.BundleUtil;
+import org.apache.falcon.regression.core.util.OSUtil;
+import org.apache.falcon.regression.core.util.Util;
+import org.apache.falcon.regression.testHelper.BaseUITestClass;
+import org.apache.falcon.regression.ui.pages.Page.EntityStatus;
+import org.apache.falcon.regression.ui.search.LoginPage;
+import org.apache.falcon.regression.ui.search.SearchPage;
+import org.apache.hadoop.security.authentication.client.AuthenticationException;
+import org.testng.Assert;
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
+import javax.xml.bind.JAXBException;
+import java.io.IOException;
+import java.net.URISyntaxException;
+
+/** UI tests for entities table with search results. */
+@Test(groups = "search-ui")
+public class EntitiesTableReflectionTest extends BaseUITestClass {
+ private String baseTestDir = cleanAndGetTestDir();
+ private String aggregateWorkflowDir = baseTestDir + "/aggregator";
+
+ private SearchPage searchPage = null;
+
+ @BeforeClass(alwaysRun = true)
+ public void setup()
+ throws URISyntaxException, IOException, AuthenticationException, InterruptedException,
+ JAXBException {
+ uploadDirToClusters(aggregateWorkflowDir, OSUtil.RESOURCES_OOZIE);
+ openBrowser();
+ searchPage = LoginPage.open(getDriver()).doDefaultLogin();
+ bundles[0] = BundleUtil.readELBundle();
+ bundles[0] = new Bundle(bundles[0], servers.get(0));
+ bundles[0].generateUniqueBundle(this);
+ bundles[0].setProcessWorkflow(aggregateWorkflowDir);
+ bundles[0].submitBundle(prism);
+
+ }
+
+ @Test
+ public void testUIStatusChangedViaAPI() throws URISyntaxException,
+ AuthenticationException, InterruptedException, IOException, JAXBException {
+ String processName = bundles[0].getProcessName();
+ Assert.assertEquals(searchPage.doSearch(processName).size(), 1,
+ "One result should be present");
+ Assert.assertEquals(searchPage.doSearch(processName).get(0).getStatus(),
+ EntityStatus.SUBMITTED, "Status of process should be SUBMITTED");
+
+ AssertUtil.assertSucceeded(
+ prism.getProcessHelper().schedule(bundles[0].getProcessData()));
+ Assert.assertEquals(searchPage.doSearch(processName).get(0).getStatus(),
+ EntityStatus.RUNNING, "Status of process should be RUNNING");
+
+ AssertUtil.assertSucceeded(
+ prism.getProcessHelper().suspend(bundles[0].getProcessData()));
+ Assert.assertEquals(searchPage.doSearch(processName).get(0).getStatus(),
+ EntityStatus.SUSPENDED, "Status of process should be SUSPENDED");
+
+ AssertUtil.assertSucceeded(
+ prism.getProcessHelper().resume(bundles[0].getProcessData()));
+ Assert.assertEquals(searchPage.doSearch(processName).get(0).getStatus(),
+ EntityStatus.RUNNING, "Status of process should be RUNNING");
+
+ AssertUtil.assertSucceeded(
+ prism.getProcessHelper().delete(bundles[0].getProcessData()));
+ Assert.assertEquals(searchPage.doSearch(processName).size(), 0,
+ "Zero results should be present after deletion");
+
+ AssertUtil.assertSucceeded(
+ prism.getProcessHelper().submitAndSchedule(bundles[0].getProcessData()));
+ Assert.assertEquals(searchPage.doSearch(processName).get(0).getStatus(),
+ EntityStatus.RUNNING, "Status of rescheduled process should be RUNNING");
+ }
+
+ @Test
+ public void testActionsPauseResume() throws URISyntaxException,
+ AuthenticationException, InterruptedException, IOException, JAXBException {
+ String processName = Util.readEntityName(bundles[0].getProcessData());
+ Assert.assertEquals(searchPage.doSearch(processName).size(), 1,
+ "One result should be present");
+ Assert.assertEquals(searchPage.doSearch(processName).get(0).getStatus(),
+ EntityStatus.SUBMITTED, "Status of process should be SUBMITTED");
+ }
+
+
+ @AfterClass(alwaysRun = true)
+ public void tearDown() {
+ removeTestClassEntities();
+ closeBrowser();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/falcon/blob/844dab21/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/ui/ProcessUITest.java
----------------------------------------------------------------------
diff --git a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/ui/ProcessUITest.java b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/ui/ProcessUITest.java
index 8e81dcd..12b87f5 100644
--- a/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/ui/ProcessUITest.java
+++ b/falcon-regression/merlin/src/test/java/org/apache/falcon/regression/ui/ProcessUITest.java
@@ -38,6 +38,7 @@ import org.apache.falcon.regression.core.util.Util;
import org.apache.falcon.regression.lineage.LineageApiTest;
import org.apache.falcon.regression.testHelper.BaseUITestClass;
import org.apache.falcon.regression.ui.pages.EntitiesPage;
+import org.apache.falcon.regression.ui.pages.Page;
import org.apache.falcon.regression.ui.pages.ProcessPage;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.security.authentication.client.AuthenticationException;
@@ -180,14 +181,14 @@ public class ProcessUITest extends BaseUITestClass {
String process = bundles[0].getProcessData();
String processName = Util.readEntityName(process);
softAssert.assertEquals(page.getEntityStatus(processName),
- EntitiesPage.EntityStatus.SUBMITTED, "Process status should be SUBMITTED");
+ Page.EntityStatus.SUBMITTED, "Process status should be SUBMITTED");
prism.getProcessHelper().schedule(process);
InstanceUtil.waitTillInstanceReachState(clusterOC, processName, 1,
CoordinatorAction.Status.RUNNING, EntityType.PROCESS);
softAssert.assertEquals(page.getEntityStatus(processName),
- EntitiesPage.EntityStatus.RUNNING, "Process status should be RUNNING");
+ Page.EntityStatus.RUNNING, "Process status should be RUNNING");
ProcessPage processPage = new ProcessPage(getDriver(), cluster, processName);
processPage.navigateTo();