001    // Copyright 2007, 2010 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.tapestry5.test;
016    
017    import java.io.File;
018    import java.lang.reflect.Method;
019    
020    import org.testng.ITestContext;
021    import org.testng.xml.XmlTest;
022    
023    import com.thoughtworks.selenium.CommandProcessor;
024    import com.thoughtworks.selenium.Selenium;
025    
026    public class TapestryTestConstants
027    {
028        /**
029         * The current working directory (i.e., property "user.dir").
030         */
031        public static final String CURRENT_DIR_PATH = System.getProperty("user.dir");
032    
033        /**
034         * The Surefire plugin sets basedir but DOES NOT change the current working directory. When
035         * building across modules, basedir changes for each module, but user.dir does not. This value should be used when
036         * referencing local files. Outside of surefire, the "basedir" property will not be set, and the current working
037         * directory will be the default.
038         */
039        public static final String MODULE_BASE_DIR_PATH = System.getProperty("basedir", CURRENT_DIR_PATH);
040    
041        /**
042         * {@link #MODULE_BASE_DIR_PATH} as a file.
043         */
044        public static final File MODULE_BASE_DIR = new File(MODULE_BASE_DIR_PATH);
045    
046        /**
047         * {@link ITestContext} attribute holding an instance of {@link Selenium}.
048         * 
049         * @see SeleniumTestCase#testStartup(org.testng.ITestContext, org.testng.xml.XmlTest)
050         * @since 5.2.0
051         */
052        public static final String SELENIUM_ATTRIBUTE = "tapestry.selenium";
053    
054        /**
055         * {@link ITestContext} attribute holding an instance of {@link ErrorReporter}.
056         * 
057         * @see SeleniumTestCase#testStartup(org.testng.ITestContext, org.testng.xml.XmlTest)
058         * @since 5.2.0
059         */
060        public static final String ERROR_REPORTER_ATTRIBUTE = "tapestry.error-reporter";
061    
062        /**
063         * {@link ITestContext} attribute holding an instance of {@link ErrorReporter}, used
064         * to shutdown Selenium and the Web Server at the end of the test.
065         * 
066         * @since 5.2.2
067         */
068        public static final String SHUTDOWN_ATTRIBUTE = "tapestry.shutdown";
069    
070        /**
071         * The {@link ITestContext} attribute holding an instance of {@link CommandProcessor}, with
072         * enhanced exception reporting control. This allows tests that wish to, to bypass the {@link Selenium} interface
073         * and execute commands directly on the Selenium RC server.
074         * 
075         * @since 5.2.0
076         */
077        public static final String COMMAND_PROCESSOR_ATTRIBUTE = "tapestry.command-processor";
078    
079        /**
080         * {@link ITestContext} attribute holding the application's base URL.
081         * @since 5.2.0
082         */
083        public static final String BASE_URL_ATTRIBUTE = "tapestry.base-url";
084    
085        /**
086         * {@link ITestContext} attribute updated to store the current test method
087         * (as a {@link Method} instance).
088         */
089        public static final String CURRENT_TEST_METHOD_ATTRIBUTE = "tapestry.current-test-method";
090    
091        /**
092         * {@link XmlTest} parameter holding an absolute or relative path to a web app
093         * folder.
094         */
095        public static final String WEB_APP_FOLDER_PARAMETER = "tapestry.web-app-folder";
096    
097        /**
098         * {@link XmlTest} parameter holding the context path.
099         */
100        public static final String CONTEXT_PATH_PARAMETER = "tapestry.context-path";
101    
102        /**
103         * {@link XmlTest} parameter holding the web server port.
104         */
105        public static final String PORT_PARAMETER = "tapestry.port";
106    
107        /**
108         * {@link XmlTest} parameter holding the web server ssl port.
109         */
110        public static final String SSL_PORT_PARAMETER = "tapestry.ssl-port";
111    
112        /**
113         * {@link XmlTest} parameter holding the browser command to pass to Selenium.
114         */
115        public static final String BROWSER_START_COMMAND_PARAMETER = "tapestry.browser-start-command";
116    
117        /**
118         * {@link XmlTest} parameter holding the servlet container to run for the integration tests.
119         * @since 5.3
120         */
121        public static final String SERVLET_CONTAINER_PARAMETER = "tapestry.servlet-container";
122    }