package hudson.plugins.mercurial.browser;
import hudson.model.Descriptor;
import hudson.model.FreeStyleProject;
import hudson.plugins.mercurial.MercurialSCM;
import hudson.scm.RepositoryBrowser;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import org.jvnet.hudson.test.Bug;
import org.jvnet.hudson.test.HudsonTestCase;
import org.jvnet.hudson.test.recipes.LocalData;
public class HgBrowserSelectionTest extends HudsonTestCase {
public HgBrowserSelectionTest(String n) {
super(n);
}
/**
* With an introduction of HgBrowser base class, a care has to be taken to load existing dataset.
*
* This test verifies that.
*/
@LocalData
public void testRepositoryBrowserCompatibility() throws Exception {
FreeStyleProject p = (FreeStyleProject) hudson.getItem("foo");
MercurialSCM ms = (MercurialSCM) p.getScm();
assertTrue(ms.getBrowser() instanceof HgWeb);
assertEqualBeans(new HgWeb("http://www.yahoo.com/"), ms.getBrowser(), "url");
}
@Bug(4510)
@LocalData
public void testPickingUpAlternativeBrowser() throws MalformedURLException, Exception {
FreeStyleProject p = (FreeStyleProject) hudson.getItem("foo");
MercurialSCM ms = (MercurialSCM) p.getScm();
final HgBrowser browser = ms.getBrowser();
assertEquals("wrong url", new URL("http://bitbucket.org/"), browser.getUrl());
assertTrue("class:" + browser.getClass(), browser instanceof BitBucket);
assertEqualBeans(new BitBucket("http://bitbucket.org/"), browser, "url");
}
@Bug(4514)
@LocalData
public void testBrowsersAvailableInDropDown() throws MalformedURLException, Exception {
FreeStyleProject p = (FreeStyleProject) hudson.getItem("foo");
MercurialSCM ms = (MercurialSCM) p.getScm();
final HgBrowser browser = ms.getBrowser();
assertEquals("wrong url", new URL("http://bitbucket.org/"), browser.getUrl());
assertTrue("class:" + browser.getClass(), browser instanceof BitBucket);
assertEqualBeans(new BitBucket("http://bitbucket.org/"), browser, "url");
final List<Descriptor<RepositoryBrowser<?>>> browserDescriptors = ms.getDescriptor().getBrowserDescriptors();
assertTrue("Could not find BitBucket in " + browserDescriptors, browserDescriptors.contains(browser.getDescriptor()));
}
}