public void testGetNumConnectedClients() {
    final long timeout = System.currentTimeMillis() + 15;
    JUnitMessageQueue queue = createQueue(15, 1, 1);
    assertEquals(0, queue.getNumConnectedClients());

    // Add some clients in a few ways.
    {
      queue.getTestBlock(createClientInfo(0, "ie6"), 0, timeout);
      queue.reportFatalLaunch(createClientInfo(1, "gecko"), null);
      queue.reportResults(createClientInfo(2, "safari"), createTestResults(0));
      assertEquals(3, queue.getNumConnectedClients());
    }

    // Add duplicate clients.
    {
      queue.getTestBlock(createClientInfo(3, "ie6"), 0, timeout);
      queue.reportFatalLaunch(createClientInfo(3, "ie6"), null);
      queue.reportResults(createClientInfo(4, "safari"), createTestResults(0));
      assertEquals(5, queue.getNumConnectedClients());
    }

    // Add existing clients.
    {
      queue.getTestBlock(createClientInfo(0, "ie6"), 0, timeout);
      queue.reportFatalLaunch(createClientInfo(1, "gecko"), null);
      queue.reportResults(createClientInfo(2, "safari"), createTestResults(0));
      assertEquals(5, queue.getNumConnectedClients());
    }
  }
  public void testNewClients() {
    final long timeout = System.currentTimeMillis() + 15;
    JUnitMessageQueue queue = createQueue(15, 1, 1);
    assertEquals(0, queue.getNewClients().length);

    // Add some clients in a few ways.
    {
      queue.getTestBlock(createClientInfo(0, "ie6"), 0, timeout);
      queue.reportFatalLaunch(createClientInfo(1, "gecko"), null);
      queue.reportResults(createClientInfo(2, "safari"), createTestResults(0));
      assertSimilar(new String[] {"desc0", "desc1", "desc2"}, queue.getNewClients());
      assertEquals(0, queue.getNewClients().length);
    }

    // Add duplicate clients.
    {
      queue.getTestBlock(createClientInfo(3, "ie6"), 0, timeout);
      queue.reportFatalLaunch(createClientInfo(3, "ie6"), null);
      queue.reportResults(createClientInfo(4, "safari"), createTestResults(0));
      queue.getTestBlock(createClientInfo(3, "ie6"), 0, timeout);
      assertSimilar(new String[] {"desc3", "desc4"}, queue.getNewClients());
      assertEquals(0, queue.getNewClients().length);
    }

    // Add existing clients.
    {
      queue.getTestBlock(createClientInfo(0, "ie6"), 0, timeout);
      queue.reportFatalLaunch(createClientInfo(1, "gecko"), null);
      queue.reportResults(createClientInfo(2, "safari"), createTestResults(0));
      assertEquals(0, queue.getNewClients().length);
    }
  }