/* * 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. */ package org.apache.cocoon; /** * Testcase to simulate the behavior of a user that opens a browser, starts * the calculator example, and goes back in the processing several times. * * @version $Id: $ */ public class CalcTestCase extends HtmlUnitTestCase { final String pageurl = "/samples/flow/jxcalc/"; final String submitXPath = "html/body//form/@action"; final String resultXPath = "html/body//form/p[contains(text(),'Result')]/strong"; public void testCalc() throws Exception { loadHtmlPage(pageurl); final String cont1 = evalXPath(submitXPath); assertNotNull("cont1", cont1); loadHtmlPage(pageurl+cont1+"?a=1"); final String cont2 = evalXPath(submitXPath); assertNotNull("cont2", cont2); loadHtmlPage(pageurl+cont2+"?b=2"); final String cont3 = evalXPath(submitXPath); assertNotNull("cont3", cont3); loadHtmlPage(pageurl+cont3+"?operator=plus"); final String result1 = evalXPath(resultXPath); assertEquals("result1", "3.0", result1); // Simulate going back in the browser loadHtmlPage(pageurl+cont2+"?b=4"); final String cont4 = evalXPath(submitXPath); assertNotNull("cont4", cont4); loadHtmlPage(pageurl+cont4+"?operator=minus"); final String result2 = evalXPath(resultXPath); assertEquals("result2", "-3.0", result2); // Simulate going back again in the browser loadHtmlPage(pageurl+cont4+"?operator=divide"); final String result3 = evalXPath(resultXPath); assertEquals("result3", "0.25", result3); } }