More corrections to fix tests broken when using jQuery infrastructure
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/a5de2b69 Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/a5de2b69 Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/a5de2b69 Branch: refs/heads/master Commit: a5de2b69edc7be63328d056d94e933e16dfdcaf0 Parents: dd0a273 Author: Howard M. Lewis Ship <hls...@apache.org> Authored: Mon Nov 25 11:14:50 2013 -0800 Committer: Howard M. Lewis Ship <hls...@apache.org> Committed: Mon Nov 25 11:14:50 2013 -0800 ---------------------------------------------------------------------- .../META-INF/modules/app/test-support.coffee | 14 ++++++++++++++ .../integration/app1/components/Border.java | 4 ++-- .../META-INF/assets/ExpressionInJsFunction.js | 16 ++++++++++------ .../apache/tapestry5/test/SeleniumTestCase.java | 19 ++++++++++++++----- 4 files changed, 40 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/a5de2b69/tapestry-core/src/test/coffeescript/META-INF/modules/app/test-support.coffee ---------------------------------------------------------------------- diff --git a/tapestry-core/src/test/coffeescript/META-INF/modules/app/test-support.coffee b/tapestry-core/src/test/coffeescript/META-INF/modules/app/test-support.coffee new file mode 100644 index 0000000..ffbb583 --- /dev/null +++ b/tapestry-core/src/test/coffeescript/META-INF/modules/app/test-support.coffee @@ -0,0 +1,14 @@ +# Provide test support functions that can be addressed via Selenium. + +# TODO: Maybe move this to main, for external re-use? + +define ["t5/core/dom"], + (dom) -> + + exports = + findCSSMatchCount: (selector) -> dom.body.find(selector).length + doesNotExist: (elementId) -> (dom elementId) is null + + window.testSupport = exports + + return exports \ No newline at end of file http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/a5de2b69/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/components/Border.java ---------------------------------------------------------------------- diff --git a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/components/Border.java b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/components/Border.java index 404f46c..ef117a1 100644 --- a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/components/Border.java +++ b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/components/Border.java @@ -1,4 +1,4 @@ -// Copyright 2006, 2007, 2008, 2011 The Apache Software Foundation +// Copyright 2006-2013 The Apache Software Foundation // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -24,7 +24,7 @@ import org.apache.tapestry5.services.Request; * Here's a component with a template, including a t:body element. Really should rename this to "Layout" as that's the * T5 naming. */ -@Import(stylesheet = "context:css/app.css", module = "bootstrap/collapse") +@Import(stylesheet = "context:css/app.css", module = {"bootstrap/collapse", "app/test-support"}) public class Border { @Inject http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/a5de2b69/tapestry-core/src/test/resources/META-INF/assets/ExpressionInJsFunction.js ---------------------------------------------------------------------- diff --git a/tapestry-core/src/test/resources/META-INF/assets/ExpressionInJsFunction.js b/tapestry-core/src/test/resources/META-INF/assets/ExpressionInJsFunction.js index da27472..d4116c3 100644 --- a/tapestry-core/src/test/resources/META-INF/assets/ExpressionInJsFunction.js +++ b/tapestry-core/src/test/resources/META-INF/assets/ExpressionInJsFunction.js @@ -1,7 +1,11 @@ -function test_func() { - $('target').setValue("test1"); -} +require(["t5/core/dom"], function (dom) { + + window.test_func = function () { + dom('target').value("test1"); + }; + + window.test_func_with_map = function () { + dom('target').value("{key=test2}"); + }; +}); -function test_func_with_map() { - $('target').setValue("{key=test2}"); -} http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/a5de2b69/tapestry-test/src/main/java/org/apache/tapestry5/test/SeleniumTestCase.java ---------------------------------------------------------------------- diff --git a/tapestry-test/src/main/java/org/apache/tapestry5/test/SeleniumTestCase.java b/tapestry-test/src/main/java/org/apache/tapestry5/test/SeleniumTestCase.java index e2b6a90..db14829 100644 --- a/tapestry-test/src/main/java/org/apache/tapestry5/test/SeleniumTestCase.java +++ b/tapestry-test/src/main/java/org/apache/tapestry5/test/SeleniumTestCase.java @@ -1458,14 +1458,19 @@ public abstract class SeleniumTestCase extends Assert implements Selenium /** * Waits, up to the page load limit for an element (identified by a CSS rule) to exist * (it is not assured that the element will be visible). + * <p/> + * This implementation only works if the application provides a function onto the + * window object: "testSupport.findCSSMatchCount()" which accepts a CSS rule and returns the number + * of matching elements. * - * @param cssRule + * @param cssSelector * used to locate the element * @since 5.3 + * @deprecated Deprecated in 5.4 with no replacement */ - protected void waitForCSSSelectedElementToAppear(String cssRule) + protected void waitForCSSSelectedElementToAppear(String cssSelector) { - String condition = String.format("window.$$ && window.$$(\"%s\").size() > 0", cssRule); + String condition = String.format("window.testSupport.findCSSMatchCount(\"%s\") > 0", cssSelector); waitForCondition(condition, PAGE_LOAD_TIMEOUT); } @@ -1481,7 +1486,7 @@ public abstract class SeleniumTestCase extends Assert implements Selenium protected final void waitForElementToAppear(String elementId) { - String condition = String.format("window.$(\"%s\")", elementId); + String condition = String.format("window.getElementById(\"%s\")", elementId); waitForCondition(condition, PAGE_LOAD_TIMEOUT); } @@ -1489,13 +1494,17 @@ public abstract class SeleniumTestCase extends Assert implements Selenium /** * Waits for the element to be removed from the DOM. * + * <p/> + * This implementation depends on window being extended with testSupport.isNotVisible(). + * * @param elementId * client-side id of element * @since 5.3 + * @deprecated Deprecated in 5.4 with no replacement */ protected final void waitForElementToDisappear(String elementId) { - String condition = String.format("window.$(\"%s\").hide()", elementId); + String condition = String.format("window.testSupport.doesNotExist(\"%s\")", elementId); waitForCondition(condition, PAGE_LOAD_TIMEOUT); }