Guest
Public paste!

root

By: a guest | Jan 18th, 2010 | Syntax: None | Size: 6.00 KB | Hits: 76 | 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 19:24:05 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.  -1493,6 +1494,24 @@
  13.                 }
  14.              },
  15.  
  16. +            tableQuit: function(game_id) {
  17. +               if (this.loggedIn() === false) {
  18. +                   jpoker.dialog(_("User must be logged in"));
  19. +               } else {
  20. +                   this.queueRunning(function(server) {
  21. +                           server.setState(server.TABLE_QUIT);
  22. +                           server.sendPacket({ type: 'PacketPokerTableQuit', game_id: game_id });
  23. +                           server.registerHandler(game_id, function(server, unused_game_id, packet) {
  24. +                                   if ((packet.type == 'PacketPokerPlayerLeave')  && (packet.serial == server.serial)) {
  25. +                                       server.setState(server.RUNNING, 'PacketPokerPlayerLeave');
  26. +                                       return false;
  27. +                                   }
  28. +                                   return true;
  29. +                               });
  30. +                       });
  31. +               }
  32. +            },
  33. +
  34.              bankroll: function(currency_serial) {
  35.                  var key = 'X' + currency_serial;
  36.                  if(this.loggedIn() && 'money' in this.userInfo && key in this.userInfo.money) {
  37.  -3379,13 +3398,11 @@
  38.                      var server = jpoker.getServer(url);
  39.                     var table = jpoker.getTable(url, game_id);
  40.                     if(server) {
  41. -                       server.sendPacket({ type: 'PacketPokerTableQuit', game_id: game_id });
  42. -                       server.setTimeout(function() {
  43. -                               server.queueRunning(function(server) {
  44. -                                       table.handler(server, game_id, { type: 'PacketPokerTableDestroy',
  45. -                                                   game_id: game_id });
  46. -                                   });
  47. -                           }, 1);
  48. +                       server.tableQuit(game_id);
  49. +                       server.queueRunning(function(server) {
  50. +                               table.handler(server, game_id, { type: 'PacketPokerTableDestroy',
  51. +                                           game_id: game_id });
  52. +                           });
  53.                     }
  54.                  }).hover(function(){
  55.                         $(this).addClass('hover');
  56.  -3764,7 +3781,7 @@
  57.             var server = jpoker.getServer(table.url);
  58.             server.tourneyRowClick(server, {name: '', game_id: table.tourney_serial});
  59.         },
  60. -       quit: function(table) {
  61. +       quit: function(table, packet) {
  62.         },
  63.         display_done: function(element) {
  64.         },
  65. diff -r ab32e196c4fc jpoker/js/test-jpoker.js
  66. --- a/jpoker/js/test-jpoker.js  Fri Dec 11 21:22:32 2009 +0100
  67. +++ b/jpoker/js/test-jpoker.js  Mon Jan 18 19:24:05 2010 +0100
  68.  -2063,6 +2063,63 @@
  69.         equals(server.callbacks[0][0], callback, 'tablePick callback still in place');
  70.      });
  71.  
  72. +
  73. +test("jpoker.server.tableQuit", function(){
  74. +        expect(1);
  75. +       stop();
  76. +       var player_serial = 42;
  77. +       var game_id = 100;
  78. +       var PLAYER_LEAVE_PACKET = {"type": "PacketPokerPlayerLeave", "serial": player_serial, "game_id": game_id};
  79. +
  80. +       var string = 'dummy';
  81. +        var server = jpoker.serverCreate({ url: 'url' });
  82. +       server.serial = player_serial;
  83. +       var sendPacket = server.sendPacket;
  84. +        server.sendPacket = function(packet) {
  85. +           if (packet.type == 'PacketPokerTableQuit') {               
  86. +               equals(packet.game_id, game_id);
  87. +               server.queueIncoming([PLAYER_LEAVE_PACKET]);
  88. +               server.queueRunning(start_and_cleanup);
  89. +           }
  90. +        };
  91. +        server.tableQuit(game_id);
  92. +    });
  93. +
  94. +test("jpoker.server.tableQuit not logged", function(){
  95. +        expect(1);
  96. +       stop();
  97. +
  98. +        var server = jpoker.serverCreate({ url: 'url' });
  99. +
  100. +        server.serial = 0;
  101. +
  102. +        var dialog = jpoker.dialog;
  103. +        jpoker.dialog = function(message) {
  104. +            equals(message.indexOf("must be logged in") >= 0, true, "should be logged");
  105. +            jpoker.dialog = dialog;
  106. +            start_and_cleanup();
  107. +        };    
  108. +        server.tableQuit(100);
  109. +    });
  110. +
  111. +test("jpoker.server.tableQuit waiting", function(){
  112. +        expect(4);
  113. +      
  114. +        var server = jpoker.serverCreate({ url: 'url' });
  115. +       server.serial = 42;
  116. +       var game_id = 100;
  117. +       server.callbacks[0] = [];
  118. +       server.tablePick(game_id);
  119. +       equals(server.callbacks[0].length, 1, 'tablePick callbacks[0] registered');
  120. +       var callback = server.callbacks[0][0];
  121. +       server.notify(0, {type: 'PacketPokerPlayerLeave', serial: server.serial, game_id: game_id+1});
  122. +       equals(server.callbacks[0][0], callback, 'tablePick callback still in place');
  123. +       server.notify(0, {type: 'PacketPokerPlayerLeave', serial: server.serial+1, game_id: game_id});
  124. +       equals(server.callbacks[0][0], callback, 'tablePick callback still in place');
  125. +       server.notify(0, {type: 'PacketPokerPlayerLeave', serial: server.serial, game_id: game_id}); // no reason: TablePicker
  126. +       equals(server.callbacks[0][0], callback, 'tablePick callback still in place');
  127. +    });
  128. +
  129.  test("jpoker.server.setInterval", function(){
  130.         expect(1);
  131.         stop();
  132.  -5870,12 +5927,13 @@
  133.      });
  134.  
  135.  test("jpoker.plugins.table: PacketPokerTableQuit", function(){
  136. -        expect(6);
  137. -
  138. -        var server = jpoker.serverCreate({ url: 'url' });
  139. -        var place = $("#main");
  140. -        var id = 'jpoker' + jpoker.serial;
  141. -        var game_id = 100;
  142. +        expect(7);
  143. +
  144. +        var server = jpoker.serverCreate({ url: 'url' });
  145. +        var place = $("#main");
  146. +        var id = 'jpoker' + jpoker.serial;
  147. +        var game_id = 100;
  148. +       server.serial = 42;
  149.  
  150.          var table_packet = { id: game_id };
  151.          server.tables[game_id] = new jpoker.table(server, table_packet);
  152.  -5887,7 +5945,9 @@
  153.          server.sendPacket = function(packet) {
  154.              equals(packet.type, 'PacketPokerTableQuit');
  155.              equals(packet.game_id, game_id);
  156. +           equals(server.state, server.TABLE_QUIT);
  157.              sent = true;
  158. +           server.setState(server.RUNNING);
  159.          };
  160.          server.setTimeout = function(callback, delay) { callback(); };
  161.          equals($("#game_window" + id).size(), 1, 'game element exists');
  162.  -5977,7 +6037,6 @@
  163.        
  164.         place.jpoker('table', 'url', game_id);
  165.          table.handler(server, game_id, { type: 'PacketPokerTableMove', game_id: game_id });
  166. -        $("#quit" + id).click();
  167.         jpoker.plugins.table.callback.quit = callback;
  168.         start_and_cleanup();
  169.      });