SuperX-Kernmodul
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

/*
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);
}