testMultipleTriggers() {
    initCard();

    // Test second trigger when first one still pending
    showDelay = 500;
    hideDelay = 1000;
    testingEvents.fireMouseOverEvent(john, elsewhere);
    timer.tick(250);
    testingEvents.fireMouseOutEvent(john, james);
    testingEvents.fireMouseOverEvent(james, john);
    // First trigger should cancel because it isn't showing yet
    assertEquals('Should cancel first trigger', john, cancelledElement);
    timer.tick(300);
    assertFalse(card.isVisible());
    timer.tick(250);
    assertEquals('Should show second card', james, shownCard);
    assertTrue(card.isVisible());

    testingEvents.fireMouseOutEvent(james, john);
    testingEvents.fireMouseOverEvent(john, james);
    assertEquals(
        'Should still show second card', james, card.getAnchorElement());
    assertTrue(card.isVisible());

    shownCard = null;
    timer.tick(501);
    assertEquals('Should show first card again', john, shownCard);
    assertTrue(card.isVisible());

    // Test that cancelling while another is showing gives correct cancel
    // information
    cancelledElement = null;
    testingEvents.fireMouseOutEvent(john, james);
    testingEvents.fireMouseOverEvent(james, john);
    testingEvents.fireMouseOutEvent(james, elsewhere);
    assertEquals('Should cancel second card', james, cancelledElement);
  }
Verify that mousing over a second trigger before the first one shows
will correctly cancel the first and show the second.