1 package org.paneris.jammyjoes.functional;
2
3 import net.sourceforge.jwebunit.WebTestCase;
4
5 import org.melati.LogicalDatabase;
6 import org.melati.poem.AccessToken;
7 import org.melati.poem.PoemTask;
8 import org.paneris.jammyjoes.model.AffiliateTransaction;
9 import org.paneris.jammyjoes.model.JammyjoesDatabase;
10
11 public class TestCaseFunctionalReferrer extends WebTestCase {
12
13 public TestCaseFunctionalReferrer(String name) {
14 super(name);
15 }
16
17 public void setUp() {
18 getTestContext().setBaseUrl("http://localhost");
19 }
20
21 public void testReferrer() throws Exception {
22 getTestContext().getWebClient().setHeaderField("Referer","http://testReferringSite?search=toys");
23 beginAt("/index.html?affiliate=0");
24
25 final JammyjoesDatabase database = (JammyjoesDatabase) LogicalDatabase.getDatabase("jammyjoes");
26 database.inSession(AccessToken.root, new PoemTask() {
27
28 public void run() {
29 AffiliateTransaction transaction = (AffiliateTransaction)database.getAffiliateTransactionTable().selection().nextElement();
30 assertEquals("127.0.0.1", transaction.getUserIpAddress());
31 assertEquals("http://testReferringSite?search=toys", transaction.getReferrerURL());
32 assertEquals("http://localhost/index.html", transaction.getLandingPage());
33 }
34 });
35 }
36
37 }