Package f

Source Code of f.SDKSWCTests

/*
*
*  Licensed to the Apache Software Foundation (ASF) under one or more
*  contributor license agreements.  See the NOTICE file distributed with
*  this work for additional information regarding copyright ownership.
*  The ASF licenses this file to You 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 f;

import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertThat;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.apache.flex.compiler.clients.COMPC;
import org.apache.flex.compiler.problems.ICompilerProblem;
import org.apache.flex.utils.EnvProperties;
import org.junit.Test;

import com.google.common.collect.ObjectArrays;


/**
* JUnit tests to compile the SWCs of the Flex SDK.
* <p>
* The projects to compile are in the <code>frameworks/projects</code> directory
* referenced by the <code>FLEX_HOME</code> environment variable.
* Each project has a config file which the <code>COMPC</code> uses to compile the SWC.
*
* @author Gordon Smith
*/
public class SDKSWCTests
{
  private static EnvProperties env = EnvProperties.initiate();
 
  private static final String TEXTLAYOUT_NAME = "textLayout";
 
  private String[] extraArgs = new String[]{};
 
  private void compileSWC(String projectName)
  {
    // Construct a command line which simply loads the project's config file.
    assertNotNull("FLEX_HOME not set in unittest.properties", env.SDK);
    assertNotNull("PLAYERGLOBAL_HOME not set in unittest.properties", env.FPSDK);
    assertNotNull("AIR_HOME not set in unittest.properties", env.AIRSDK);
        assertNotNull("TLF_HOME not set in unittest.properties", env.TLF);
   
    System.setProperty("flexlib", env.SDK + "/frameworks");
   
    String output = null;
    String outputSwcName = projectName;
    try
    {
      if(outputSwcName.length() < 3)
        outputSwcName = "_" + outputSwcName;
      File tmpFile = File.createTempFile(outputSwcName, ".swc");
      tmpFile.deleteOnExit();
      output = tmpFile.getAbsolutePath();
    }
    catch (IOException e)
    {
    }

    String configFile;
    if (projectName.equals(TEXTLAYOUT_NAME))
    {
        configFile = env.TLF + "/compile-config.xml";
    }
    else
    {
        configFile = env.SDK + "/frameworks/projects/" + projectName + "/compile-config.xml";
    }
   
    String[] baseArgs = new String[]
    {
      "-load-config+=" + configFile,
      "+env.PLAYERGLOBAL_HOME=" + env.FPSDK,
      "+playerglobal.version=" + env.FPVER,
      "-output=" + output
    };
   
    String [] allArgs = ObjectArrays.concat(baseArgs, extraArgs, String.class);
   
    // Run the COMPC client with the specified command line.
    COMPC compc = new COMPC();
    compc.mainNoExit(allArgs);
   
    // Check that the SWC compiled cleanly.
    List<ICompilerProblem> problems = new ArrayList<ICompilerProblem>();
    for (ICompilerProblem problem : compc.getProblems().getFilteredProblems())
    {
      problems.add(problem);
    }
    assertThat(problems.size(), is(0));
  }
 
  @Test
  public void advancedgridsSWC()
  {
    compileSWC("advancedgrids");
  }
 
  @Test
  public void airframeworkSWC()
  {
        extraArgs = new String[]
        {
            "+env.AIR_HOME=" + env.AIRSDK
        };
       
    compileSWC("airframework");
  }
 
  @Test
  public void airsparkSWC()
  {
        extraArgs = new String[]
        {
            "+env.AIR_HOME=" + env.AIRSDK
        };
       
    compileSWC("airspark");
  }
 
  @Test
  public void apacheSWC()
  {
    compileSWC("apache");
  }
 
  @Test
  public void authoringsupportSWC()
  {
    compileSWC("authoringsupport");
  }
 
  @Test
  public void automationSWC()
  {
    compileSWC("automation");
  }
 
  @Test
  public void automation_agentSWC()
  {
        extraArgs = new String[]
        {
            "-ignore-problems=org.apache.flex.compiler.problems.DuplicateQNameInSourcePathProblem"
        };
       
    compileSWC("automation_agent");
  }
 
  @Test
  public void automation_airsparkSWC()
  {
        extraArgs = new String[]
        {
            "+env.AIR_HOME=" + env.AIRSDK
        };
       
    compileSWC("automation_airspark");
  }
 
