import Tone from "Tone/core/Tone";
import Offline from "Tone/core/Offline";
import BufferTest from "helper/BufferTest";
import Master from "Tone/core/Master";

function getIframeError(url){
	return new Promise(function(success, error){
		var iframe = document.createElement("iframe");
		iframe.onload = function(){
			iframe.remove();
			success();
		};
		iframe.width = 1;
		iframe.height = 1;
		iframe.src = url;
		document.body.appendChild(iframe);
		//capture the error
		iframe.contentWindow.onerror=function(e){
			error(e);
		};
	});
}

function createTest(url){

	it(url, function(){
		url = baseUrl + url + ".html";
		return testUrl(url).then(getIframeError);
	});
}

function testUrl(url){
	return new Promise(function(success, fail){
		var httpRequest = new XMLHttpRequest();
		httpRequest.onreadystatechange = function(){
			if (httpRequest.readyState === 4){
				if (httpRequest.status === 200){
					success(url);
				} else {
					fail("404: "+url);
				}
			}
		};
		httpRequest.open("GET", url);
		httpRequest.send();
	});
}

/**
 * @param  {String} url 
 * @return {Promise}     
 */
export default function(url){
	return testUrl(url).then(getIframeError);
}