#ifndef SVGTests_h
#define SVGTests_h
#if ENABLE(SVG)
#include "SVGAnimatedProperty.h"
#include "SVGAnimatedPropertyMacros.h"
#include "SVGStringList.h"
namespace WebCore {
class Attribute;
class QualifiedName;
class SVGElement;
class SVGTests {
public:
SVGStringList& requiredFeatures();
SVGStringList& requiredExtensions();
SVGStringList& systemLanguage();
bool hasExtension(const String&) const;
bool isValid() const;
bool parseAttribute(const QualifiedName&, const AtomicString&);
bool isKnownAttribute(const QualifiedName&);
void addSupportedAttributes(HashSet<QualifiedName>&);
bool handleAttributeChange(SVGElement*, const QualifiedName&);
static SVGAttributeToPropertyMap& attributeToPropertyMap();
protected:
SVGTests();
void synchronizeRequiredFeatures(SVGElement* contextElement);
void synchronizeRequiredExtensions(SVGElement* contextElement);
void synchronizeSystemLanguage(SVGElement* contextElement);
private:
static const SVGPropertyInfo* requiredFeaturesPropertyInfo();
SVGSynchronizableAnimatedProperty<SVGStringList> m_requiredFeatures;
static const SVGPropertyInfo* requiredExtensionsPropertyInfo();
SVGSynchronizableAnimatedProperty<SVGStringList> m_requiredExtensions;
static const SVGPropertyInfo* systemLanguagePropertyInfo();
SVGSynchronizableAnimatedProperty<SVGStringList> m_systemLanguage;
};
}
#endif // ENABLE(SVG)
#endif // SVGTests_h