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: 1.1.2
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