You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.8 KiB
86 lines
2.8 KiB
/* |
|
Copyright (c) 2004-2006, The Dojo Foundation |
|
All Rights Reserved. |
|
|
|
Licensed under the Academic Free License version 2.1 or above OR the |
|
modified BSD license. For more information on Dojo licensing, see: |
|
|
|
http://dojotoolkit.org/community/licensing.shtml |
|
*/ |
|
|
|
dojo.require("dojo.event.*"); |
|
|
|
function topicTestClass(){ |
|
this.testVal = 0; |
|
|
|
this.testPublish = function(){ |
|
this.testVal = 1; |
|
} |
|
|
|
this.testSubscribe = function(val){ |
|
this.testVal = (val) ? val : 2; |
|
} |
|
} |
|
|
|
function test_topic_registerPublisher(){ |
|
var tobj = new topicTestClass(); |
|
dojo.event.topic.registerPublisher("/test", tobj, "testPublish"); |
|
jum.assertEquals("test 10", "object", (typeof dojo.event.topic.topics["/test"])); |
|
// get a reference to the join-point object for our testPublish method. If |
|
// connection happened correctly, then the topic object will have requested |
|
// to be notified when an event is thrown. This shows up as an entry in the |
|
// "after" advice property of the join point ojbect. |
|
var mjp = dojo.event.MethodJoinPoint.getForMethod(tobj, "testPublish"); |
|
jum.assertEquals("test 20", 1, mjp.after.length); |
|
jum.assertTrue("test 20", (mjp.after[0] instanceof Array)); |
|
jum.assertEquals("test 30", 8, mjp.after[0].length); |
|
|
|
dojo.event.topic.subscribe("/test", tobj, "testSubscribe"); |
|
tobj.testPublish(); |
|
jum.assertEquals("test 40", 2, tobj.testVal); |
|
} |
|
|
|
function test_topic_getTopic(){ |
|
var test2topic = dojo.event.topic.getTopic("/test2"); |
|
jum.assertTrue("test 50", (test2topic instanceof dojo.event.topic.TopicImpl)); |
|
} |
|
|
|
function test_topic_publish(){ |
|
var tobj = new topicTestClass(); |
|
dojo.event.topic.subscribe("/test3", tobj, "testSubscribe"); |
|
dojo.event.topic.publish("/test3", "foo"); |
|
jum.assertEquals("test 60", "foo", tobj.testVal); |
|
} |
|
|
|
function test_topic_subscribe(){ |
|
var tobj = new topicTestClass(); |
|
dojo.event.topic.subscribe("/test4", tobj, "testSubscribe"); |
|
dojo.event.topic.publish("/test4", "bar"); |
|
jum.assertEquals("test 70", "bar", tobj.testVal); |
|
} |
|
|
|
function test_topic_unsubscribe(){ |
|
var tobj = new topicTestClass(); |
|
dojo.event.topic.subscribe("/test5", tobj, "testSubscribe"); |
|
dojo.event.topic.publish("/test5", "foo"); |
|
dojo.event.topic.unsubscribe("/test5", tobj, "testSubscribe"); |
|
dojo.event.topic.publish("/test5", "bar"); |
|
jum.assertEquals("test 80", "foo", tobj.testVal); |
|
} |
|
|
|
function test_topic_permissiveSubscribe(){ |
|
var foo = "bar"; |
|
var tf = function(){ foo = "baz"; }; |
|
dojo.event.topic.subscribe("/test6", tf); |
|
dojo.event.topic.publish("/test6", "bar"); |
|
jum.assertEquals("test 90", "baz", foo); |
|
} |
|
|
|
function test_topic_destroy(){ |
|
var tobj = new topicTestClass(); |
|
dojo.event.topic.subscribe("/test5", tobj, "testSubscribe"); |
|
dojo.event.topic.publish("/test5", "foo"); |
|
dojo.event.topic.destroy("/test5"); |
|
dojo.event.topic.publish("/test5", "bar"); |
|
jum.assertEquals("test 80", "foo", tobj.testVal); |
|
}
|
|
|