1 package org.displaytag.properties;
2
3 import org.displaytag.localization.I18nResourceProvider;
4 import org.displaytag.localization.LocaleResolver;
5 import org.displaytag.test.DisplaytagCase;
6
7 import com.meterware.httpunit.GetMethodWebRequest;
8 import com.meterware.httpunit.WebRequest;
9 import com.meterware.httpunit.WebResponse;
10 import com.meterware.httpunit.WebTable;
11
12
13 /***
14 * Tests for "titlekey" column attribute.
15 * @author Fabrizio Giustina
16 * @version $Revision: 1.3 $ ($Author: fgiust $)
17 */
18 public abstract class AbstractTitleKeyTest extends DisplaytagCase
19 {
20
21 /***
22 * @see org.displaytag.test.DisplaytagCase#getJspName()
23 */
24 public String getJspName()
25 {
26 return "titlekey.jsp";
27 }
28
29 /***
30 * Returns the LocaleResolver instance to be used in this test.
31 * @return LocaleResolver
32 */
33 protected abstract LocaleResolver getResolver();
34
35 /***
36 * Returns the I18nResourceProvider instance to be used in this test.
37 * @return I18nResourceProvider
38 */
39 protected abstract I18nResourceProvider getI18nResourceProvider();
40
41 /***
42 * Returns the suffix expected in the specific resource bundle.
43 * @return expected suffix
44 */
45 protected abstract String getExpectedSuffix();
46
47 /***
48 * Test that headers are correctly removed.
49 * @param jspName jsp name, with full path
50 * @throws Exception any axception thrown during test.
51 */
52 public void doTest(String jspName) throws Exception
53 {
54
55 WebRequest request = new GetMethodWebRequest(jspName);
56
57 TableProperties.setLocaleResolver(getResolver());
58 TableProperties.setResourceProvider(getI18nResourceProvider());
59
60 WebResponse response;
61 try
62 {
63 response = runner.getResponse(request);
64 }
65 finally
66 {
67
68 TableProperties.setLocaleResolver(null);
69 TableProperties.setResourceProvider(null);
70 }
71
72 if (log.isDebugEnabled())
73 {
74 log.debug(response.getText());
75 }
76
77 WebTable[] tables = response.getTables();
78 assertEquals("Expected one table", 1, tables.length);
79
80 assertEquals("Header from resource is not valid.",
81 "foo title" + getExpectedSuffix(), tables[0].getCellAsText(0, 0));
82
83 assertEquals("Header from resource is not valid.",
84 "baz title" + getExpectedSuffix(), tables[0].getCellAsText(0, 1));
85
86 assertEquals("Header from resource is not valid.",
87 "camel title" + getExpectedSuffix(), tables[0].getCellAsText(0, 2));
88
89 assertEquals("Missing resource should generate the ???missing??? header.", "???missing???", tables[0]
90 .getCellAsText(0, 3));
91
92 }
93 }