01: package com.meterware.httpunit;
02:
03: /********************************************************************************************************************
04: * $Id: WebFrame.java,v 1.15 2004/07/21 01:07:33 russgold Exp $
05: *
06: * Copyright (c) 2000-2004, Russell Gold
07: *
08: * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
09: * documentation files (the "Software"), to deal in the Software without restriction, including without limitation
10: * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
11: * to permit persons to whom the Software is furnished to do so, subject to the following conditions:
12: *
13: * The above copyright notice and this permission notice shall be included in all copies or substantial portions
14: * of the Software.
15: *
16: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
17: * THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18: * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
19: * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20: * DEALINGS IN THE SOFTWARE.
21: *
22: *******************************************************************************************************************/
23: import com.meterware.httpunit.scripting.ScriptableDelegate;
24:
25: import java.net.URL;
26:
27: import org.w3c.dom.Node;
28:
29: /**
30: * A frame in a web page.
31: **/
32: class WebFrame extends HTMLElementBase {
33:
34: private FrameSelector _selector;
35:
36: private WebResponse _response;
37: private Node _element;
38:
39: private URL _baseURL;
40:
41: protected ScriptableDelegate getParentDelegate() {
42: return _response.getScriptableObject().getDocument();
43: }
44:
45: //---------------------------------------- package methods -----------------------------------------
46:
47: WebFrame(WebResponse response, URL baseURL, Node frameNode,
48: FrameSelector parentFrame) {
49: super (frameNode);
50: _response = response;
51: _element = frameNode;
52: _baseURL = baseURL;
53: _selector = getFrameSelector(parentFrame);
54: }
55:
56: String getFrameName() {
57: return _selector.getName();
58: }
59:
60: FrameSelector getSelector() {
61: return _selector;
62: }
63:
64: private FrameSelector getFrameSelector(FrameSelector parentFrame) {
65: return FrameHolder.newNestedFrame(parentFrame, super .getName());
66: }
67:
68: WebRequest getInitialRequest() {
69: return new GetMethodWebRequest(_baseURL, HttpUnitUtils
70: .trimFragment(NodeUtils.getNodeAttribute(_element,
71: "src")), _selector);
72: }
73:
74: boolean hasInitialRequest() {
75: return NodeUtils.getNodeAttribute(_element, "src").length() > 0;
76: }
77:
78: }
|