testImagesAddedAfterStart() {
    // Use synchronous image loading.
    makeLoaderSynchronous(loader);

    // Add another image once the first images finishes loading.
    events.listenOnce(loader, EventType.LOAD, () => {
      loader.addImage('extra_image', 'extra_image.gif');
    });

    // Keep track of the total # of image loads.
    const loadRecordFn = recordFunction();
    events.listen(loader, EventType.LOAD, loadRecordFn);

    // Keep track of how many times COMPLETE was dispatched.
    const completeRecordFn = recordFunction();
    events.listen(loader, NetEventType.COMPLETE, completeRecordFn);

    // Start testing.
    loader.start();
    assertEquals(
        'COMPLETE event should not have been dispatched yet: An image was ' +
            'added after the initial batch was started.',
        0, completeRecordFn.getCallCount());
    assertEquals(
        'Just the test images should have loaded',
        googObject.getCount(TEST_IMAGES), loadRecordFn.getCallCount());

    loader.start();
    assertEquals(
        'COMPLETE should have been dispatched once.', 1,
        completeRecordFn.getCallCount());
    assertEquals(
        'All images should have been loaded',
        googObject.getCount(TEST_IMAGES) + 1, loadRecordFn.getCallCount());
  }
Verifies that if an additional image is added after start() was called, but
before COMPLETE was dispatched, no COMPLETE event is sent.  Verifies
COMPLETE is finally sent when .start() is called again and all images have
now completed loading.