package de.twenty11.skysail.ext.osgimonitor.jwebunit;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
import net.sourceforge.jwebunit.exception.TestingEngineResponseException;
import net.sourceforge.jwebunit.junit.WebTester;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
public class LoginTest {
private WebTester tester;
private String username = "admin";
private String password = "skysail";
private String url = "localhost:2011";
private String baseUrl;
@Before
public void setup() {
Properties prop = new Properties();
if (!loadProperties(prop, "/home/carsten/jwebunit/passwd.txt")) {
if (!loadProperties(prop, "/home/ec2-user/jwebunit/passwd.txt")) {
loadProperties(prop, "/home/ubuntu/jwebunit/passwd.txt");
}
}
tester = new WebTester();
baseUrl = "http://" + url + "/osgimonitor/";
tester.setBaseUrl(baseUrl);
tester.getTestContext().setAuthorization(username, password);
tester.setScriptingEnabled(false);
}
private boolean loadProperties(Properties prop, String filename) {
try {
prop.load(new FileInputStream(filename));
username = prop.getProperty("user");
password = prop.getProperty("pass");
url = prop.getProperty("url");
return true;
} catch (IOException ex) {
ex.printStackTrace();
return false;
}
}
@Test(expected = TestingEngineResponseException.class)
public void gives_401_for_wrong_password() {
tester.getTestContext().setAuthorization(username, "wrongOneForSure");
tester.beginAt("");
}
@Test
public void returns_html_startpage_when_providing_proper_credentials_and_media_type() {
tester.beginAt("?media=html");
tester.assertTitleEquals("Skysail - a business server");
}
@Test
public void returns_json_startpage_when_providing_proper_credentials_and_media_type() {
tester.beginAt("?media=json");
tester.assertTitleEquals("");
}
@Test
@Ignore
public void follows_bundles_link_in_html_mode() {
tester.beginAt("?media=html");
tester.clickLink("bundlesLink");
// tester.clickLinkWithExactText(getLinkText("bundles"));
tester.assertTextPresent("skysail.server");
}
@Test
@Ignore
public void follows_asGraph_link_in_html_mode() {
tester.beginAt("?media=html");
tester.clickLinkWithExactText(getLinkText("bundles/asGraph"));
tester.assertTextPresent("de.twenty11.skysail.common.ext.osgimonitor.BundleDetails");
}
private String getLinkText(String part) {
return "\"" + baseUrl + part + "\"";
}
}