1   package com.atlassian.plugin.webresource;
2   
3   import junit.framework.TestCase;
4   
5   import java.util.HashMap;
6   import java.util.Map;
7   
8   public class TestCssWebResourceFormatter extends TestCase
9   {
10      private CssWebResourceFormatter cssWebResourceFormatter;
11  
12      protected void setUp() throws Exception
13      {
14          super.setUp();
15          cssWebResourceFormatter = new CssWebResourceFormatter();
16      }
17  
18      protected void tearDown() throws Exception
19      {
20          cssWebResourceFormatter = null;
21          super.tearDown();
22      }
23  
24      public void testMatches()
25      {
26          assertTrue(cssWebResourceFormatter.matches("blah.css"));
27          assertFalse(cssWebResourceFormatter.matches("blah.js"));
28      }
29  
30      public void testFormatResource()
31      {
32          final String resourceName = "master.css";
33          final String url = "/confluence/download/resources/confluence.web.resources:master-styles/master.css";
34  
35          assertEquals("<link type=\"text/css\" rel=\"stylesheet\" href=\"" + url + "\" media=\"all\"/>\n",
36                      cssWebResourceFormatter.formatResource(resourceName, url, new HashMap()));
37      }
38  
39      public void testFormatResourceWithParameters()
40      {
41          final String resourceName = "master.css";
42          final String url = "/confluence/download/resources/confluence.web.resources:master-styles/master.css";
43          HashMap params = new HashMap();
44          params.put("title", "Confluence Master CSS");
45          params.put("charset", "utf-8");
46          params.put("foo", "bar"); // test invalid parameter
47  
48          assertEquals("<link type=\"text/css\" rel=\"stylesheet\" href=\"" + url + "\" title=\"Confluence Master CSS\"" +
49                      " charset=\"utf-8\" media=\"all\"/>\n",
50                      cssWebResourceFormatter.formatResource(resourceName, url, params));
51  
52      }
53  
54      public void testFormatIEResource()
55      {
56          final String resourceName = "master-ie.css";
57          final String url = "/confluence/download/resources/confluence.web.resources:master-styles/master-ie.css";
58  
59          Map params = new HashMap();
60          params.put("ieonly", "true");
61          params.put("media", "screen");
62          assertEquals("<!--[if IE]>\n" +
63                      "<link type=\"text/css\" rel=\"stylesheet\" href=\"" + url + "\" media=\"screen\"/>\n" +
64                      "<![endif]-->\n",
65                      cssWebResourceFormatter.formatResource(resourceName, url, params));
66      }
67  }