001    // Copyright 2005 The Apache Software Foundation
002    //
003    // Licensed under the Apache License, Version 2.0 (the "License");
004    // you may not use this file except in compliance with the License.
005    // You may obtain a copy of the License at
006    //
007    //     http://www.apache.org/licenses/LICENSE-2.0
008    //
009    // Unless required by applicable law or agreed to in writing, software
010    // distributed under the License is distributed on an "AS IS" BASIS,
011    // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
012    // See the License for the specific language governing permissions and
013    // limitations under the License.
014    
015    package org.apache.tapestry.engine;
016    
017    import org.apache.tapestry.web.WebRequest;
018    import org.testng.annotations.Test;
019    
020    /**
021     * Tests for code inside {@link org.apache.tapestry.engine.EngineUtils}.
022     * 
023     * @author Howard M. Lewis Ship
024     * @since 4.0
025     */
026    @Test(sequential = true)
027    public class EngineUtilsTest extends ServiceTestCase
028    {
029    
030        public void testNeedAbsoluteURLForScheme()
031        {
032            WebRequest request = newRequest();
033    
034            trainGetScheme(request, "http");
035    
036            replay();
037    
038            assertEquals(true, EngineUtils.needAbsoluteURL("https", null, 0, request));
039    
040            verify();
041        }
042    
043        public void testNeedAbsoluteURLForServer()
044        {
045            WebRequest request = newRequest();
046    
047            trainGetServerName(request, "someserver.net");
048    
049            replay();
050    
051            assertEquals(true, EngineUtils.needAbsoluteURL(null, "myserver.com", 0, request));
052    
053            verify();
054        }
055    
056        public void testNeedAbsoluteURLForServerPort()
057        {
058            WebRequest request = newRequest();
059    
060            trainGetServerPort(request, 80);
061    
062            replay();
063    
064            assertEquals(true, EngineUtils.needAbsoluteURL(null, null, 8197, request));
065    
066            verify();
067        }
068    
069        public void testDontNeedAbsoluteURL()
070        {
071            WebRequest request = newRequest();
072    
073            replay();
074    
075            assertEquals(false, EngineUtils.needAbsoluteURL(null, null, 0, request));
076    
077            verify();
078    
079            trainGetScheme(request, "http");
080    
081            trainGetServerName(request, "myserver.com");
082    
083            trainGetServerPort(request, 80);
084    
085            replay();
086    
087            assertEquals(false, EngineUtils.needAbsoluteURL("http", "myserver.com", 80, request));
088    
089            verify();
090        }
091    }