function getSuccessfulBulkLoader(uris) {
  const bulkLoader = new BulkLoader(uris);
  /** @suppress {globalThis} suppression added to enable type checking */
  bulkLoader.load = function() {
    /** @suppress {globalThis} suppression added to enable type checking */
    const uris = this.helper_.getUris();
    for (let i = 0; i < uris.length; i++) {
      // This clock tick simulates a delay for processing every URI.
      clock.tick(DELAY_INTERVAL_BETWEEN_URI_REQUESTS);
      // This timeout determines how many ticks after the send request
      // all the URIs will complete loading. This delays the load of
      // the first uri and every subsequent uri by 15 ticks.
      setTimeout(
          goog.bind(this.onSuccess, this, i, uris[i]),
          DELAY_INTERVAL_FOR_URI_LOAD);
    }
  };

  /**
   * @suppress {strictMissingProperties,globalThis} suppression added to enable
   * type checking
   */
  bulkLoader.onSuccess = function(id, uri) {
    const xhrIo = {
      getResponseText: function() {
        return uri;
      },
      isSuccess: function() {
        return true;
      },
      dispose: function() {},
    };
    this.handleEvent_(id, new GoogEvent(EventType.COMPLETE, xhrIo));
  };

  const eventHandler = new EventHandler();
  eventHandler.listen(bulkLoader, EventType.SUCCESS, handleSuccess);
  eventHandler.listen(bulkLoader, EventType.ERROR, handleError);

  return bulkLoader;
}
Gets the successful bulkloader for the specified uris with some
modifications for testability.
<ul>
  <li> Added onSuccess methods to simulate success while loading uris.
  <li> The send function of the XhrManager used by the bulkloader
       calls the onSuccess function after a specified time interval.
</ul>
@param {Array<string>} uris The URIs.