001package org.apache.turbine;
002
003/*
004 * Licensed to the Apache Software Foundation (ASF) under one
005 * or more contributor license agreements.  See the NOTICE file
006 * distributed with this work for additional information
007 * regarding copyright ownership.  The ASF licenses this file
008 * to you under the Apache License, Version 2.0 (the
009 * "License"); you may not use this file except in compliance
010 * with the License.  You may obtain a copy of the License at
011 *
012 *   http://www.apache.org/licenses/LICENSE-2.0
013 *
014 * Unless required by applicable law or agreed to in writing,
015 * software distributed under the License is distributed on an
016 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017 * KIND, either express or implied.  See the License for the
018 * specific language governing permissions and limitations
019 * under the License.
020 */
021
022import static org.junit.Assert.assertEquals;
023import static org.junit.Assert.assertNotNull;
024
025import javax.servlet.http.HttpServletRequest;
026import javax.servlet.http.HttpServletResponse;
027
028import org.apache.turbine.test.BaseTestCase;
029import org.apache.turbine.util.TurbineConfig;
030import org.junit.Test;
031import org.mockito.Mockito;
032
033/**
034 * This testcase verifies that TurbineConfig can be used to startup Turbine in a
035 * non servlet environment properly.
036 *
037 * @author <a href="mailto:epugh@opensourceconnections.com">Eric Pugh </a>
038 * @author <a href="mailto:peter@courcoux.biz">Peter Courcoux </a>
039 * @version $Id: TurbineTest.java 1754909 2016-08-02 12:55:35Z tv $
040 */
041public class TurbineTest extends BaseTestCase
042{
043
044    @Test
045    public void testTurbineAndFirstGet() throws Exception
046    {
047        TurbineConfig tc = new TurbineConfig(".",
048                "/conf/test/CompleteTurbineResources.properties");
049        tc.initialize();
050
051        assertNotNull(Turbine.getDefaultServerData());
052        assertEquals("", Turbine.getServerName());
053        assertEquals("80", Turbine.getServerPort());
054        assertEquals("", Turbine.getScriptName());
055        Turbine t = tc.getTurbine();
056
057        HttpServletRequest request = getMockRequest();
058        HttpServletResponse resp = Mockito.mock(HttpServletResponse.class);
059
060        t.doGet(request, resp);
061
062        assertEquals("8080", Turbine.getServerPort());
063        t.destroy();
064        tc.dispose();
065    }
066
067    @Test
068    public void testDefaultInputEncoding() throws Exception
069    {
070        TurbineConfig tc = new TurbineConfig(".",
071                "/conf/test/CompleteTurbineResources.properties");
072        tc.initialize();
073        Turbine t = tc.getTurbine();
074        assertNotNull(t.getDefaultInputEncoding());
075        assertEquals(TurbineConstants.PARAMETER_ENCODING_DEFAULT, t.getDefaultInputEncoding());
076        t.destroy();
077        tc.dispose();
078    }
079
080    @Test
081    public void testNonDefaultEncoding()
082    {
083        TurbineConfig tc = new TurbineConfig(".",
084                "/conf/test/CompleteTurbineResourcesWithEncoding.properties");
085        tc.initialize();
086        Turbine t = tc.getTurbine();
087        assertNotNull(t.getDefaultInputEncoding());
088        assertEquals("UTF-8", t.getDefaultInputEncoding());
089        tc.dispose();
090    }
091}