c1c45811c477f77a9ab79dd5b8bea4440f5d159f
[Sone.git] / src / test / java / net / pterodactylus / sone / template / GetPagePluginTest.java
1 package net.pterodactylus.sone.template;
2
3 import static org.mockito.Mockito.mock;
4 import static org.mockito.Mockito.verify;
5 import static org.mockito.Mockito.when;
6
7 import java.util.HashMap;
8 import java.util.Map;
9
10 import net.pterodactylus.sone.web.page.FreenetRequest;
11 import net.pterodactylus.util.template.TemplateContext;
12
13 import freenet.support.api.HTTPRequest;
14
15 import org.junit.Before;
16 import org.junit.Test;
17
18 /**
19  * Unit test for {@link GetPagePlugin}.
20  */
21 public class GetPagePluginTest {
22
23         private final GetPagePlugin plugin = new GetPagePlugin();
24         private final TemplateContext context = mock(TemplateContext.class);
25         private final FreenetRequest request = mock(FreenetRequest.class);
26         private final Map<String, String> parameters =
27                         new HashMap<String, String>();
28         private HTTPRequest httpRequest = mock(HTTPRequest.class);
29
30         @Before
31         public void setupTemplateContext() {
32                 when(context.get("request")).thenReturn(request);
33                 when(request.getHttpRequest()).thenReturn(httpRequest);
34                 when(httpRequest.getParam("page")).thenReturn("1");
35         }
36
37         @Test
38         public void fullySpecifiedPluginCallSetsCorrectValue() {
39                 parameters.put("request", "request");
40                 parameters.put("parameter", "page");
41                 parameters.put("key", "page-key");
42                 plugin.execute(context, parameters);
43                 verify(context).set("page-key", 1);
44         }
45
46         @Test
47         public void missingRequestParameterStillSetsCorrectValue() {
48                 parameters.put("parameter", "page");
49                 parameters.put("key", "page-key");
50                 plugin.execute(context, parameters);
51                 verify(context).set("page-key", 1);
52         }
53
54         @Test
55         public void missingParameterParameterStillSetsCorrectValue() {
56                 parameters.put("request", "request");
57                 parameters.put("key", "page-key");
58                 plugin.execute(context, parameters);
59                 verify(context).set("page-key", 1);
60         }
61
62         @Test
63         public void missingKeyParameterStillSetsCorrectValue() {
64                 parameters.put("request", "request");
65                 parameters.put("parameter", "page");
66                 plugin.execute(context, parameters);
67                 verify(context).set("page", 1);
68         }
69
70         @Test
71         public void unparseablePageSetsPageZero() {
72                 parameters.put("parameter", "wrong-parameter");
73                 plugin.execute(context, parameters);
74                 verify(context).set("page", 0);
75         }
76
77 }