static async testFails(manifestText, expectedError, config) {
    const manifestData = shaka.util.StringUtils.toUTF8(manifestText);
    const dashParser = shaka.test.Dash.makeDashParser();

    if (config) {
      dashParser.configure(config);
    }

    const networkingEngine = new shaka.test.FakeNetworkingEngine()
        .setResponseValue('dummy://foo', manifestData);

    const playerInterface = {
      networkingEngine: networkingEngine,
      modifyManifestRequest: (request, manifestInfo) => {},
      modifySegmentRequest: (request, segmentInfo) => {},
      filter: () => {},
      makeTextStreamsForClosedCaptions: (manifest) => {},
      onTimelineRegionAdded: fail,  // Should not have any EventStream elements.
      onEvent: fail,
      onError: fail,
      isLowLatencyMode: () => false,
      updateDuration: () => {},
      newDrmInfo: (stream) => {},
      onManifestUpdated: () => {},
      getBandwidthEstimate: () => 1e6,
      onMetadata: () => {},
      disableStream: (stream) => {},
      addFont: (name, url) => {},
    };

    try {
      const p = dashParser.start('dummy://foo', playerInterface);
      await expectAsync(p).toBeRejectedWith(
          shaka.test.Util.jasmineError(expectedError));
    } finally {
      dashParser.stop();
    }
  }
Tests that the DASH manifest parser fails to parse the given manifest.

@param {string} manifestText
@param {!shaka.util.Error} expectedError
@param {?shaka.extern.ManifestConfiguration=} config
@return {!Promise}