01: // Copyright (C) 2003,2004,2005 by Object Mentor, Inc. All rights reserved.
02: // Released under the terms of the GNU General Public License version 2 or later.
03: package fitnesse.fixtures;
04:
05: import fit.ColumnFixture;
06: import fitnesse.http.*;
07: import fitnesse.wiki.*;
08: import fitnesse.*;
09: import fitnesse.wikitext.Utils;
10: import fitnesse.testutil.MockSocket;
11:
12: public class ResponseRequester extends ColumnFixture {
13: public String uri;
14:
15: public String username;
16:
17: public String password;
18:
19: protected MockRequest request;
20:
21: public boolean valid() throws Exception {
22: return status() == 200;
23: }
24:
25: public void execute() throws Exception {
26: request = new MockRequest();
27:
28: details();
29:
30: if (username != null)
31: request.setCredentials(username, password);
32:
33: request.parseRequestUri("/" + uri);
34: FitnesseFixtureContext.page = FitnesseFixtureContext.root
35: .getPageCrawler().getPage(FitnesseFixtureContext.root,
36: PathParser.parse(uri));
37: FitNesseExpediter expediter = new FitNesseExpediter(
38: new MockSocket(""), FitnesseFixtureContext.context);
39: FitnesseFixtureContext.response = expediter
40: .createGoodResponse(request);
41: FitnesseFixtureContext.sender = new MockResponseSender(
42: FitnesseFixtureContext.response);
43: }
44:
45: public int status() throws Exception {
46: int status = FitnesseFixtureContext.response.getStatus();
47: return status;
48: }
49:
50: public String contents() throws Exception {
51: return "<pre>"
52: + Utils.escapeText(FitnesseFixtureContext.sender
53: .sentData()) + "</pre>";
54: }
55:
56: protected void details() {
57: }
58: }
|