changelog shortlog tags manifest raw

changeset: add jpoker.table.poll

changeset 754: f5dc072d2772
parent 753:177e5c2eff10
child 755:098397297de8
author: root@kun
date: Mon Aug 25 16:35:30 2008 +0000 (2 months ago)
files: jpoker/js/jquery.jpoker.js jpoker/js/test-jpoker.js
description: add jpoker.table.poll
--- a/jpoker/js/jquery.jpoker.js	Mon Aug 25 12:10:20 2008 +0000
+++ b/jpoker/js/jquery.jpoker.js	Mon Aug 25 16:35:30 2008 +0000
@@ -1359,6 +1359,7 @@
         this.url = server.url;
         this.init();
         server.registerHandler(packet.id, this.handler);
+	this.poll();
     };
 
     jpoker.table.defaults = {
@@ -1399,7 +1400,20 @@
                 this.dealer = -1;
                 this.position = -1;
                 this.state = 'end';
+		jpoker.getServer(this.url).clearTimeout(this.pollTimer);
+		this.pollTimer = -1;
+		this.pollFrequency = 1000;
             },
+
+	    poll: function() {
+		var server = jpoker.getServer(this.url);
+		server.sendPacket({type: 'PacketPokerPoll',
+			    game_id: this.game_id});
+		var $this  = this;
+		this.pollTimer = server.setTimeout(function() {
+			$this.poll();
+		    }, this.pollFrequency);
+	    },
 
             buyInLimits: function() {
                 var max = Math.min(this.buyIn.max, this.buyIn.bankroll);
--- a/jpoker/js/test-jpoker.js	Mon Aug 25 12:10:20 2008 +0000
+++ b/jpoker/js/test-jpoker.js	Mon Aug 25 16:35:30 2008 +0000
@@ -1660,6 +1660,39 @@
 	equals(tourney.is_tourney, true);
     });
 
+
+test("jpoker.table.poll", function() {
+	expect(6);
+	var server = jpoker.serverCreate({ url: 'url' });
+	server.sendPacket = function(packet) {
+	    equals(packet.type, "PacketPokerPoll");
+	};
+	var callback;
+	server.setTimeout = function(f) {
+	    callback = f;
+	    return 42;
+	};
+	var table = new jpoker.table(server, {"type": "PacketPokerTable", "id": 101, "betting_structure": "15-30-no-limit"});
+	equals(table.pollTimer, 42, 'pollTimer set');
+
+	server.clearTimeout = function(timer) {
+	    equals(timer, 42, "clearTimeout called by poll")
+	};
+	callback();
+
+	table.poll = function() {
+	    ok(true, "poll called by timeout callback");
+	};
+	callback();
+
+	server.clearTimeout = function(timer) {
+	    ok(true, "clearTimeout called by uninit")
+	};
+	table.uninit();
+	equals(table.pollTimer, -1, 'pollTimer cleared by uninit');
+	server.clearTimeout = function() {};
+	cleanup();
+    });
 
 test("jpoker.table.handler: PacketPokerState", function(){
         expect(1);