/* (c) 2014 - 2016 Open Source Geospatial Foundation - all rights reserved
* (c) 2001 - 2013 OpenPlans
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.web;
import static org.junit.Assert.*;
import org.apache.wicket.Component;
import org.apache.wicket.core.util.string.ComponentRenderer;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.util.tester.TagTester;
import org.junit.Test;
public class GeoServerBasePageTest extends GeoServerWicketTestSupport {
@Test
public void testLoginFormShowsWhenLoggedOut() throws Exception {
logout();
tester.startPage(GeoServerHomePage.class);
tester.assertVisible("loginforms");
tester.assertVisible("logoutforms");
tester.assertVisible("loginforms:0:loginform");
tester.assertInvisible("logoutforms:0:logoutform");
ListView logoutforms = (ListView) tester.getLastRenderedPage().get("logoutforms");
assertEquals(1, logoutforms.getList().size());
ListView loginForms = (ListView) tester.getLastRenderedPage().get("loginforms");
String responseTxt = ComponentRenderer.renderComponent(loginForms).toString();
TagTester tagTester = TagTester.createTagByAttribute(responseTxt, "form");
assertEquals("../j_spring_security_check", tagTester.getAttribute("action"));
}
@Test
public void testLogoutFormShowsWhenLoggedIn() throws Exception {
login();
tester.startPage(GeoServerHomePage.class);
tester.assertVisible("loginforms");
tester.assertVisible("logoutforms");
tester.assertInvisible("loginforms:0:loginform");
tester.assertVisible("logoutforms:0:logoutform");
ListView loginForms = (ListView) tester.getLastRenderedPage().get("loginforms");
assertEquals(1, loginForms.getList().size());
ListView logoutforms = (ListView) tester.getLastRenderedPage().get("logoutforms");
String responseTxt = ComponentRenderer.renderComponent(logoutforms).toString();
TagTester tagTester = TagTester.createTagByAttribute(responseTxt, "form");
assertEquals("../j_spring_security_logout", tagTester.getAttribute("action"));
}
@Test
public void testDefaultNodeInfoLoggedOut() throws Exception {
logout();
System.setProperty(DefaultGeoServerNodeInfo.GEOSERVER_NODE_OPTS, "id=test");
DefaultGeoServerNodeInfo.initializeFromEnviroment();
tester.startPage(GeoServerHomePage.class);
tester.assertInvisible("nodeIdContainer");
}
@Test
public void testDefaultNodeInfoLoggedIn() throws Exception {
login();
System.setProperty(DefaultGeoServerNodeInfo.GEOSERVER_NODE_OPTS,
"id:test;background:red;color:black");
DefaultGeoServerNodeInfo.initializeFromEnviroment();
tester.startPage(GeoServerHomePage.class);
tester.assertVisible("nodeIdContainer");
tester.assertModelValue("nodeIdContainer:nodeId", "test");
// this does not work, damn wicket tester...
// TagTester tags = tester.getTagByWicketId("nodeIdContainer");
// String style = tags.getAttribute("style");
// assertTrue(style.contains("background:red;"));
// assertTrue(style.contains("color:black;"));
}
}