?? testmarshallregistry.java
字號:
/*
* Copyright 2000-2001,2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jetspeed.services.registry;
import java.io.File;
import java.io.FileReader;
import java.util.Vector;
import java.util.Iterator;
import java.util.HashMap;
import java.util.Map;
// Junit imports
import junit.framework.Test;
import junit.framework.TestSuite;
//castor support
import org.exolab.castor.xml.Unmarshaller;
import org.exolab.castor.mapping.Mapping;
import org.xml.sax.InputSource;
// Jetspeed imports
import org.apache.jetspeed.test.JetspeedTestCase;
import org.apache.jetspeed.om.registry.CachedParameter;
import org.apache.jetspeed.om.registry.Category;
import org.apache.jetspeed.om.registry.ContentURL;
import org.apache.jetspeed.om.registry.MetaInfo;
import org.apache.jetspeed.om.registry.Parameter;
import org.apache.jetspeed.om.registry.PortletEntry;
import org.apache.jetspeed.om.registry.SecurityAccess;
import org.apache.jetspeed.om.registry.SecurityAllow;
import org.apache.jetspeed.om.registry.SecurityEntry;
import org.apache.jetspeed.om.SecurityReference;
// Turbine imports
import org.apache.turbine.util.TurbineConfig;
import org.apache.turbine.util.StringUtils;
/**
* TestMarshallRegistry
*
* @author <a href="taylor@apache.org">David Sean Taylor</a>
* @version $Id: TestMarshallRegistry.java,v 1.1 2004/04/07 22:02:42 jford Exp $
*/
public class TestMarshallRegistry extends JetspeedTestCase
{
/**
* Defines the testcase name for JUnit.
*
* @param name the testcase's name.
*/
public TestMarshallRegistry(String name)
{
super(name);
}
/**
* Start the tests.
*
* @param args the arguments. Not used
*/
public static void main(String args[])
{
junit.awtui.TestRunner.main(new String[] { TestMarshallRegistry.class.getName() });
}
public void setup()
{
System.out.println("Setup: Testing marshalling of Registry");
}
/**
* Creates the test suite.
*
* @return a test suite (<code>TestSuite</code>) that includes all methods
* starting with "test"
*/
public static Test suite()
{
// All methods starting with "test" will be executed in the test suite.
return new TestSuite(TestMarshallRegistry.class);
}
private String getMappingFileName()
{
return "webapp/WEB-INF/conf/registry.xml";
}
/**
* Tests unmarshaling registry fragment
* @throws Exception
*/
public void testUnmarshallRegistry() throws Exception
{
System.out.println("Testing marshalling of Registry");
String xregFile = "webapp/WEB-INF/psml/test/testcase-2.xreg";
Mapping mapping = null;
String mapFile = getMappingFileName();
File map = new File(mapFile);
if (map.exists() && map.isFile() && map.canRead())
{
try
{
FileReader reader = new FileReader(xregFile);
mapping = new Mapping();
InputSource is = new InputSource(new FileReader(map));
is.setSystemId(mapFile);
mapping.loadMapping(is);
Unmarshaller unmarshaller = new Unmarshaller(mapping);
RegistryFragment fragment = (RegistryFragment) unmarshaller.unmarshal(reader);
assertNotNull(fragment);
Vector portlets = fragment.getPortlets();
// test abstract
PortletEntry rss = (PortletEntry) portlets.elementAt(1);
assertNotNull(rss);
assertTrue(rss.getName().equals("RSS"));
assertTrue(!rss.isHidden());
assertTrue(rss.getType().equals("abstract"));
assertNull(rss.getParent());
assertTrue(!rss.isApplication());
assertTrue(rss.getClassname().equals("org.apache.jetspeed.portal.portlets.NewRSSPortlet"));
// params
Iterator it = rss.getParameterNames();
HashMap mapParams = new HashMap();
while (it.hasNext())
{
String name = (String) it.next();
Parameter p = rss.getParameter(name);
assertNotNull(p);
//System.out.println("PARAM:" + p.getName() + " = " + p.getValue());
mapParams.put(p.getName(), p);
}
assertTrue(mapParams.containsKey("showtitle"));
assertTrue(mapParams.containsKey("stylesheet"));
assertTrue(mapParams.containsKey("itemdisplayed"));
// test ref
PortletEntry hack = (PortletEntry) portlets.elementAt(2);
assertNotNull(hack);
assertTrue(hack.getName().equals("XMLHack"));
assertTrue(hack.isHidden());
assertTrue(hack.getType().equals("ref"));
assertTrue(hack.getParent().equals("RSS"));
assertTrue(!hack.isApplication());
assertTrue(hack.getTitle().equals("XMLHack Title"));
assertTrue(hack.getDescription().equals("XMLHack Description"));
assertTrue(hack.getMetaInfo().getTitle().equals("XMLHack Title"));
assertTrue(hack.getMetaInfo().getDescription().equals("XMLHack Description"));
assertTrue(hack.getClassname().equals("org.apache.jetspeed.portal.portlets.NewRSSPortlet"));
mapParams.clear();
it = hack.getParameterNames();
while (it.hasNext())
{
String name = (String) it.next();
Parameter p = hack.getParameter(name);
assertNotNull(p);
//System.out.println("HACK PARAM:" + p.getName() + " = " + p.getValue());
mapParams.put(p.getName(), p);
}
assertTrue(mapParams.containsKey("showtitle"));
assertTrue(mapParams.containsKey("stylesheet"));
assertTrue(mapParams.containsKey("itemdisplayed"));
assertTrue(mapParams.containsKey("HACK"));
Parameter p = (Parameter) mapParams.get("HACK");
assertTrue(p.getValue().equals("hacker"));
Parameter p2 = (Parameter) mapParams.get("showtitle");
MetaInfo p2m = p2.getMetaInfo();
assertTrue(p2m.getTitle().equals("Show title description ?"));
assertTrue(p2.getTitle().equals("Show title description ?"));
Map pMap = hack.getParameterMap();
String v15 = (String) pMap.get("itemdisplayed");
assertTrue(v15.equals("15"));
// test falling back on meta info
PortletEntry mp = (PortletEntry) portlets.elementAt(5);
assertNotNull(mp);
assertTrue(mp.getName().equals("MetaTest"));
assertTrue(mp.getType().equals("ref"));
assertTrue(mp.getParent().equals("AdminScreen"));
assertTrue(mp.getClassname().equals("org.apache.jetspeed.portal.portlets.TurbineScreenPortlet"));
String title = mp.getTitle();
assertNotNull(title);
assertTrue(title.equals("Turbine Screen in a portlet"));
assertTrue(mp.getDescription().equals("We put the Admin Screen in a portlet."));
MetaInfo meta = mp.getMetaInfo();
assertNotNull(meta);
assertTrue(mp.getMetaInfo().getTitle().equals("Turbine Screen in a portlet"));
assertTrue(meta.getDescription().equals("We put the Admin Screen in a portlet."));
// media type
Iterator mpi = mp.listMediaTypes();
assertNotNull(mpi);
HashMap mpMap = new HashMap();
while (mpi.hasNext())
{
String s = (String) mpi.next();
mpMap.put(s, s);
}
assertTrue(mpMap.containsKey("html"));
assertTrue(mpMap.containsKey("wml"));
assertTrue(mpMap.containsKey("xml"));
assertTrue(mp.hasMediaType("wml"));
PortletEntry mt = (PortletEntry) portlets.elementAt(6);
assertNotNull(mt);
assertTrue(mt.getName().equals("NoMediaType"));
assertTrue(mt.getType().equals("ref"));
Iterator mti = mt.listMediaTypes();
assertNotNull(mti);
assertTrue(mti.hasNext());
String s = (String) mti.next();
assertTrue(s.equals("html"));
assertTrue(hack.getURL().equals("http://www.xmlhack.com/rss.php"));
assertTrue(hack.isCachedOnURL());
PortletEntry keytest = (PortletEntry) portlets.elementAt(7);
assertNotNull(keytest);
assertTrue(keytest.getName().equals("KeyTest"));
assertTrue(keytest.getType().equals("ref"));
it = keytest.getParameterNames();
mpMap.clear();
while (it.hasNext())
{
String name = (String) it.next();
CachedParameter cp = keytest.getCachedParameter(name);
mpMap.put(cp.getName(), cp);
//System.out.println("param = " + cp.getName() + "," + cp.getValue());
//System.out.println("keys = " + cp.isCachedOnName() + "," + cp.isCachedOnValue());
}
assertTrue(keytest.isCachedOnURL() == false);
CachedParameter cp = (CachedParameter) mpMap.get("newsid");
assertNotNull(cp);
assertTrue(cp.isCachedOnName() == false);
assertTrue(cp.isCachedOnValue() == true);
cp = (CachedParameter) mpMap.get("sportsid");
assertNotNull(cp);
assertTrue(cp.isCachedOnName() == true);
assertTrue(cp.isCachedOnValue() == false);
cp = (CachedParameter) mpMap.get("contact2");
assertNotNull(cp);
assertTrue(cp.isCachedOnName() == true);
assertTrue(cp.isCachedOnValue() == true);
cp = (CachedParameter) mpMap.get("showtitle");
assertNotNull(cp);
assertTrue(cp.isCachedOnName() == true);
assertTrue(cp.isCachedOnValue() == true);
// categories
PortletEntry feeder = (PortletEntry) portlets.elementAt(3);
assertNotNull(feeder);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -