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.
87 lines
2.8 KiB
87 lines
2.8 KiB
2 years ago
|
/*
|
||
|
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);
|
||
|
}
|