001    /**
002     * Copyright (c) 2000-2013 Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.portal.tools.seleniumbuilder;
016    
017    import com.liferay.portal.kernel.util.SetUtil;
018    import com.liferay.portal.kernel.util.StringUtil;
019    import com.liferay.portal.tools.ArgumentsUtil;
020    import com.liferay.portal.util.InitUtil;
021    
022    import java.util.Map;
023    import java.util.Set;
024    
025    /**
026     * @author Michael Hashimoto
027     */
028    public class SeleniumBuilder {
029    
030            public static void main(String[] args) throws Exception {
031                    InitUtil.initWithSpring();
032    
033                    new SeleniumBuilder(args);
034            }
035    
036            public SeleniumBuilder(String[] args) throws Exception {
037                    Map<String, String> arguments = ArgumentsUtil.parseArguments(args);
038    
039                    String baseDir = arguments.get("selenium.base.dir");
040    
041                    SeleniumBuilderContext seleniumBuilderContext =
042                            new SeleniumBuilderContext(baseDir);
043    
044                    Set<String> types = SetUtil.fromArray(
045                            StringUtil.split(arguments.get("selenium.types")));
046    
047                    if (types.contains("action")) {
048                            ActionConverter actionConverter = new ActionConverter(
049                                    seleniumBuilderContext);
050    
051                            Set<String> actionNames = seleniumBuilderContext.getActionNames();
052    
053                            for (String actionName : actionNames) {
054                                    seleniumBuilderContext.validateActionElements(actionName);
055    
056                                    actionConverter.convert(actionName);
057                            }
058                    }
059    
060                    if (types.contains("function")) {
061                            FunctionConverter functionConverter = new FunctionConverter(
062                                    seleniumBuilderContext);
063    
064                            Set<String> functionNames =
065                                    seleniumBuilderContext.getFunctionNames();
066    
067                            for (String functionName : functionNames) {
068                                    seleniumBuilderContext.validateFunctionElements(functionName);
069    
070                                    functionConverter.convert(functionName);
071                            }
072                    }
073    
074                    if (types.contains("macro")) {
075                            MacroConverter macroConverter = new MacroConverter(
076                                    seleniumBuilderContext);
077    
078                            Set<String> macroNames = seleniumBuilderContext.getMacroNames();
079    
080                            for (String macroName : macroNames) {
081                                    seleniumBuilderContext.validateMacroElements(macroName);
082    
083                                    macroConverter.convert(macroName);
084                            }
085                    }
086    
087                    if (types.contains("path")) {
088                            PathConverter pathConverter = new PathConverter(
089                                    seleniumBuilderContext);
090    
091                            Set<String> pathNames = seleniumBuilderContext.getPathNames();
092    
093                            for (String pathName : pathNames) {
094                                    pathConverter.convert(pathName);
095                            }
096                    }
097    
098                    if (types.contains("testcase")) {
099                            TestCaseConverter testCaseConverter = new TestCaseConverter(
100                                    seleniumBuilderContext);
101    
102                            Set<String> testCaseNames =
103                                    seleniumBuilderContext.getTestCaseNames();
104    
105                            for (String testCaseName : testCaseNames) {
106                                    seleniumBuilderContext.validateTestCaseElements(testCaseName);
107    
108                                    testCaseConverter.convert(testCaseName);
109                            }
110                    }
111    
112                    if (types.contains("testsuite")) {
113                            TestSuiteConverter testSuiteConverter = new TestSuiteConverter(
114                                    seleniumBuilderContext);
115    
116                            Set<String> testSuiteNames =
117                                    seleniumBuilderContext.getTestSuiteNames();
118    
119                            for (String testSuiteName : testSuiteNames) {
120                                    seleniumBuilderContext.validateTestSuiteElements(testSuiteName);
121    
122                                    testSuiteConverter.convert(testSuiteName);
123                            }
124                    }
125            }
126    
127    }