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/07/20 23:09:53 UTC
falcon git commit: FALCON-1318: Method waitForAngularToFinish()
should be robust to unresponsive browser contributed by Raghav Kumar Gautam
Repository: falcon
Updated Branches:
refs/heads/master 1b47d2e7f -> 5b4cf24b7
FALCON-1318: Method waitForAngularToFinish() should be robust to unresponsive browser contributed by Raghav Kumar Gautam
Project: http://git-wip-us.apache.org/repos/asf/falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/falcon/commit/5b4cf24b
Tree: http://git-wip-us.apache.org/repos/asf/falcon/tree/5b4cf24b
Diff: http://git-wip-us.apache.org/repos/asf/falcon/diff/5b4cf24b
Branch: refs/heads/master
Commit: 5b4cf24b745c9f04c102ed93004786eb608f46e3
Parents: 1b47d2e
Author: Raghav Kumar Gautam <ra...@apache.org>
Authored: Mon Jul 20 14:08:43 2015 -0700
Committer: Raghav Kumar Gautam <ra...@apache.org>
Committed: Mon Jul 20 14:08:43 2015 -0700
----------------------------------------------------------------------
falcon-regression/CHANGES.txt | 2 ++
.../ui/search/AbstractSearchPage.java | 15 ++++++++++++--
.../falcon/regression/ui/search/PageHeader.java | 21 +++-----------------
3 files changed, 18 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/falcon/blob/5b4cf24b/falcon-regression/CHANGES.txt
----------------------------------------------------------------------
diff --git a/falcon-regression/CHANGES.txt b/falcon-regression/CHANGES.txt
index 45be445..c00e66f 100644
--- a/falcon-regression/CHANGES.txt
+++ b/falcon-regression/CHANGES.txt
@@ -357,6 +357,8 @@ Trunk (Unreleased)
FALCON-681 delete duplicate feed retention test from falcon regression (SamarthG)
BUG FIXES
+ FALCON-1318 Method waitForAngularToFinish() should be robust to unresponsive browser (Raghav Kumar Gautam)
+
FALCON-1314 Unify handling of local files and directory (Raghav Kumar Gautam)
FALCON-1278 Submitted entity properties must have unique names (Raghav Kumar Gautam)
http://git-wip-us.apache.org/repos/asf/falcon/blob/5b4cf24b/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/ui/search/AbstractSearchPage.java
----------------------------------------------------------------------
diff --git a/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/ui/search/AbstractSearchPage.java b/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/ui/search/AbstractSearchPage.java
index b22fa1c..e7d1ca2 100644
--- a/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/ui/search/AbstractSearchPage.java
+++ b/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/ui/search/AbstractSearchPage.java
@@ -18,6 +18,9 @@
package org.apache.falcon.regression.ui.search;
+import com.google.common.util.concurrent.SimpleTimeLimiter;
+import com.google.common.util.concurrent.TimeLimiter;
+import org.apache.commons.lang.exception.ExceptionUtils;
import org.apache.falcon.regression.core.enumsAndConstants.MerlinConstants;
import org.apache.falcon.regression.core.util.TimeUtil;
import org.apache.falcon.regression.ui.pages.Page;
@@ -33,6 +36,7 @@ import org.testng.Assert;
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.TimeUnit;
@@ -138,8 +142,15 @@ public abstract class AbstractSearchPage extends Page {
+ "(angular.element(document).injector().get('$http').pendingRequests.length === 0)";
boolean isLoaded = false;
for (int i = 0; i < PAGELOAD_TIMEOUT_THRESHOLD && !isLoaded; i++) {
- final Object output = ((JavascriptExecutor) driver).executeScript(javaScript);
- isLoaded = Boolean.valueOf(output.toString());
+ TimeLimiter timeLimiter = new SimpleTimeLimiter();
+ final JavascriptExecutor proxyJsExecutor =
+ timeLimiter.newProxy((JavascriptExecutor) driver, JavascriptExecutor.class, 10, TimeUnit.SECONDS);
+ try {
+ final Object output = proxyJsExecutor.executeScript(javaScript);
+ isLoaded = Boolean.valueOf(output.toString());
+ } catch (Exception e) {
+ LOGGER.info("Checking of pending request failed because of: " + ExceptionUtils.getFullStackTrace(e));
+ }
LOGGER.info(i+1 + ". waiting on angular to finish.");
TimeUtil.sleepSeconds(1);
}
http://git-wip-us.apache.org/repos/asf/falcon/blob/5b4cf24b/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/ui/search/PageHeader.java
----------------------------------------------------------------------
diff --git a/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/ui/search/PageHeader.java b/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/ui/search/PageHeader.java
index 6524ccf..cb5bccf 100644
--- a/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/ui/search/PageHeader.java
+++ b/falcon-regression/merlin/src/main/java/org/apache/falcon/regression/ui/search/PageHeader.java
@@ -20,11 +20,9 @@ package org.apache.falcon.regression.ui.search;
import org.apache.falcon.regression.core.enumsAndConstants.MerlinConstants;
import org.apache.falcon.regression.core.util.AssertUtil;
-import org.apache.falcon.regression.core.util.TimeUtil;
import org.apache.falcon.regression.core.util.UIAssert;
import org.apache.log4j.Logger;
import org.openqa.selenium.By;
-import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
@@ -186,7 +184,9 @@ public class PageHeader {
public void uploadXml(String filePath) throws IOException {
final WebElement uploadEntityTextBox = uploadEntityBox.findElement(By.id("files"));
uploadEntityTextBox.sendKeys(filePath);
- waitForAngularToFinish();
+ //wait for alert
+ driver.findElements(
+ By.xpath("//div[@class='messages notifs' and contains(@style,'opacity') and not(contains(@style,'1;'))]"));
}
public ClusterWizardPage doCreateCluster() {
@@ -253,19 +253,4 @@ public class PageHeader {
return loginPage;
}
- protected void waitForAngularToFinish() {
- final String javaScript = "return (window.angular != null) && "
- + "(angular.element(document).injector() != null) && "
- + "(angular.element(document).injector().get('$http').pendingRequests.length === 0)";
- boolean isLoaded = false;
- for (int i = 0; i < AbstractSearchPage.PAGELOAD_TIMEOUT_THRESHOLD && !isLoaded; i++) {
- final Object output = ((JavascriptExecutor) driver).executeScript(javaScript);
- isLoaded = Boolean.valueOf(output.toString());
- LOGGER.info(i+1 + ". waiting on angular to finish.");
- TimeUtil.sleepSeconds(1);
- }
- LOGGER.info("angular is done continuing...");
- }
-
-
}