1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package org.htmlunit;
16
17 import java.net.URL;
18
19 import org.htmlunit.html.HtmlPage;
20 import org.htmlunit.junit.BrowserRunner;
21 import org.junit.Test;
22 import org.junit.runner.RunWith;
23
24
25
26
27
28
29 @RunWith(BrowserRunner.class)
30 public final class NiceRefreshHandlerTest extends SimpleWebTestCase {
31
32
33
34
35 @Test
36 public void refreshImmediatelyForDelaySmallerThanMax() throws Exception {
37 doTest(2, URL_THIRD);
38 }
39
40
41
42
43 @Test
44 public void noRefreshForDelayLargerThanMax() throws Exception {
45 doTest(1, URL_FIRST);
46 }
47
48 private void doTest(final int handlerMaxDelay, final URL expectedUrl) throws Exception {
49 final String html = DOCTYPE_HTML
50 + "<html>\n"
51 + "<head><title>Meta Redirect Page</title>\n"
52 + "<meta http-equiv='Refresh' content='2; URL=" + URL_THIRD + "'>\n"
53 + "</head>\n"
54 + "<body>redirect page body</body>\n"
55 + "</html>";
56
57 final WebClient client = getWebClientWithMockWebConnection();
58 final MockWebConnection conn = getMockWebConnection();
59 conn.setResponse(URL_FIRST, html);
60 conn.setDefaultResponse("");
61 client.setRefreshHandler(new NiceRefreshHandler(handlerMaxDelay));
62
63 final HtmlPage page = client.getPage(URL_FIRST);
64 assertEquals(expectedUrl, page.getUrl());
65 }
66 }