Clover Coverage Report - Pebble 2.5-SNAPSHOT
Coverage timestamp: Sat Jun 12 2010 09:39:29 EST
96   192   17   5,65
0   135   0,18   17
17     1  
1    
This report was generated with an evaluation server license. Purchase Clover or configure your license.
 
  RefererTest       Line # 41 96 0% 17 0 100% 1.0
 
  (32)
 
1    /*
2    * Copyright (c) 2003-2006, Simon Brown
3    * All rights reserved.
4    *
5    * Redistribution and use in source and binary forms, with or without
6    * modification, are permitted provided that the following conditions are met:
7    *
8    * - Redistributions of source code must retain the above copyright
9    * notice, this list of conditions and the following disclaimer.
10    *
11    * - Redistributions in binary form must reproduce the above copyright
12    * notice, this list of conditions and the following disclaimer in
13    * the documentation and/or other materials provided with the
14    * distribution.
15    *
16    * - Neither the name of Pebble nor the names of its contributors may
17    * be used to endorse or promote products derived from this software
18    * without specific prior written permission.
19    *
20    * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21    * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22    * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23    * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24    * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25    * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26    * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27    * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30    * POSSIBILITY OF SUCH DAMAGE.
31    */
32    package net.sourceforge.pebble.logging;
33   
34    import junit.framework.TestCase;
35   
36    /**
37    * Tests for the Referer class.
38    *
39    * @author Simon Brown
40    */
 
