package hudson.model;
import hudson.model.DownloadService.Downloadable;
import net.sf.json.JSONObject;
import org.jvnet.hudson.test.Bug;
import org.jvnet.hudson.test.HudsonTestCase;
import org.kohsuke.stapler.StaplerResponse;
import java.io.IOException;
/**
* @author Kohsuke Kawaguchi
*/
public class DownloadServiceTest extends HudsonTestCase {
private Downloadable job;
/**
* Makes sure that JavaScript on the client side for handling submission works.
*/
@Override
protected void setUp() throws Exception {
super.setUp();
// this object receives the submission.
// to bypass the URL restriction, we'll trigger downloadService.download ourselves
job = new Downloadable("test", "UNUSED");
Downloadable.all().add(job);
}
@Override
protected void tearDown() throws Exception {
Downloadable.all().remove(job);
super.tearDown();
}
@Bug(5536)
public void testPost() throws Exception {
assertNull(job.getData());
createWebClient().goTo("/self/testPost");
JSONObject d = job.getData();
assertEquals(hashCode(),d.getInt("hello"));
}
/**
* This is where the browser should hit to retrieve data.
*/
public void doData(StaplerResponse rsp) throws IOException {
rsp.setContentType("application/javascript");
rsp.getWriter().println("downloadService.post('test',{'hello':"+hashCode()+"})");
}
}