View Javadoc

1   package com.atlassian.plugin.web.descriptors;
2   
3   import java.io.InputStream;
4   import java.net.URL;
5   
6   import junit.framework.TestCase;
7   
8   import org.dom4j.Document;
9   import org.dom4j.DocumentException;
10  import org.dom4j.DocumentHelper;
11  import org.dom4j.Element;
12  
13  import com.atlassian.plugin.Plugin;
14  import com.atlassian.plugin.PluginParseException;
15  import com.atlassian.plugin.impl.AbstractPlugin;
16  
17  public class TestDefaultWebItemModuleDescriptor extends TestCase
18  {
19      private WebItemModuleDescriptor descriptor;
20      private final Plugin plugin = new MockPlugin(this.getClass().getName());
21  
22      @Override
23      protected void setUp() throws Exception
24      {
25          descriptor = new DefaultWebItemModuleDescriptor(new MockWebInterfaceManager());
26      }
27  
28      public void testGetStyleClass() throws DocumentException, PluginParseException
29      {
30          final String className = "testClass";
31          final String styleClass = "<styleClass>" + className + "</styleClass>";
32  
33          final Element element = createElement(styleClass);
34          descriptor.init(plugin, element);
35  
36          assertEquals(className, descriptor.getStyleClass());
37      }
38  
39      public void testGetStyleClassTrimmed() throws DocumentException, PluginParseException
40      {
41          final String className = "testClass";
42          final String styleClass = "<styleClass>   " + className + "   </styleClass>";
43  
44          final Element element = createElement(styleClass);
45          descriptor.init(plugin, element);
46  
47          assertEquals(className, descriptor.getStyleClass());
48      }
49  
50      public void testGetStyleClassSpaceSeparated() throws DocumentException, PluginParseException
51      {
52          final String className = "testClass testClass2";
53          final String styleClass = "<styleClass>" + className + "</styleClass>";
54  
55          final Element element = createElement(styleClass);
56          descriptor.init(plugin, element);
57  
58          assertEquals(className, descriptor.getStyleClass());
59      }
60  
61      public void testGetStyleClassEmpty() throws DocumentException, PluginParseException
62      {
63          final String styleClass = "<styleClass></styleClass>";
64  
65          final Element element = createElement(styleClass);
66          descriptor.init(plugin, element);
67  
68          assertEquals("", descriptor.getStyleClass());
69      }
70  
71      public void testGetStyleClassNone() throws DocumentException, PluginParseException
72      {
73          final String styleClass = "";
74  
75          final Element element = createElement(styleClass);
76          descriptor.init(plugin, element);
77  
78          assertNotNull(descriptor.getStyleClass());
79          assertEquals("", descriptor.getStyleClass());
80      }
81  
82      private Element createElement(final String childElement) throws DocumentException
83      {
84          final String rootElement = "<root key=\"key\">" + childElement + "</root>";
85          final Document document = DocumentHelper.parseText(rootElement);
86          final Element element = document.getRootElement();
87          return element;
88      }
89  
90      private class MockPlugin extends AbstractPlugin
91      {
92          MockPlugin(final String key)
93          {
94              setKey(key);
95              setName(key);
96          }
97  
98          public boolean isUninstallable()
99          {
100             return false;
101         }
102 
103         public boolean isDeleteable()
104         {
105             return false;
106         }
107 
108         public boolean isDynamicallyLoaded()
109         {
110             return false;
111         }
112 
113         public <T> Class<T> loadClass(final String clazz, final Class<?> callingClass) throws ClassNotFoundException
114         {
115             return null;
116         }
117 
118         public ClassLoader getClassLoader()
119         {
120             return this.getClass().getClassLoader();
121         }
122 
123         public URL getResource(final String path)
124         {
125             return null;
126         }
127 
128         public InputStream getResourceAsStream(final String name)
129         {
130             return null;
131         }
132     }
133 }