41    public class RefererTest extends TestCase {
42   
43    private Referer url;
44   
 
45  32 toggle protected void setUp() throws Exception {
46  32 url = new Referer("http://www.somedomain.com");
47  32 url.addLogEntry(new LogEntry());
48    }
49   
 
50  2 toggle public void testConstruction() {
51  2 assertEquals("http://www.somedomain.com", url.getName());
52  2 assertEquals("http://www.somedomain.com", url.getUrl());
53  2 assertEquals(1, url.getCount());
54    }
55   
 
56  2 toggle public void testIncrementingCount() {
57  2 assertEquals(1, url.getCount());
58  2 url.addLogEntry(new LogEntry());
59  2 assertEquals(2, url.getCount());
60    }
61   
 
62  2 toggle public void testShortUrlIsNotTruncated() {
63  2 String s = "http://www.somedomain.com";
64  2 url = new Referer(s);
65  2 assertEquals("http://www.somedomain.com", url.getTruncatedName());
66    }
67   
 
68  2 toggle public void testLongUrlIsTruncated() {
69  2 String s = "http://www.somedomain.com/here/is/a/long/url/abcdefghijklmnopqrstuvwxyz012345678012345678901234567890123456789";
70  2 url = new Referer(s);
71  2 assertEquals(s.substring(0, Referer.NAME_LENGTH_LIMIT - 3) + "...", url.getTruncatedName());
72    }
73   
 
74  2 toggle public void testEmptyUrl() {
75  2 url = new Referer("");
76  2 assertEquals("", url.getUrl());
77  2 assertEquals("None", url.getName());
78    }
79   
 
80  2 toggle public void testNullUrl() {
81  2 url = new Referer(null);
82  2 assertEquals(null, url.getUrl());
83  2 assertEquals("None", url.getName());
84    }
85   
 
86  2 toggle public void testHashCode() {
87  2 url = new Referer(null);
88  2 assertEquals(0, url.hashCode());
89  2 url = new Referer("http://www.somedomain.com");
90  2 assertEquals("http://www.somedomain.com".hashCode(), url.hashCode());
91    }
92   
 
93  2 toggle public void testEquals() {
94  2 Referer url1 = new Referer("http://www.somedomain.com");
95  2 Referer url2 = new Referer("http://www.yahoo.com");
96  2 Referer url3 = new Referer(null);
97  2 Referer url4 = new Referer(null);
98   
99  2 assertFalse(url1.equals(null));
100  2 assertFalse(url1.equals("http://www.somedomain.com"));
101  2 assertTrue(url1.equals(url1));
102  2 assertFalse(url1.equals(url2));
103  2 assertFalse(url2.equals(url1));
104  2 assertFalse(url1.equals(url3));
105  2 assertFalse(url3.equals(url1));
106  2 assertTrue(url3.equals(url4));
107    }
108   
 
109  2 toggle public void testFriendlyNamesForGoogleSearchUrls() {
110  2 url = new Referer("http://www.google.com");
111  2 assertEquals("Google : ", url.getName());
112  2 url = new Referer("http://www.GOOGLE.com");
113  2 assertEquals("Google : ", url.getName());
114  2 url = new Referer("http://www.google.com.au");
115  2 assertEquals("Google : ", url.getName());
116  2 url = new Referer("http://www.google.com?q=some+search+term");
117  2 assertEquals("Google : some search term", url.getName());
118  2 url = new Referer("http://www.google.com?q=some+search+term&abc=123");
119  2 assertEquals("Google : some search term", url.getName());
120  2 url = new Referer("http://www.google.com?abc=123&q=some+search+term&xyz=456");
121  2 assertEquals("Google : some search term", url.getName());
122  2 url = new Referer("http://www.google.com?q=%22some+search+term%22");
123  2 assertEquals("Google : \"some search term\"", url.getName());
124    }
125   
 
126  2 toggle public void testFriendlyNamesForGoogleImageSearchUrls() {
127  2 url = new Referer("http://images.google.com/imgres?imgurl=http://www.wingedsheep.com/images/climbing/birdsboro/20060402_JessFav2VV3W2238.jpg&imgrefurl=http://www.wingedsheep.com/tags/outdoor&h=450&w=300&sz=34&hl=en&start=1&tbnid=3YhO1f-n_UmSsM:&tbnh=127&tbnw=85&prev=/images%3Fq%3Dclimbing%2Bbirdsboro%26svnum%3D10%26hl%3Den");
128  2 assertEquals("Google Images : climbing birdsboro", url.getName());
129  2 url = new Referer("http://images.google.com/imgres?imgurl=http://www.wingedsheep.com/images/knitting/20060403_ragRugCatScratch.jpg&imgrefurl=http://www.wingedsheep.com/2006/04.html&h=300&w=300&sz=52&hl=en&start=57&tbnid=--uD5ySwWKcHGM:&tbnh=116&tbnw=116&prev=/images%3Fq%3Drag%2Brug%26start%3D40%26ndsp%3D20%26svnum%3D10%26hl%3Den%26sa%3DN");
130  2 assertEquals("Google Images : rag rug", url.getName());
131    }
132   
 
133  2 toggle public void testFriendlyNamesForYahooSearchUrls() {
134  2 url = new Referer("http://search.yahoo.com");
135  2 assertEquals("Yahoo! : ", url.getName());
136  2 url = new Referer("http://search.YAHOO.com");
137  2 assertEquals("Yahoo! : ", url.getName());
138  2 url = new Referer("http://search.yahoo.co.uk");
139  2 assertEquals("Yahoo! : ", url.getName());
140  2 url = new Referer("http://search.yahoo.com?p=some+search+term");
141  2 assertEquals("Yahoo! : some search term", url.getName());
142  2 url = new Referer("http://search.yahoo.com?p=some+search+term&abc=123");
143  2 assertEquals("Yahoo! : some search term", url.getName());
144  2 url = new Referer("http://search.yahoo.com?abc=123&p=some+search+term&xyz=456");
145  2 assertEquals("Yahoo! : some search term", url.getName());
146  2 url = new Referer("http://search.yahoo.com?p=%22some+search+term%22");
147  2 assertEquals("Yahoo! : \"some search term\"", url.getName());
148    }
149   
 
150  2 toggle public void testFriendlyNamesForBingSearchUrls() {
151  2 url = new Referer("http://www.bing.com");
152  2 assertEquals("Bing : ", url.getName());
153  2 url = new Referer("http://www.BING.com");
154  2 assertEquals("Bing : ", url.getName());
155  2 url = new Referer("http://www.bing.com?q=some+search+term");
156  2 assertEquals("Bing : some search term", url.getName());
157  2 url = new Referer("http://www.bing.com?q=some+search+term&abc=123");
158  2 assertEquals("Bing : some search term", url.getName());
159  2 url = new Referer("http://www.bing.com?abc=123&q=some+search+term&xyz=456");
160  2 assertEquals("Bing : some search term", url.getName());
161  2 url = new Referer("http://www.bing.com?q=%22some+search+term%22");
162  2 assertEquals("Bing : \"some search term\"", url.getName());
163    }
 
164  2 toggle public void testFriendlyNamesForJavaBlogsUrls() {
165  2 url = new Referer("http://www.javablogs.com/Welcome.action");
166  2 assertEquals("java.blogs : Welcome", url.getName());
167  2 url = new Referer("http://javablogs.com/Welcome.action");
168  2 assertEquals("java.blogs : Welcome", url.getName());
169  2 url = new Referer("http://www.javablogs.com/Welcome.jspa");
170  2 assertEquals("java.blogs : Welcome", url.getName());
171  2 url = new Referer("http://javablogs.com/Welcome.jspa");
172  2 assertEquals("java.blogs : Welcome", url.getName());
173  2 url = new Referer("http://www.javablogs.com/ViewHotBlogEntries.action;jsessionid=MHDGMNPJGIHD");
174  2 assertEquals("java.blogs : Hot Entries", url.getName());
175    }
176   
 
177  2 toggle public void testDomainFilter() {
178  2 assertEquals(".*www.somedomain.com.*", url.getDomainFilter());
179    }
180   
 
181  2 toggle public void testRefererNotInUTF8() {
182  2 url = new Referer("http://www.google.com/search?num=50&lr=lang_ja&q=%u30EF%u30FC%u30EB%u30C9%u30E1%u30A4%u30C8%u554F%u984C&ie=Shift_JIS&oe=Shift_JIS");
183  2 assertEquals("Google : %u30EF%u30FC%u30EB%u30C9%u30E1%u30A4%u30C8%u554F%u984C", url.getName());
184    }
185   
 
186  2 toggle public void testFakeRefererDoesntBreak() {
187  2 url = new Referer("0");
188  2 assertEquals("0", url.getName());
189  2 assertEquals("0", url.getDomainFilter());
190    }
191   
192    }