James Moger
2011-07-22 375caa192ea852d8c48eda478c62a265dedb1692
Unit test for GitServlet.

This unit test is not part of the suite since it requires firing up
gitblit, commiting, and stopping gitblit. This is the first step in
evolving unit testing of cloning/pushing.
1 files added
74 ■■■■■ changed files
tests/com/gitblit/tests/GitServletTest.java 74 ●●●●● patch | view | raw | blame | history
tests/com/gitblit/tests/GitServletTest.java
New file
@@ -0,0 +1,74 @@
package com.gitblit.tests;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.text.MessageFormat;
import java.util.Date;
import java.util.concurrent.Executors;
import junit.framework.TestCase;
import org.eclipse.jgit.api.CloneCommand;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.util.FileUtils;
import com.gitblit.GitBlitServer;
public class GitServletTest extends TestCase {
    File folder = new File(GitBlitSuite.REPOSITORIES, "working/ticgit");
    int port = 8180;
    int shutdownPort = 8181;
    @Override
    protected void setUp() throws Exception {
        // Start a Gitblit instance
        Executors.newSingleThreadExecutor().execute(new Runnable() {
            public void run() {
                GitBlitServer.main("--httpPort", "" + port, "--httpsPort", "0", "--shutdownPort",
                        "" + shutdownPort, "--repositoriesFolder",
                        "\"" + GitBlitSuite.REPOSITORIES.getAbsolutePath() + "\"", "--userService",
                        "distrib/users.properties");
            }
        });
        // Wait a few seconds for it to be running
        Thread.sleep(2500);
    }
    @Override
    protected void tearDown() throws Exception {
        // Stop Gitblit
        GitBlitServer.main("--stop", "--shutdownPort", "" + shutdownPort);
        // Wait a few seconds for it to be running
        Thread.sleep(2500);
    }
    public void testClone() throws Exception {
        FileUtils.delete(folder, FileUtils.RECURSIVE);
        CloneCommand clone = Git.cloneRepository();
        clone.setURI(MessageFormat.format("http://localhost:{0,number,#}/git/ticgit.git", port));
        clone.setDirectory(folder);
        clone.setBare(false);
        clone.setCloneAllBranches(true);
        clone.call();
    }
    public void testAnonymousCommit() throws Exception {
        Git git = Git.open(folder);
        File file = new File(folder, "TODO");
        OutputStreamWriter os = new OutputStreamWriter(new FileOutputStream(file, true));
        BufferedWriter w = new BufferedWriter(os);
        w.write("// " + new Date().toString() + "\n");
        w.close();
        git.add().addFilepattern(file.getName()).call();
        git.commit().setMessage("test commit").call();
        git.push().setPushAll().call();
        git.getRepository().close();
    }
}