1   package com.atlassian.plugin.webresource;
2   
3   import junit.framework.TestCase;
4   
5   public class TestPluginResource extends TestCase
6   {
7       public void testParseWithSimpleName() throws Exception
8       {
9           SinglePluginResource resource = SinglePluginResource.parse("/download/resources/test.plugin.key:module/mydownload.jpg");
10          assertEquals("test.plugin.key:module", resource.getModuleCompleteKey());
11          assertEquals("mydownload.jpg", resource.getResourceName());
12      }
13  
14      public void testParseWithSlashesInName() throws Exception
15      {
16          SinglePluginResource resource = SinglePluginResource.parse("/download/resources/test.plugin.key:module/path/to/mydownload.jpg");
17          assertEquals("test.plugin.key:module", resource.getModuleCompleteKey());
18          assertEquals("path/to/mydownload.jpg", resource.getResourceName());
19      }
20  
21      public void testGetUrl() throws Exception
22      {
23          SinglePluginResource resource = new SinglePluginResource("foo.css", "test.plugin.key", false);
24          assertEquals("/download/resources/test.plugin.key/foo.css", resource.getUrl());
25      }
26  
27      public void testRoundTrip() throws Exception
28      {
29          SinglePluginResource resource = new SinglePluginResource("foo.css", "test.plugin.key", false);
30          String url = resource.getUrl();
31          SinglePluginResource parsedResource = SinglePluginResource.parse(url);
32          assertEquals(resource.getModuleCompleteKey(), parsedResource.getModuleCompleteKey());
33          assertEquals(resource.getResourceName(), parsedResource.getResourceName());
34      }
35  
36      public void testParseInvlaidUrlThrowsException()
37      {
38          try 
39          {
40              SinglePluginResource.parse("/download/resources/blah.png");
41              fail("Should have thrown exception for invalid url");
42          }
43          catch (UrlParseException e)
44          {
45              //expected
46          }
47      }
48  }