- diff -r ab32e196c4fc jpoker/js/jquery.jpoker.js
- --- a/jpoker/js/jquery.jpoker.js Fri Dec 11 21:22:32 2009 +0100
- +++ b/jpoker/js/jquery.jpoker.js Mon Jan 18 19:24:05 2010 +0100
- -631,6 +631,7 @@
- TOURNEY_DETAILS: 'retrieving tourney details',
- TABLE_JOIN: 'joining table',
- TABLE_PICK: 'picking table',
- + TABLE_QUIT: 'quitting table',
- TOURNEY_REGISTER: 'updating tourney registration',
- PERSONAL_INFO: 'getting personal info',
- CREATE_ACCOUNT: 'creating account',
- -1493,6 +1494,24 @@
- }
- },
- + tableQuit: function(game_id) {
- + if (this.loggedIn() === false) {
- + jpoker.dialog(_("User must be logged in"));
- + } else {
- + this.queueRunning(function(server) {
- + server.setState(server.TABLE_QUIT);
- + server.sendPacket({ type: 'PacketPokerTableQuit', game_id: game_id });
- + server.registerHandler(game_id, function(server, unused_game_id, packet) {
- + if ((packet.type == 'PacketPokerPlayerLeave') && (packet.serial == server.serial)) {
- + server.setState(server.RUNNING, 'PacketPokerPlayerLeave');
- + return false;
- + }
- + return true;
- + });
- + });
- + }
- + },
- +
- bankroll: function(currency_serial) {
- var key = 'X' + currency_serial;
- if(this.loggedIn() && 'money' in this.userInfo && key in this.userInfo.money) {
- -3379,13 +3398,11 @@
- var server = jpoker.getServer(url);
- var table = jpoker.getTable(url, game_id);
- if(server) {
- - server.sendPacket({ type: 'PacketPokerTableQuit', game_id: game_id });
- - server.setTimeout(function() {
- - server.queueRunning(function(server) {
- - table.handler(server, game_id, { type: 'PacketPokerTableDestroy',
- - game_id: game_id });
- - });
- - }, 1);
- + server.tableQuit(game_id);
- + server.queueRunning(function(server) {
- + table.handler(server, game_id, { type: 'PacketPokerTableDestroy',
- + game_id: game_id });
- + });
- }
- }).hover(function(){
- $(this).addClass('hover');
- -3764,7 +3781,7 @@
- var server = jpoker.getServer(table.url);
- server.tourneyRowClick(server, {name: '', game_id: table.tourney_serial});
- },
- - quit: function(table) {
- + quit: function(table, packet) {
- },
- display_done: function(element) {
- },
- diff -r ab32e196c4fc jpoker/js/test-jpoker.js
- --- a/jpoker/js/test-jpoker.js Fri Dec 11 21:22:32 2009 +0100
- +++ b/jpoker/js/test-jpoker.js Mon Jan 18 19:24:05 2010 +0100
- -2063,6 +2063,63 @@
- equals(server.callbacks[0][0], callback, 'tablePick callback still in place');
- });
- +
- +test("jpoker.server.tableQuit", function(){
- + expect(1);
- + stop();
- + var player_serial = 42;
- + var game_id = 100;
- + var PLAYER_LEAVE_PACKET = {"type": "PacketPokerPlayerLeave", "serial": player_serial, "game_id": game_id};
- +
- + var string = 'dummy';
- + var server = jpoker.serverCreate({ url: 'url' });
- + server.serial = player_serial;
- + var sendPacket = server.sendPacket;
- + server.sendPacket = function(packet) {
- + if (packet.type == 'PacketPokerTableQuit') {
- + equals(packet.game_id, game_id);
- + server.queueIncoming([PLAYER_LEAVE_PACKET]);
- + server.queueRunning(start_and_cleanup);
- + }
- + };
- + server.tableQuit(game_id);
- + });
- +
- +test("jpoker.server.tableQuit not logged", function(){
- + expect(1);
- + stop();
- +
- + var server = jpoker.serverCreate({ url: 'url' });
- +
- + server.serial = 0;
- +
- + var dialog = jpoker.dialog;
- + jpoker.dialog = function(message) {
- + equals(message.indexOf("must be logged in") >= 0, true, "should be logged");
- + jpoker.dialog = dialog;
- + start_and_cleanup();
- + };
- + server.tableQuit(100);
- + });
- +
- +test("jpoker.server.tableQuit waiting", function(){
- + expect(4);
- +
- + var server = jpoker.serverCreate({ url: 'url' });
- + server.serial = 42;
- + var game_id = 100;
- + server.callbacks[0] = [];
- + server.tablePick(game_id);
- + equals(server.callbacks[0].length, 1, 'tablePick callbacks[0] registered');
- + var callback = server.callbacks[0][0];
- + server.notify(0, {type: 'PacketPokerPlayerLeave', serial: server.serial, game_id: game_id+1});
- + equals(server.callbacks[0][0], callback, 'tablePick callback still in place');
- + server.notify(0, {type: 'PacketPokerPlayerLeave', serial: server.serial+1, game_id: game_id});
- + equals(server.callbacks[0][0], callback, 'tablePick callback still in place');
- + server.notify(0, {type: 'PacketPokerPlayerLeave', serial: server.serial, game_id: game_id}); // no reason: TablePicker
- + equals(server.callbacks[0][0], callback, 'tablePick callback still in place');
- + });
- +
- test("jpoker.server.setInterval", function(){
- expect(1);
- stop();
- -5870,12 +5927,13 @@
- });
- test("jpoker.plugins.table: PacketPokerTableQuit", function(){
- - expect(6);
- -
- - var server = jpoker.serverCreate({ url: 'url' });
- - var place = $("#main");
- - var id = 'jpoker' + jpoker.serial;
- - var game_id = 100;
- + expect(7);
- +
- + var server = jpoker.serverCreate({ url: 'url' });
- + var place = $("#main");
- + var id = 'jpoker' + jpoker.serial;
- + var game_id = 100;
- + server.serial = 42;
- var table_packet = { id: game_id };
- server.tables[game_id] = new jpoker.table(server, table_packet);
- -5887,7 +5945,9 @@
- server.sendPacket = function(packet) {
- equals(packet.type, 'PacketPokerTableQuit');
- equals(packet.game_id, game_id);
- + equals(server.state, server.TABLE_QUIT);
- sent = true;
- + server.setState(server.RUNNING);
- };
- server.setTimeout = function(callback, delay) { callback(); };
- equals($("#game_window" + id).size(), 1, 'game element exists');
- -5977,7 +6037,6 @@
- place.jpoker('table', 'url', game_id);
- table.handler(server, game_id, { type: 'PacketPokerTableMove', game_id: game_id });
- - $("#quit" + id).click();
- jpoker.plugins.table.callback.quit = callback;
- start_and_cleanup();
- });
