package com.intellij.flex.uiDesigner; import com.intellij.flex.model.bc.OutputType; import com.intellij.openapi.roots.ModifiableRootModel; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.xml.XmlFile; import com.intellij.util.TripleFunction; import java.io.IOException; import java.util.List; @Flex(version="4.5") public class StyleTest extends MxmlTestBase { @Override protected String getSourceBasePath() { return getName().equals("testAlwaysCreateChildStyleManagerForAppDocument") ? "AlwaysCreateChildStyleManagerForAppDocument" : "css"; } public void testLibraryCssDefaults() throws Exception { testFile("emptyForCheckLibrariesCssDefaults.mxml"); } @Override protected void assertAfterInitLibrarySets(List<XmlFile> unregisteredDocumentReferences) throws IOException { super.assertAfterInitLibrarySets(unregisteredDocumentReferences); if (getName().equals("testStyleTag")) { final ProblemsHolder problemsHolder = new ProblemsHolder(); client.registerDocumentReferences(unregisteredDocumentReferences, myModule, problemsHolder); assertTrue(problemsHolder.isEmpty()); } } @Flex(requireLocalStyleHolder=true, rawProjectRoot=true) public void testStyleTag() throws Exception { testFile("StyleTag.mxml", "testPackage/CustomSkinInPackage.mxml"); } @Flex(version="4.6", requireLocalStyleHolder=true, rawProjectRoot=true) public void testStyleTag_46() throws Exception { testFile("StyleTag.mxml", "testPackage/CustomSkinInPackage.mxml"); } @Flex(version="4.1", requireLocalStyleHolder=true) // see mx.controls.ButtonBar line 528 in flex sdk 4.1 public void testMxButtonBar41WithLocalStyleHolder() throws Exception { moduleInitializer = (model, sourceDir, libs1) -> { final VirtualFile assetsDir = DesignerTests.getFile("assets"); model.addContentEntry(assetsDir).addSourceFolder(assetsDir, false); return null; }; // must be tested with local style holder testFile("../mx/MxComponents.mxml", "StyleTagWithSource.mxml", "externalCss.css"); } @Flex(requireLocalStyleHolder=true) public void testStyleTagWithSource() throws Exception { testFile("StyleTagWithSource.mxml", "externalCss.css"); } @Flex(requireLocalStyleHolder = true) public void testStyleTagWithSourceAsRelativePath() throws Exception { testFile("StyleTagWithSourceAsRelativePath.mxml", "externalCss.css"); } @Flex(requireLocalStyleHolder=true) public void testApplicationLevelGlobalSelector() throws Exception { testFile("ApplicationLevelGlobalSelector.mxml"); } @Flex(rawProjectRoot=true) public void testComponentWithCustomSkin() throws Exception { testFiles(new String[]{"ComponentWithCustomSkin.mxml", "ComponentWithCustomSkinInPackage.mxml", "ComponentWithCustomSkinAsBinding.mxml"}, "CustomSkin.mxml", "AuxMyButtonSkin.mxml", "testPackage/CustomSkinInPackage.mxml"); } @Flex(requireLocalStyleHolder = true) public void testLibraryWithDefaultsCss() throws Exception { testFile("LibraryWithDefaultsCss.mxml", "defaults.css"); } @Flex(requireLocalStyleHolder = true) public void testSeveralStyleSources() throws Exception { testFile("SeveralStyleSources.mxml", "defaults.css"); } @Flex(requireLocalStyleHolder = true) public void testAlwaysCreateChildStyleManagerForAppDocument() throws Exception { testFiles(new String[]{"App2.mxml", "App1.mxml"}, "../css/defaults.css"); } @Override protected OutputType getOutputType() { return getName().equals("testLibraryWithDefaultsCss") ? OutputType.Library : super.getOutputType(); } }