/* * Copyright 2013 Google Inc. * * Licensed 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 com.google.gwt.dev; import junit.framework.TestCase; /** * Test for PrecompileTaskArgProcessor. */ public class PrecompileTaskArgProcessorTest extends TestCase { private PrecompileTaskOptions defaultOptions = new PrecompileTaskOptionsImpl(); private PrecompileTaskOptions handledOptions = new PrecompileTaskOptionsImpl(); private PrecompileTaskArgProcessor precompileTaskArgProcessor; private static void assertNotEquals(boolean expected, boolean actual) { assertTrue(expected != actual); } @Override protected void setUp() throws Exception { precompileTaskArgProcessor = new PrecompileTaskArgProcessor(handledOptions); } public void testFlagBackwardCompatibility() { // Set a bunch of boolean flags using old-style tags. precompileTaskArgProcessor.processArgs("-workDir", "/tmp", "-XcompilerMetrics", "-XdisableClassMetadata", "-XdisableClusterSimilarFunctions", "-XdisableInlineLiteralParameters", "-XdisableOptimizeDataflow", "-XdisableOrdinalizeEnums", "-XdisableRemoveDuplicateFunctions", "-XdisableRunAsync", "-XdisableSoycHtml", "-XdisableUpdateCheck", "-ea", "-soyc", "-XsoycDetailed", "-XenableJsonSoyc", "-strict", "com.google.gwt.dev.DevModule"); // Show that the flags were recognized and ended up modifying options. assertNotEquals( defaultOptions.isCompilerMetricsEnabled(), handledOptions.isCompilerMetricsEnabled()); assertNotEquals( defaultOptions.isClassMetadataDisabled(), handledOptions.isClassMetadataDisabled()); assertNotEquals(defaultOptions.shouldClusterSimilarFunctions(), handledOptions.shouldClusterSimilarFunctions()); assertNotEquals(defaultOptions.shouldInlineLiteralParameters(), handledOptions.shouldInlineLiteralParameters()); assertNotEquals( defaultOptions.shouldOptimizeDataflow(), handledOptions.shouldOptimizeDataflow()); assertNotEquals(defaultOptions.shouldOrdinalizeEnums(), handledOptions.shouldOrdinalizeEnums()); assertNotEquals(defaultOptions.shouldRemoveDuplicateFunctions(), handledOptions.shouldRemoveDuplicateFunctions()); assertNotEquals(defaultOptions.isRunAsyncEnabled(), handledOptions.isRunAsyncEnabled()); assertNotEquals(defaultOptions.isSoycHtmlDisabled(), handledOptions.isSoycHtmlDisabled()); assertNotEquals(defaultOptions.isUpdateCheckDisabled(), handledOptions.isUpdateCheckDisabled()); assertNotEquals(defaultOptions.isEnableAssertions(), handledOptions.isEnableAssertions()); assertNotEquals(defaultOptions.isSoycEnabled(), handledOptions.isSoycEnabled()); assertNotEquals(defaultOptions.isSoycExtra(), handledOptions.isSoycExtra()); assertNotEquals(defaultOptions.isJsonSoycEnabled(), handledOptions.isJsonSoycEnabled()); assertNotEquals(defaultOptions.isStrict(), handledOptions.isStrict()); } public void testFlagBackwardCompatibility_draftCompile() { // Set draftCompile using the old-style tag. precompileTaskArgProcessor.processArgs( "-workDir", "/tmp", "-draftCompile", "com.google.gwt.dev.DevModule"); // Show that the flags were recognized and ended up modifying options. assertTrue(defaultOptions.getOptimizationLevel() != handledOptions.getOptimizationLevel()); } }