Guest
Public paste!

root

By: a guest | Jan 18th, 2010 | Syntax: None | Size: 7.15 KB | Hits: 60 | Expires: Never
Copy text to clipboard
  1. diff -r ab32e196c4fc jpoker/js/jquery.jpoker.js
  2. --- a/jpoker/js/jquery.jpoker.js        Fri Dec 11 21:22:32 2009 +0100
  3. +++ b/jpoker/js/jquery.jpoker.js        Mon Jan 18 21:11:19 2010 +0100
  4.  -631,6 +631,7 @@
  5.              TOURNEY_DETAILS: 'retrieving tourney details',
  6.              TABLE_JOIN: 'joining table',
  7.             TABLE_PICK: 'picking table',
  8. +           TABLE_QUIT: 'quitting table',
  9.             TOURNEY_REGISTER: 'updating tourney registration',
  10.             PERSONAL_INFO: 'getting personal info',
  11.             CREATE_ACCOUNT: 'creating account',
  12.  -802,14 +803,14 @@
  13.                  }
  14.              },
  15.  
  16. -            sendPacket: function(packet) {
  17. +            sendPacket: function(packet, callback) {
  18.                  if(this.pendingLongPoll) {
  19.                      if(jpoker.verbose > 0) {
  20.                          jpoker.message('sendPacket PacketPokerLongPollReturn');
  21.                      }
  22.                      this.sendPacketAjax({ type: 'PacketPokerLongPollReturn' }, 'direct');
  23.                  }
  24. -                this.sendPacketAjax(packet, 'queue');
  25. +                this.sendPacketAjax(packet, 'queue', callback);
  26.                  if(packet.type == 'PacketPokerLongPoll') {
  27.                      this.pendingLongPoll = true;
  28.                  }
  29.  -823,7 +824,7 @@
  30.                  this.queueIncoming(data);
  31.              },
  32.  
  33. -            sendPacketAjax: function(packet, mode) {
  34. +            sendPacketAjax: function(packet, mode, callback) {
  35.                  var $this = this;
  36.                  var json_data = JSON.stringify(packet);
  37.                  if(jpoker.verbose > 0) {
  38.  -847,6 +848,9 @@
  39.                          if(packet_type != 'PacketPokerLongPollReturn') {
  40.                              $this.receivePacket(data);
  41.                          }
  42. +                       if (callback !== undefined) {
  43. +                           callback(data, status);
  44. +                       }
  45.                      },
  46.                      error: function(xhr, status, error) {
  47.                          if(status == 'timeout') {
  48.  -1493,6 +1497,19 @@
  49.                 }
  50.              },
  51.  
  52. +            tableQuit: function(game_id) {
  53. +               if (this.loggedIn() === false) {
  54. +                   jpoker.dialog(_("User must be logged in"));
  55. +               } else {
  56. +                   this.queueRunning(function(server) {
  57. +                           server.setState(server.TABLE_QUIT);
  58. +                           server.sendPacket({ type: 'PacketPokerTableQuit', game_id: game_id }, function() {
  59. +                                   server.setState(server.RUNNING, 'PacketPokerTableQuit');
  60. +                               });
  61. +                       });
  62. +               }
  63. +            },
  64. +
  65.              bankroll: function(currency_serial) {
  66.                  var key = 'X' + currency_serial;
  67.                  if(this.loggedIn() && 'money' in this.userInfo && key in this.userInfo.money) {
  68.  -3379,13 +3396,11 @@
  69.                      var server = jpoker.getServer(url);
  70.                     var table = jpoker.getTable(url, game_id);
  71.                     if(server) {
  72. -                       server.sendPacket({ type: 'PacketPokerTableQuit', game_id: game_id });
  73. -                       server.setTimeout(function() {
  74. -                               server.queueRunning(function(server) {
  75. -                                       table.handler(server, game_id, { type: 'PacketPokerTableDestroy',
  76. -                                                   game_id: game_id });
  77. -                                   });
  78. -                           }, 1);
  79. +                       server.tableQuit(game_id);
  80. +                       server.queueRunning(function(server) {
  81. +                               table.handler(server, game_id, { type: 'PacketPokerTableDestroy',
  82. +                                           game_id: game_id });
  83. +                           });
  84.                     }
  85.                  }).hover(function(){
  86.                         $(this).addClass('hover');
  87.  -3764,7 +3779,7 @@
  88.             var server = jpoker.getServer(table.url);
  89.             server.tourneyRowClick(server, {name: '', game_id: table.tourney_serial});
  90.         },
  91. -       quit: function(table) {
  92. +       quit: function(table, packet) {
  93.         },
  94.         display_done: function(element) {
  95.         },
  96. diff -r ab32e196c4fc jpoker/js/test-jpoker.js
  97. --- a/jpoker/js/test-jpoker.js  Fri Dec 11 21:22:32 2009 +0100
  98. +++ b/jpoker/js/test-jpoker.js  Mon Jan 18 21:11:19 2010 +0100
  99.  -2063,6 +2063,55 @@
  100.         equals(server.callbacks[0][0], callback, 'tablePick callback still in place');
  101.      });
  102.  
  103. +
  104. +test("jpoker.server.tableQuit", function(){
  105. +        expect(3);
  106. +       stop();
  107. +       var player_serial = 42;
  108. +       var game_id = 100;
  109. +
  110. +        var PokerServer = function() {};
  111. +
  112. +        PokerServer.prototype = {
  113. +            outgoing: '[]',
  114. +
  115. +            handle: function(packet) { }
  116. +        };
  117. +
  118. +        ActiveXObject.prototype.server = new PokerServer();
  119. +
  120. +        var server = jpoker.serverCreate({ url: 'url' });
  121. +       server.serial = player_serial;
  122. +       var sendPacket = server.sendPacket;
  123. +        server.sendPacket = function(packet, callback) {
  124. +           if (packet.type == 'PacketPokerTableQuit') {               
  125. +               equals(packet.game_id, game_id);
  126. +               equals(server.state, server.TABLE_QUIT);
  127. +               callback();
  128. +               equals(server.state, server.RUNNING);
  129. +               server.queueRunning(start_and_cleanup);
  130. +           }
  131. +        };
  132. +        server.tableQuit(game_id);
  133. +    });
  134. +
  135. +test("jpoker.server.tableQuit not logged", function(){
  136. +        expect(1);
  137. +       stop();
  138. +
  139. +        var server = jpoker.serverCreate({ url: 'url' });
  140. +
  141. +        server.serial = 0;
  142. +
  143. +        var dialog = jpoker.dialog;
  144. +        jpoker.dialog = function(message) {
  145. +            equals(message.indexOf("must be logged in") >= 0, true, "should be logged");
  146. +            jpoker.dialog = dialog;
  147. +            start_and_cleanup();
  148. +        };    
  149. +        server.tableQuit(100);
  150. +    });
  151. +
  152.  test("jpoker.server.setInterval", function(){
  153.         expect(1);
  154.         stop();
  155.  -2544,6 +2593,26 @@
  156.          equals(self.connected(), true, "connected()");
  157.      });
  158.  
  159. +test("jpoker.connection:sendPacket callback", function(){
  160. +         expect(1);
  161. +        stop();
  162. +         var PokerServer = function() {};
  163. +
  164. +         PokerServer.prototype = {
  165. +             outgoing: '[]',
  166. +
  167. +             handle: function(packet) { }
  168. +         };
  169. +
  170. +         ActiveXObject.prototype.server = new PokerServer();
  171. +        
  172. +         var self = new jpoker.connection();
  173. +         self.sendPacket({ type: 'foo'}, function() {
  174. +                ok(true, 'callback called');
  175. +                start_and_cleanup();
  176. +            });
  177. +     });
  178. +
  179.  test("jpoker.connection:dequeueIncoming clearTimeout", function(){
  180.          expect(1);
  181.          var self = new jpoker.connection();
  182.  -5870,12 +5939,13 @@
  183.      });
  184.  
  185.  test("jpoker.plugins.table: PacketPokerTableQuit", function(){
  186. -        expect(6);
  187. -
  188. -        var server = jpoker.serverCreate({ url: 'url' });
  189. -        var place = $("#main");
  190. -        var id = 'jpoker' + jpoker.serial;
  191. -        var game_id = 100;
  192. +        expect(7);
  193. +
  194. +        var server = jpoker.serverCreate({ url: 'url' });
  195. +        var place = $("#main");
  196. +        var id = 'jpoker' + jpoker.serial;
  197. +        var game_id = 100;
  198. +       server.serial = 42;
  199.  
  200.          var table_packet = { id: game_id };
  201.          server.tables[game_id] = new jpoker.table(server, table_packet);
  202.  -5887,7 +5957,9 @@
  203.          server.sendPacket = function(packet) {
  204.              equals(packet.type, 'PacketPokerTableQuit');
  205.              equals(packet.game_id, game_id);
  206. +           equals(server.state, server.TABLE_QUIT);
  207.              sent = true;
  208. +           server.setState(server.RUNNING);
  209.          };
  210.          server.setTimeout = function(callback, delay) { callback(); };
  211.          equals($("#game_window" + id).size(), 1, 'game element exists');
  212.  -5977,7 +6049,6 @@
  213.        
  214.         place.jpoker('table', 'url', game_id);
  215.          table.handler(server, game_id, { type: 'PacketPokerTableMove', game_id: game_id });
  216. -        $("#quit" + id).click();
  217.         jpoker.plugins.table.callback.quit = callback;
  218.         start_and_cleanup();
  219.      });