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