/**
* License Agreement.
*
* JBoss RichFaces - Ajax4jsf Component Library
*
* Copyright (C) 2007 Exadel, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1 as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
package org.ajax4jsf.component;
import java.util.HashMap;
import java.util.Map;
import javax.faces.component.UIForm;
import javax.faces.component.html.HtmlForm;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
public class LoadBundleComponentTest extends org.ajax4jsf.tests.AbstractAjax4JsfTestCase {
private static final String BUNDLE_NAME = "testBundle";
private UILoadBundle bundle = null;
private UIForm form;
public LoadBundleComponentTest(String name) {
super(name);
}
public void setUp() throws Exception {
super.setUp();
form = new HtmlForm();
form.setId("form");
facesContext.getViewRoot().getChildren().add(form);
bundle = (UILoadBundle) application.createComponent(UILoadBundle.COMPONENT_TYPE);
if (null != bundle) {
bundle.setId("loadBundle");
bundle.setVar(BUNDLE_NAME);
bundle.setBasename("org.ajax4jsf.component.test_skin");
form.getChildren().add(bundle);
}
}
public void tearDown() throws Exception {
super.tearDown();
form = null;
bundle = null;
}
public void testLoadBundle() throws Exception {
HtmlPage page = renderView();
assertNotNull(page);
Map loadedMap = (Map) facesContext.getExternalContext().getRequestMap().get(BUNDLE_NAME);
assertNotNull(loadedMap);
assertEquals("non-existent key", loadedMap.get("non-existent key"));
assertEquals("#000000", loadedMap.get("shadowBackgroundColor"));
}
public void testSize() throws Exception {
HtmlPage page = renderView();
assertNotNull(page);
Map loadedMap = (Map) facesContext.getExternalContext().getRequestMap().get(BUNDLE_NAME);
assertNotNull(loadedMap);
assertEquals(0, loadedMap.size());
}
public void testContainsKey() throws Exception {
HtmlPage page = renderView();
assertNotNull(page);
Map loadedMap = (Map) facesContext.getExternalContext().getRequestMap().get(BUNDLE_NAME);
assertNotNull(loadedMap);
assertTrue(loadedMap.containsKey("shadowBackgroundColor"));
assertFalse(loadedMap.containsKey("non-existent key"));
}
public void testFakeFunctions() throws Exception {
HtmlPage page = renderView();
assertNotNull(page);
Map loadedMap = (Map) facesContext.getExternalContext().getRequestMap().get(BUNDLE_NAME);
assertNotNull(loadedMap);
assertFalse(loadedMap.isEmpty());
assertFalse(loadedMap.containsValue(null));
assertFalse(loadedMap.containsValue("any-string"));
try {
loadedMap.put("key1", "value1");
assertFalse("UnsupportedOperationException was not thrown", true);
} catch (UnsupportedOperationException e) {
}
try {
loadedMap.putAll(new HashMap());
assertFalse("UnsupportedOperationException was not thrown", true);
} catch (UnsupportedOperationException e) {
}
try {
loadedMap.remove("key1");
assertFalse("UnsupportedOperationException was not thrown", true);
} catch (UnsupportedOperationException e) {
}
try {
loadedMap.clear();
assertFalse("UnsupportedOperationException was not thrown", true);
} catch (UnsupportedOperationException e) {
}
assertNull(loadedMap.keySet());
assertNull(loadedMap.values());
assertNull(loadedMap.entrySet());
}
}