aboutsummaryrefslogtreecommitdiff
path: root/includes/js/dojo/tests/_base/connect.js
diff options
context:
space:
mode:
Diffstat (limited to 'includes/js/dojo/tests/_base/connect.js')
-rw-r--r--includes/js/dojo/tests/_base/connect.js225
1 files changed, 0 insertions, 225 deletions
diff --git a/includes/js/dojo/tests/_base/connect.js b/includes/js/dojo/tests/_base/connect.js
deleted file mode 100644
index 3761861..0000000
--- a/includes/js/dojo/tests/_base/connect.js
+++ /dev/null
@@ -1,225 +0,0 @@
-if(!dojo._hasResource["tests._base.connect"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
-dojo._hasResource["tests._base.connect"] = true;
-dojo.provide("tests._base.connect");
-
-hub = function(){
-}
-
-failures = 0;
-bad = function(){
- failures++;
-}
-
-good = function(){
-}
-
-// make 'iterations' connections to hub
-// roughly half of which will be to 'good' and
-// half to 'bad'
-// all connections to 'bad' are disconnected
-// test can then be performed on the values
-// 'failures' and 'successes'
-markAndSweepTest = function(iterations){
- var marked = [];
- // connections
- for(var i=0; i<iterations; i++){
- if(Math.random() < 0.5){
- marked.push(dojo.connect('hub', bad));
- }else{
- dojo.connect('hub', good);
- }
- }
- // Randomize markers (only if the count isn't very high)
- if(i < Math.pow(10, 4)){
- var rm = [ ];
- while(marked.length){
- var m = Math.floor(Math.random() * marked.length);
- rm.push(marked[m]);
- marked.splice(m, 1);
- }
- marked = rm;
- }
- for(var m=0; m<marked.length; m++){
- dojo.disconnect(marked[m]);
- }
- // test
- failures = 0;
- hub();
- // return number of disconnected functions that fired (should be 0)
- return failures;
-}
-
-markAndSweepSubscribersTest = function(iterations){
- var topic = "hubbins";
- var marked = [];
- // connections
- for(var i=0; i<iterations; i++){
- if(Math.random() < 0.5){
- marked.push(dojo.subscribe(topic, bad));
- }else{
- dojo.subscribe(topic, good);
- }
- }
- // Randomize markers (only if the count isn't very high)
- if(i < Math.pow(10, 4)){
- var rm = [ ];
- while(marked.length){
- var m = Math.floor(Math.random() * marked.length);
- rm.push(marked[m]);
- marked.splice(m, 1);
- }
- marked = rm;
- }
- for(var m=0; m<marked.length; m++){
- dojo.unsubscribe(marked[m]);
- }
- // test
- failures = 0;
- dojo.publish(topic);
- // return number of unsubscribed functions that fired (should be 0)
- return failures;
-}
-
-tests.register("tests._base.connect",
- [
- function smokeTest(t){
- // foo sets ok to false
- var ok = false;
- var foo = { "foo": function(){ ok=false; } };
- // connected function sets ok to true
- dojo.connect(foo, "foo", null, function(){ ok=true; });
- foo.foo();
- t.is(true, ok);
- },
- function basicTest(t) {
- var out = '';
- var obj = {
- foo: function() {
- out += 'foo';
- },
- bar: function() {
- out += 'bar';
- },
- baz: function() {
- out += 'baz';
- }
- };
- //
- var foobar = dojo.connect(obj, "foo", obj, "bar");
- dojo.connect(obj, "bar", obj, "baz");
- //
- out = '';
- obj.foo();
- t.is('foobarbaz', out);
- //
- out = '';
- obj.bar();
- t.is('barbaz', out);
- //
- out = '';
- obj.baz();
- t.is('baz', out);
- //
- dojo.connect(obj, "foo", obj, "baz");
- dojo.disconnect(foobar);
- //
- out = '';
- obj.foo();
- t.is('foobaz', out);
- //
- out = '';
- obj.bar();
- t.is('barbaz', out);
- //
- out = '';
- obj.baz();
- t.is('baz', out);
- },
- function hubConnectDisconnect1000(t){
- t.is(0, markAndSweepTest(1000));
- },
- function args4Test(t){
- // standard 4 args test
- var ok, obj = { foo: function(){ok=false;}, bar: function(){ok=true} };
- dojo.connect(obj, "foo", obj, "bar");
- obj.foo();
- t.is(true, ok);
- },
- function args3Test(t){
- // make some globals
- var ok;
- dojo.global["gFoo"] = function(){ok=false;};
- dojo.global["gOk"] = function(){ok=true;};
- // 3 arg shorthand for globals (a)
- var link = dojo.connect("gFoo", null, "gOk");
- gFoo();
- dojo.disconnect(link);
- t.is(true, ok);
- // 3 arg shorthand for globals (b)
- link = dojo.connect(null, "gFoo", "gOk");
- gFoo();
- dojo.disconnect(link);
- t.is(true, ok);
- // verify disconnections
- gFoo();
- t.is(false, ok);
- },
- function args2Test(t){
- // make some globals
- var ok;
- dojo.global["gFoo"] = function(){ok=false;};
- dojo.global["gOk"] = function(){ok=true;};
- // 2 arg shorthand for globals
- var link = dojo.connect("gFoo", "gOk");
- gFoo();
- dojo.disconnect(link);
- t.is(true, ok);
- // 2 arg shorthand for globals, alternate scoping
- link = dojo.connect("gFoo", gOk);
- gFoo();
- dojo.disconnect(link);
- t.is(true, ok);
- },
- function scopeTest1(t){
- var foo = { ok: true, foo: function(){this.ok=false;} };
- var bar = { ok: false, bar: function(){this.ok=true} };
- // link foo.foo to bar.bar with natural scope
- var link = dojo.connect(foo, "foo", bar, "bar");
- foo.foo();
- t.is(false, foo.ok);
- t.is(true, bar.ok);
- },
- function scopeTest2(t){
- var foo = { ok: true, foo: function(){this.ok=false;} };
- var bar = { ok: false, bar: function(){this.ok=true} };
- // link foo.foo to bar.bar such that scope is always 'foo'
- var link = dojo.connect(foo, "foo", bar.bar);
- foo.foo();
- t.is(true, foo.ok);
- t.is(false, bar.ok);
- },
- function connectPublisher(t){
- var foo = { inc: 0, foo: function(){ this.inc++; } };
- var bar = { inc: 0, bar: function(){ this.inc++; } };
- var c1h = dojo.connectPublisher("/blah", foo, "foo");
- var c2h = dojo.connectPublisher("/blah", foo, "foo");
- dojo.subscribe("/blah", bar, "bar");
- foo.foo();
- t.is(1, foo.inc);
- t.is(2, bar.inc);
- dojo.disconnect(c1h);
- foo.foo();
- t.is(2, foo.inc);
- t.is(3, bar.inc);
- dojo.disconnect(c2h);
- foo.foo();
- t.is(3, foo.inc);
- t.is(3, bar.inc);
- },
- function publishSubscribe1000(t){
- t.is(markAndSweepSubscribersTest(1000), 0);
- }
- ]
-);
-
-}