/* (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.wicket;
import static org.geoserver.web.GeoServerWicketTestSupport.initResourceSettings;
import static org.junit.Assert.assertEquals;
import java.util.ArrayList;
import org.apache.wicket.Component;
import org.apache.wicket.model.Model;
import org.apache.wicket.util.tester.FormTester;
import org.apache.wicket.util.tester.WicketTester;
import org.geoserver.catalog.Keyword;
import org.geoserver.catalog.KeywordInfo;
import org.geoserver.web.ComponentBuilder;
import org.geoserver.web.FormTestPage;
import org.junit.Before;
import org.junit.Test;
public class KeywordsEditorTest {
WicketTester tester;
ArrayList<KeywordInfo> keywords;
@Before
public void setUp() throws Exception {
tester = new WicketTester();
initResourceSettings(tester);
keywords = new ArrayList<KeywordInfo>();
keywords.add(new Keyword("one"));
keywords.add(new Keyword("two"));
keywords.add(new Keyword("three"));
tester.startPage(new FormTestPage(new ComponentBuilder() {
public Component buildComponent(String id) {
return new KeywordsEditor(id, new Model(keywords));
}
}));
}
@Test
public void testRemove() throws Exception {
// WicketHierarchyPrinter.print(tester.getLastRenderedPage(), true, false);
FormTester ft = tester.newFormTester("form");
ft.selectMultiple("panel:keywords", new int[] {0, 2});
tester.executeAjaxEvent("form:panel:removeKeywords", "click");
assertEquals(1, keywords.size());
assertEquals("two", keywords.get(0).getValue());
}
@Test
public void testAdd() throws Exception {
// WicketHierarchyPrinter.print(tester.getLastRenderedPage(), true, false);
FormTester ft = tester.newFormTester("form");
ft.setValue("panel:newKeyword", "four");
ft.setValue("panel:lang", "en");
ft.setValue("panel:vocab", "foobar");
tester.executeAjaxEvent("form:panel:addKeyword", "click");
assertEquals(4, keywords.size());
assertEquals("four", keywords.get(3).getValue());
assertEquals("en", keywords.get(3).getLanguage());
assertEquals("foobar", keywords.get(3).getVocabulary());
}
}