function initScenarioAdapter()

in jstd-scenario-adapter.js [115:146]


function initScenarioAdapter(jstestdriver, initScenarioAndRun, config) {
  if (jstestdriver) {
    // create and register ScenarioPlugin
    jstestdriver.pluginRegistrar.register(plugin);
    plugin.runScenario = initScenarioAndRun;

    /**
     * HACK (angular.scenario.Application.navigateTo)
     *
     * We need to navigate to relative urls when running from browser (without JSTD),
     * because we want to allow running scenario tests without creating its own virtual host.
     * For example: http://angular.local/build/docs/docs-scenario.html
     *
     * On the other hand, when running with JSTD, we need to navigate to absolute urls,
     * because of JSTD proxy. (proxy, because of same domain policy)
     *
     * So this hack is applied only if running with JSTD and change all relative urls to absolute.
     */
    var appProto = angular.scenario.Application.prototype,
        navigateTo = appProto.navigateTo,
        relativeUrlPrefix = config && config.relativeUrlPrefix || '/';

    appProto.navigateTo = function(url, loadFn, errorFn) {
      if (url.charAt(0) != '/' && url.charAt(0) != '#' &&
          url != 'about:blank' && !url.match(/^https?/)) {
        url = relativeUrlPrefix + url;
      }

      return navigateTo.call(this, url, loadFn, errorFn);
    };
  }
}