All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.searls.jasmine.io.scripts.RelativizesASetOfScripts Maven / Gradle / Ivy

Go to download

A JavaScript unit test plugin that processes JavaScript sources and Jasmine specs, prepares test runner HTML files, executes Jasmine specs headlessly with HtmlUnit, and produces JUnit XML reports

There is a newer version: 3.0-beta-02
Show newest version
package com.github.searls.jasmine.io.scripts;

import static org.apache.commons.lang.StringUtils.*;

import java.io.File;
import java.io.IOException;
import java.util.LinkedHashSet;
import java.util.Set;

import com.github.searls.jasmine.io.RelativizesFilePaths;

public class RelativizesASetOfScripts {

  private RelativizesFilePaths relativizesFilePaths = new RelativizesFilePaths();

  public Set relativize(File from, Set absoluteScripts) throws IOException {
    Set relativeScripts = new LinkedHashSet();
    for (String absoluteScript : absoluteScripts) {
      File script = new File(normalize(absoluteScript));
      if(!webUrl(absoluteScript) && script.exists()) {
        relativeScripts.add(relativizesFilePaths.relativize(from, script));
      } else {
        relativeScripts.add(absoluteScript);
      }
    }
    return relativeScripts;
  }

  private String normalize(String absoluteScript) {
    String strip = "file:" + (File.separatorChar == '/' ? "" : "/");
    return stripStart(absoluteScript,strip);
  }

  private boolean webUrl(String script) {
    return startsWithAny(script,new String[]{"http:","https:"});
  }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy