You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2012/08/12 03:45:37 UTC
[4/4] git commit: Passing an unknown element id to core/spi.wrap
returns null, rather than throwing an exception
Passing an unknown element id to core/spi.wrap returns null, rather than throwing an exception
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/05bded12
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/05bded12
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/05bded12
Branch: refs/heads/5.4-js-rewrite
Commit: 05bded126e0efc58f7ef4cd85ceed4f9349a7e39
Parents: 48127ff
Author: Howard M. Lewis Ship <hl...@apache.org>
Authored: Fri Aug 10 18:01:23 2012 -0700
Committer: Howard M. Lewis Ship <hl...@apache.org>
Committed: Fri Aug 10 18:01:23 2012 -0700
----------------------------------------------------------------------
.../coffeescript/META-INF/modules/core/spi.coffee | 21 ++++++++++-----
tapestry-core/src/test/app1/JavaScriptTests.tml | 7 +++++
.../integration/app1/pages/test-pubsub.coffee | 10 ++-----
.../integration/app1/pages/test-spi.coffee | 12 ++++++++
.../integration/app1/pages/JavaScriptTests.java | 2 +-
5 files changed, 37 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/05bded12/tapestry-core/src/main/coffeescript/META-INF/modules/core/spi.coffee
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/coffeescript/META-INF/modules/core/spi.coffee b/tapestry-core/src/main/coffeescript/META-INF/modules/core/spi.coffee
index 5f9dfdc..a7a946b 100644
--- a/tapestry-core/src/main/coffeescript/META-INF/modules/core/spi.coffee
+++ b/tapestry-core/src/main/coffeescript/META-INF/modules/core/spi.coffee
@@ -145,12 +145,12 @@ define ["_", "prototype"], (_) ->
# Exposes the original element as property `element`.
class ElementWrapper
- constructor: (element) ->
- @element = $(element)
+ # Passed the DOM Element
+ constructor: (@element) ->
- # Hides the wrapped element, setting its display to 'none'.
- #
- # Returns this ElementWrapper.
+ # Hides the wrapped element, setting its display to 'none'.
+ #
+ # Returns this ElementWrapper.
hide: ->
@element.hide()
this
@@ -406,10 +406,17 @@ define ["_", "prototype"], (_) ->
return new EventHandler(elements, (split events), match, handler)
# Returns an ElementWrapper for the provided DOM element that includes key behaviors:
+ #
# * element - a DOM element, or the window, or the unique id of a DOM element
- # Returns the ElementWrapper.
+ #
+ # Returns the ElementWrapper, or null if no DOM element with the given id exists.
wrap: (element) ->
- throw new Error("Attempt to wrap a null DOM element") unless element
+ if _.isString element
+ element = $ element
+ return null unless element
+ else
+ throw new Error("Attempt to wrap a null DOM element") unless element
+
new ElementWrapper element
# Returns a wrapped version of the document.body element. Care must be take to not invoke this function before the
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/05bded12/tapestry-core/src/test/app1/JavaScriptTests.tml
----------------------------------------------------------------------
diff --git a/tapestry-core/src/test/app1/JavaScriptTests.tml b/tapestry-core/src/test/app1/JavaScriptTests.tml
index fe0ba07..c2aa34e 100644
--- a/tapestry-core/src/test/app1/JavaScriptTests.tml
+++ b/tapestry-core/src/test/app1/JavaScriptTests.tml
@@ -12,5 +12,12 @@
<t:pagelink page="index">back to index</t:pagelink>
</li>
</ul>
+
+
+<!-- The rest are test elements for the core/spi tests, etc. -->
+
+<div id="spi-test1"/>
+
+
</body>
</html>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/05bded12/tapestry-core/src/test/coffeescript/org/apache/tapestry5/integration/app1/pages/test-pubsub.coffee
----------------------------------------------------------------------
diff --git a/tapestry-core/src/test/coffeescript/org/apache/tapestry5/integration/app1/pages/test-pubsub.coffee b/tapestry-core/src/test/coffeescript/org/apache/tapestry5/integration/app1/pages/test-pubsub.coffee
index b7b6e62..c0e3b71 100644
--- a/tapestry-core/src/test/coffeescript/org/apache/tapestry5/integration/app1/pages/test-pubsub.coffee
+++ b/tapestry-core/src/test/coffeescript/org/apache/tapestry5/integration/app1/pages/test-pubsub.coffee
@@ -1,6 +1,6 @@
-module "PubSub"
-
require ["core/pubsub"], (pubsub) ->
+ module "core/pubsub"
+
test "export aliases", ->
ok pubsub.on is pubsub.respondTo, "on and respondTo"
ok pubsub.off is pubsub.stopResponding, "off and stopResponding"
@@ -74,7 +74,6 @@ require ["core/pubsub"], (pubsub) ->
deepEqual log, ["b:beta-second"], "only 'beta' responder invoked after removal"
test "respondFirst is invoked first", ->
-
log = []
pubsub.on "stim", -> log.push "alpha"
@@ -82,7 +81,4 @@ require ["core/pubsub"], (pubsub) ->
pubsub.fire "stim"
- deepEqual log, ["bravo", "alpha"], "first responder invoked first"
-
-
-
+ deepEqual log, ["bravo", "alpha"], "first responder invoked first"
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/05bded12/tapestry-core/src/test/coffeescript/org/apache/tapestry5/integration/app1/pages/test-spi.coffee
----------------------------------------------------------------------
diff --git a/tapestry-core/src/test/coffeescript/org/apache/tapestry5/integration/app1/pages/test-spi.coffee b/tapestry-core/src/test/coffeescript/org/apache/tapestry5/integration/app1/pages/test-spi.coffee
new file mode 100644
index 0000000..9b88524
--- /dev/null
+++ b/tapestry-core/src/test/coffeescript/org/apache/tapestry5/integration/app1/pages/test-spi.coffee
@@ -0,0 +1,12 @@
+require ["core/spi"], (spi) ->
+ module "core/spi"
+
+ test "get wrapped element by id", ->
+ e = spi.wrap "spi-test1"
+
+ ok e != null, "element found and wrapped"
+
+ test "get wrapped element by unknown id is null", ->
+ e = spi.wrap "spi-does-not-exist-element"
+
+ ok e == null, "element not found and null"
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/05bded12/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/JavaScriptTests.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/JavaScriptTests.java b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/JavaScriptTests.java
index 1568180..9c98348 100644
--- a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/JavaScriptTests.java
+++ b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/JavaScriptTests.java
@@ -3,7 +3,7 @@ package org.apache.tapestry5.integration.app1.pages;
import org.apache.tapestry5.annotations.Import;
@Import(library = {
- "context:qunit/qunit-1.9.0.js", "test-pubsub.js"}, stylesheet = "context:qunit/qunit-1.9.0.css")
+ "context:qunit/qunit-1.9.0.js", "test-pubsub.js", "test-spi.js"}, stylesheet = "context:qunit/qunit-1.9.0.css")
public class JavaScriptTests
{
}