public boolean isTestClass(@NotNull JSClass clazz, boolean allowSuite) { if (clazz instanceof XmlBackedJSClassImpl) return false; if (clazz.getAttributeList() == null) return false; if (clazz.getAttributeList().getAccessType() != JSAttributeList.AccessType.PUBLIC) return false; if (allowSuite && isSuite(clazz)) return true; final boolean flexUnit1Subclass = isFlexUnit1Subclass(clazz); if (!flexUnit1Subclass && !flexUnit4Present) return false; if (getCustomRunner(clazz) == null) { for (JSFunction method : clazz.getFunctions()) { if (method.getKind() == JSFunction.FunctionKind.CONSTRUCTOR && ValidateTypesUtil.hasRequiredParameters(method)) return false; } } if (!flexUnit1Subclass && !isFlunitSubclass(clazz)) { boolean hasTests = false; for (JSFunction method : clazz.getFunctions()) { if (isTestMethod(method)) { hasTests = true; break; } } if (!hasTests) return false; } return true; }
public static XmlAttributeDescriptor[] getBindingDescriptors(JSImplicitElement declaration) { final JSClass clazz = PsiTreeUtil.getParentOfType(declaration, JSClass.class); if (clazz != null) { JSVariable[] fields = clazz.getFields(); final List<XmlAttributeDescriptor> result = new ArrayList<XmlAttributeDescriptor>(fields.length); for (JSVariable field : fields) { result.add(createBinding(field)); } for (JSFunction function : clazz.getFunctions()) { if (function.isSetProperty()) { result.add(createBinding(function)); } } return result.toArray(new XmlAttributeDescriptor[result.size()]); } return EMPTY; }
public boolean isPotentialTestMethod(JSFunction method) { if (method.getKind() == JSFunction.FunctionKind.CONSTRUCTOR) return false; PsiElement parent = method.getParent(); if (parent instanceof JSClass && (isFlunitSubclass((JSClass) parent) || isFlexUnit1Subclass((JSClass) parent))) { if (method.getName() != null && method.getName().startsWith("test")) return true; } if (method.getAttributeList() != null && method.getAttributeList().getAttributesByName(TEST_ATTRIBUTE).length > 0 && method.getAttributeList().getAttributesByName(IGNORE_ATTRIBUTE).length == 0) { return true; } return false; }
public boolean isTestMethod(JSFunction method) { if (!(method.getParent() instanceof JSClass) || method.getParent() instanceof XmlBackedJSClassImpl) return false; JSClass clazz = (JSClass) method.getParent(); // FlexUnit 1: flexunit.framework.TestCase.getTestMethodNames() // Flunit: net.digitalprimates.fluint.tests.defaultFilterFunction() // FlexUnit 4: org.flexunit.runners.BlockFlexUnit4ClassRunner if (method.getName() == null) return false; if (flexUnit4Present && getCustomRunner(clazz) != null) return true; if (method.getAttributeList() == null) return false; if (method.getAttributeList().getAccessType() != JSAttributeList.AccessType.PUBLIC) return false; if (method.getKind() != JSFunction.FunctionKind.SIMPLE) return false; if (method.getAttributeList().hasModifier(JSAttributeList.ModifierType.STATIC)) return false; if (ValidateTypesUtil.hasRequiredParameters(method)) return false; if (isFlexUnit1Subclass(clazz)) { if (!method.getName().startsWith("test")) return false; } else if (isFlunitSubclass(clazz)) { if (!method.getName().startsWith("test") && method.getAttributeList().getAttributesByName(TEST_ATTRIBUTE).length == 0) return false; } else { if (!flexUnit4Present) return false; final JSType returnType = method.getReturnType(); if (returnType != null && !(returnType instanceof JSVoidType)) return false; if (method.getAttributeList().getAttributesByName(IGNORE_ATTRIBUTE).length > 0) return false; if (method.getAttributeList().getAttributesByName(TEST_ATTRIBUTE).length == 0) return false; } return true; }