1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.acegisecurity.captcha;
17
18 import junit.framework.TestCase;
19
20
21 /***
22 * DOCUMENT ME!
23 *
24 * @author $author$
25 * @version $Revision: 1.2 $
26 */
27 public class AlwaysTestBelowAverageTimeInMillisBetweenRequestsChannelProcessorTests
28 extends TestCase {
29
30
31 AlwaysTestBelowAverageTimeInMillisBetweenRequestsChannelProcessor alwaysTestBelowAverageTimeInMillisBetweenRequestsChannelProcessor;
32
33
34
35 public void testEqualsThresold() {
36 CaptchaSecurityContext context = new CaptchaSecurityContextImpl();
37 alwaysTestBelowAverageTimeInMillisBetweenRequestsChannelProcessor
38 .setThresold(100);
39
40 context.setHuman();
41
42 long now = System.currentTimeMillis();
43
44 while ((System.currentTimeMillis() - now) <= 100) {
45 assertTrue(alwaysTestBelowAverageTimeInMillisBetweenRequestsChannelProcessor
46 .isContextValidConcerningHumanity(context));
47 }
48
49 context.incrementHumanRestrictedRessoucesRequestsCount();
50 assertTrue(alwaysTestBelowAverageTimeInMillisBetweenRequestsChannelProcessor
51 .isContextValidConcerningHumanity(context));
52
53 context.setHuman();
54 context.incrementHumanRestrictedRessoucesRequestsCount();
55 assertFalse(alwaysTestBelowAverageTimeInMillisBetweenRequestsChannelProcessor
56 .isContextValidConcerningHumanity(context));
57
58 alwaysTestBelowAverageTimeInMillisBetweenRequestsChannelProcessor
59 .setThresold(0);
60 context.setHuman();
61 context.incrementHumanRestrictedRessoucesRequestsCount();
62 assertFalse(alwaysTestBelowAverageTimeInMillisBetweenRequestsChannelProcessor
63 .isContextValidConcerningHumanity(context));
64 alwaysTestBelowAverageTimeInMillisBetweenRequestsChannelProcessor
65 .setThresold(0);
66 }
67
68 public void testIsContextValidConcerningHumanity()
69 throws Exception {
70 CaptchaSecurityContext context = new CaptchaSecurityContextImpl();
71 alwaysTestBelowAverageTimeInMillisBetweenRequestsChannelProcessor
72 .setThresold(10);
73 context.setHuman();
74
75 while ((System.currentTimeMillis()
76 - context.getLastPassedCaptchaDateInMillis()) < (10 * alwaysTestBelowAverageTimeInMillisBetweenRequestsChannelProcessor
77 .getThresold())) {
78 assertTrue(alwaysTestBelowAverageTimeInMillisBetweenRequestsChannelProcessor
79 .isContextValidConcerningHumanity(context));
80 }
81 }
82
83 public void testNewContext() {
84 CaptchaSecurityContext context = new CaptchaSecurityContextImpl();
85 assertFalse(alwaysTestBelowAverageTimeInMillisBetweenRequestsChannelProcessor
86 .isContextValidConcerningHumanity(context));
87
88 context.setHuman();
89 assertTrue(alwaysTestBelowAverageTimeInMillisBetweenRequestsChannelProcessor
90 .isContextValidConcerningHumanity(context));
91 }
92
93 public void testShouldPassAbove() {
94 CaptchaSecurityContext context = new CaptchaSecurityContextImpl();
95
96 context.setHuman();
97
98 int i = 0;
99
100 while ((System.currentTimeMillis()
101 - context.getLastPassedCaptchaDateInMillis()) < (100 * alwaysTestBelowAverageTimeInMillisBetweenRequestsChannelProcessor
102 .getThresold())) {
103 System.out.println((System.currentTimeMillis()
104 - context.getLastPassedCaptchaDateInMillis()));
105
106 context.incrementHumanRestrictedRessoucesRequestsCount();
107 i++;
108
109 while ((System.currentTimeMillis()
110 - context.getLastPassedCaptchaDateInMillis()) < (alwaysTestBelowAverageTimeInMillisBetweenRequestsChannelProcessor
111 .getThresold() * i)) {}
112
113 System.out.println((System.currentTimeMillis()
114 - context.getLastPassedCaptchaDateInMillis()));
115
116 assertTrue(alwaysTestBelowAverageTimeInMillisBetweenRequestsChannelProcessor
117 .isContextValidConcerningHumanity(context));
118 }
119 }
120
121 protected void setUp() throws Exception {
122 super.setUp();
123 alwaysTestBelowAverageTimeInMillisBetweenRequestsChannelProcessor = new AlwaysTestBelowAverageTimeInMillisBetweenRequestsChannelProcessor();
124 }
125 }