    @Test
    public void automation_airSWC()
    {
        extraArgs = new String[]
        {
            "+env.AIR_HOME=" + env.AIRSDK,
            "-ignore-problems=org.apache.flex.compiler.problems.DuplicateQNameInSourcePathProblem"
        };
       
        compileSWC("automation_air");
    }
   
  @Test
  public void automation_dmvSWC()
  {
        extraArgs = new String[]
        {
            "-ignore-problems=org.apache.flex.compiler.problems.DuplicateQNameInSourcePathProblem"
        };
       
    compileSWC("automation_dmv");
  }
 
  @Test
  public void automation_flashflexkitSWC()
  {
    compileSWC("automation_flashflexkit");
  }
 
  @Test
  public void automation_sparkSWC()
  {
    compileSWC("automation_spark");
  }
 
  @Test
  public void chartsSWC()
  {
        extraArgs = new String[]
        {
            "-locale=",
        };
       
    compileSWC("charts");
  }
 
    @Test
    public void coreSWC()
    {
        extraArgs = new String[]
        {
            "-load-config+=" + env.SDK + "/frameworks/projects/framework/framework-config.xml"
        };
       
        compileSWC("core");
    }
   
    @Test
    public void mxSWC()
    {
        extraArgs = new String[]
        {
            "-locale="
        };
       
        compileSWC("mx");
    }
   
    @Test
    public void experimentalSWC() // WARNINGS -> FLEX-33731
    {
        extraArgs = new String[]
        {
            "-ignore-problems=org.apache.flex.compiler.problems.DuplicateSkinStateProblem"
        };
       
        compileSWC("experimental");
    }
   
  @Test
  public void flash_integrationSWC()
  {
    compileSWC("flash-integration");
  }
 
  @Test
  public void frameworkSWC()
  {
        extraArgs = new String[]
        {
            "-load-config+=" + env.SDK + "/frameworks/projects/framework/framework-config.xml"
        };
       
    compileSWC("framework");
  }
 
  @Test
  public void haloSWC()
  {
    compileSWC("halo");
  }
 
  @Test
  public void mobilecomponentsSWC()
  {
        extraArgs = new String[]
        {
            "+env.AIR_HOME=" + env.AIRSDK
        };
       
    compileSWC("mobilecomponents");
  }
 
  @Test
  public void mobilethemeSWC() // WARNINGS -> FLEX-33305
  {
        extraArgs = new String[]
        {
             "-ignore-problems=org.apache.flex.compiler.problems.NoDefinitionForSWCDependencyProblem"
        };
       
    compileSWC("mobiletheme");
  }
 
  /*
  erikdebruin: the playerglobal project doesn't contain source that needs to
               be compiled with COMPC

  @Test
  public void playerglobalSWC()
  {
    compileSWC("playerglobal");
  }
  */
 
  @Test
  public void rpcSWC()
  {
    compileSWC("rpc");
  }
 
  @Test
  public void spark_dmvSWC()
  {
    compileSWC("spark_dmv");
  }
 
  @Test
  public void sparkskinsSWC()
  {
    compileSWC("sparkskins");
  }
 
  @Test
    public void sparkSWC()
    {
        extraArgs = new String[]
        {
            "-ignore-problems=org.apache.flex.compiler.problems.DuplicateSkinStateProblem"
        };

        compileSWC("spark");
    }
   
  @Test
  public void textLayoutSWC()
  {
        extraArgs = new String[]
        {
            "+source.dir=./textlayout",
            "-define=CONFIG::debug,false",
            "-define=CONFIG::release,true"
        };
             
        compileSWC(TEXTLAYOUT_NAME);
  }

    @Test
    public void tool_airSWC()
    {
        extraArgs = new String[]
        {
            "+env.AIR_HOME=" + env.AIRSDK,
            "-ignore-problems=org.apache.flex.compiler.problems.DuplicateQNameInSourcePathProblem"
        };
       
        compileSWC("tool_air");
    }
 
  @Test
  public void toolSWC()
  {
        extraArgs = new String[]
        {
            "-ignore-problems=org.apache.flex.compiler.problems.DuplicateQNameInSourcePathProblem"
        };
       
    compileSWC("tool");
 
 
  @Test
  public void wireframeSWC() // WARNINGS -> FLEX-33310
  {
        extraArgs = new String[]
        {
            "-ignore-problems=org.apache.flex.compiler.problems.DuplicateSkinStateProblem"
        };
       
    compileSWC("wireframe");
  }

}
TOP

Related Classes of f.SDKSWCTests

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.