⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 viewtoolstests.java

📁 一个用于java web页面开发的开源包
💻 JAVA
字号:
package org.apache.velocity.tools.test.blackbox;/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements.  See the NOTICE file * distributed with this work for additional information * regarding copyright ownership.  The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License.  You may obtain a copy of the License at * *   http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied.  See the License for the * specific language governing permissions and limitations * under the License. */import java.util.regex.Pattern;import java.util.regex.Matcher;import java.io.PrintWriter;import java.io.IOException;import org.junit.*;import static org.junit.Assert.*;import com.meterware.httpunit.HTMLElement;import com.meterware.httpunit.WebResponse;import com.meterware.httpunit.WebConversation;import com.meterware.httpunit.WebRequest;import com.meterware.httpunit.GetMethodWebRequest;import com.meterware.httpunit.WebForm;import com.meterware.httpunit.HttpUnitOptions;/** * <p>View tools blackbox tests.</p> * * @author <a href="mailto:cbrisson@apache.org">Claude Brisson</a> * @since Velocity Tools 1.3 * @version $Id$ */public class ViewToolsTests {    private static final String ROOT_URL = "http://localhost:@test.webcontainer.port@/";    public static @BeforeClass void initViewToolsTests() throws Exception {    }    /******* Helpers **********/    /**     * Utility function to check the text content of an HTML element     * @param resp web response     * @param id HTML element id     * @param text expected text     * @throws Exception     */    private void checkText(WebResponse resp,String id,String text) throws Exception {        HTMLElement element = resp.getElementWithID(id);        assertNotNull(element);        assertEquals(text,element.getText());    }    /**     * Utility function to check the text content of an HTML element     * @param resp web response     * @param id HTML element id     * @param text expected start of the text     * @throws Exception     */    private void checkTextStart(WebResponse resp,String id,String text) throws Exception {        HTMLElement element = resp.getElementWithID(id);        assertNotNull(element);        assertTrue(element.getText().startsWith(text));    }    /**     * Utility function to check the text content of an HTML element     * @param resp web response     * @param id HTML element id     * @param text expected contained text     * @throws Exception     */    private void checkTextContent(WebResponse resp,String id,String text) throws Exception {        HTMLElement element = resp.getElementWithID(id);        assertNotNull(element);        assertTrue(element.getText().indexOf(text) != -1);    }    /**     * Utility function to check the text content of an HTML element     * @param resp web response     * @param id HTML element id     * @param regex expected regex     * @throws Exception     */    private void checkTextRegex(WebResponse resp,String id,String regex) throws Exception {        HTMLElement element = resp.getElementWithID(id);        assertNotNull(element);        Pattern pattern = Pattern.compile(regex);        Matcher matcher = pattern.matcher(element.getText());        assertTrue(matcher.matches());    }    /**     *     * @param orig original web response     * @param formname form name     * @param paramname parameter name     * @param value parameter value     * @return new web response     * @throws Exception     */    private WebResponse submitWithParam(WebResponse orig, String formname, String paramname, String value) throws Exception {        WebForm form = orig.getFormWithName(formname);        form.setParameter(paramname,value);        return form.submit();    }    /**     * Used for debugging testcases     * @param resp webresponse     */    private void dump(WebResponse resp) {        try {            PrintWriter pw = new PrintWriter("/tmp/dump.html");            pw.println(resp.getText());            pw.flush();            pw.close();        } catch (IOException ioe) {        }    }    /******* Tests **********/    public @Test void testBrowserSnifferTool() throws Exception {        WebConversation conv = new WebConversation();        WebRequest req = new GetMethodWebRequest(ROOT_URL+"browser.vm");        WebResponse resp = conv.getResponse(req);        /* check we are identified as a Java (HttpUnit) client */        checkText(resp,"Java","true");    }    public @Test void testContextTool() throws Exception {        WebConversation conv = new WebConversation();        WebRequest req = new GetMethodWebRequest(ROOT_URL+"context.vm");        WebResponse resp = conv.getResponse(req);        /* check that getThis() is a ChainedContext instance */        checkTextStart(resp,"this","org.apache.velocity.tools.view.context.ChainedContext");        /* check contains('context') */        resp = submitWithParam(resp,"contains","contains","context");        checkText(resp,"contains","true");        /* check get('context') */        resp = submitWithParam(resp,"get","get","context");        checkTextStart(resp,"get","org.apache.velocity.tools.view.tools.ContextTool");        /* check keys (the only expected uppercase is in 'velocityCount') */        checkTextRegex(resp,"keys","^\\[[a-z_C]+(?:,\\s*[a-z_C]+)*\\]$");        /* check toolbox */        checkTextRegex(resp,"toolbox","^\\{[a-z_C]+=.*(?:,\\s*[a-z_C]+=.*)*\\}$");        /* check values */        checkTextRegex(resp,"values","^\\[.*\\]$");    }    public @Test void testCookiesTool() throws Exception {        WebConversation conv = new WebConversation();        WebRequest req = new GetMethodWebRequest(ROOT_URL+"cookies.vm");        WebResponse resp = conv.getResponse(req);        /* check all */        checkTextStart(resp,"all","[Ljavax.servlet.http.Cookie;");        /* check get('JSESSIONID') */        resp = submitWithParam(resp,"get","get","JSESSIONID");        checkTextStart(resp,"get","javax.servlet.http.Cookie");        /* check add('foo','bar') */        WebForm form = resp.getFormWithName("add2");        form.setParameter("add1","foo");        form.setParameter("add2","bar");        resp = form.submit();        resp = submitWithParam(resp,"get","get","foo");        checkTextStart(resp,"get","javax.servlet.http.Cookie");    }    public @Test void testLinkTool() throws Exception {        WebConversation conv = new WebConversation();        WebRequest req = new GetMethodWebRequest(ROOT_URL+"link.vm");        WebResponse resp = conv.getResponse(req);        /* check anchor(foo) and anchor */        resp = submitWithParam(resp,"anchor","anchor","foo");        checkText(resp,"anchor","#foo");        checkText(resp,"altanchor","#foo");        /* check uri(bar) and uri */        resp = submitWithParam(resp,"uri","uri","bar");        checkText(resp,"uri","bar");        checkText(resp,"alturi","bar");        /* check relative(foo) */        resp = submitWithParam(resp,"relative","relative","foo");        checkText(resp,"relative","/foo");        /* check absolute(bar) */        resp = submitWithParam(resp,"absolute","absolute","bar");        checkText(resp,"absolute",ROOT_URL + "bar");        /* check contextURL */        checkText(resp,"contextURL",ROOT_URL.substring(0,ROOT_URL.length()-1));        /* check contextPath */        checkText(resp,"contextPath","");        /* check requestPath */        checkText(resp,"requestPath","/link.vm");        /* check baseRef */        checkText(resp,"baseRef",ROOT_URL+"link.vm");        /* check self */        checkText(resp,"self","/link.vm");        /* check encodeURL */        resp = submitWithParam(resp,"encodeURL","encodeURL",": /");        checkText(resp,"encodeURL","%3A+%2F");    }    public @Test void testParameterParserTool() throws Exception {        WebConversation conv = new WebConversation();        WebRequest req = new GetMethodWebRequest(ROOT_URL+"params.vm?foo=bar&b=false&n=55&d=1.2");        WebResponse resp = conv.getResponse(req);        /* check exists(foo) */        resp = submitWithParam(resp,"exists","exists","foo");        checkText(resp,"exists","true");        /* check get(foo) */        resp = submitWithParam(resp,"get","get","foo");        checkText(resp,"get","bar");        /* check getString(foo) */        resp = submitWithParam(resp,"getString","getString","foo");        checkText(resp,"getString","bar");        /* check getBoolean(b) */        resp = submitWithParam(resp,"getBoolean","getBoolean","b");        checkText(resp,"getBoolean","false");        /* check getNumber(n) */        resp = submitWithParam(resp,"getNumber","getNumber","n");        checkText(resp,"getNumber","55");        /* check getDouble(d) */        resp = submitWithParam(resp,"getDouble","getDouble","d");        checkText(resp,"getDouble","1.2");        /* check getInteger(n) */        resp = submitWithParam(resp,"getInteger","getInteger","n");        checkText(resp,"getInteger","55");        /* check getStrings(foo) */        resp = submitWithParam(resp,"getStrings","getStrings","foo");        checkTextStart(resp,"getStrings","[Ljava.lang.String;@");        /* check getBooleans(b) */        resp = submitWithParam(resp,"getBooleans","getBooleans","b");        checkTextStart(resp,"getBooleans","[Ljava.lang.Boolean;@");        /* check getNumbers(n) */        resp = submitWithParam(resp,"getNumbers","getNumbers","n");        checkTextStart(resp,"getNumbers","[Ljava.lang.Number;@");        /* check getDoubles(d) */        resp = submitWithParam(resp,"getDoubles","getDoubles","d");        checkTextStart(resp,"getDoubles","[D@");        /* check getInts(n) */        resp = submitWithParam(resp,"getInts","getInts","n");        checkTextStart(resp,"getInts","[I@");        /* check getString(bar,foo) */        WebForm form = resp.getFormWithName("getString2");        form.setParameter("getString1","'bar'");        form.setParameter("getString2","'foo'");        resp = form.submit();        checkText(resp,"getString2","foo");        /* TODO other getters with default values */        /* check all */        checkTextRegex(resp,"all","^\\{.*\\}$");    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -