KHTML
SVGTests.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include "config.h"
00024 #include "wtf/Platform.h"
00025
00026 #if ENABLE(SVG)
00027 #include "SVGTests.h"
00028
00029
00030
00031 #include "SVGElement.h"
00032 #include "SVGNames.h"
00033 #include "SVGStringList.h"
00034
00035 namespace WebCore {
00036
00037 SVGTests::SVGTests()
00038 {
00039 }
00040
00041 SVGTests::~SVGTests()
00042 {
00043 }
00044
00045 SVGStringList* SVGTests::requiredFeatures() const
00046 {
00047 if (!m_features)
00048 m_features = SVGStringList::create(SVGNames::requiredFeaturesAttr);
00049
00050 return m_features.get();
00051 }
00052
00053 SVGStringList* SVGTests::requiredExtensions() const
00054 {
00055 if (!m_extensions)
00056 m_extensions = SVGStringList::create(SVGNames::requiredExtensionsAttr);
00057
00058 return m_extensions.get();
00059 }
00060
00061 SVGStringList* SVGTests::systemLanguage() const
00062 {
00063 if (!m_systemLanguage)
00064 m_systemLanguage = SVGStringList::create(SVGNames::systemLanguageAttr);
00065
00066 return m_systemLanguage.get();
00067 }
00068
00069 bool SVGTests::hasExtension(const String&) const
00070 {
00071 return false;
00072 }
00073
00074 bool SVGTests::isValid() const
00075 {
00076 ExceptionCode ec = 0;
00077
00078 if (m_features) {
00079 for (unsigned long i = 0; i < m_features->numberOfItems(); i++) {
00080 String value = m_features->getItem(i, ec);
00081 if (value.isEmpty() || !DOMImplementation::instance()->hasFeature(value, String()))
00082 return false;
00083 }
00084 }
00085
00086
00087
00088
00089
00090
00091
00092 if (m_extensions && m_extensions->numberOfItems() > 0)
00093 return false;
00094
00095 return true;
00096 }
00097
00098 bool SVGTests::parseMappedAttribute(MappedAttribute* attr)
00099 {
00100 if (attr->name() == SVGNames::requiredFeaturesAttr) {
00101 requiredFeatures()->reset(attr->value());
00102 return true;
00103 } else if (attr->name() == SVGNames::requiredExtensionsAttr) {
00104 requiredExtensions()->reset(attr->value());
00105 return true;
00106 } else if (attr->name() == SVGNames::systemLanguageAttr) {
00107 systemLanguage()->reset(attr->value());
00108 return true;
00109 }
00110
00111 return false;
00112 }
00113
00114 bool SVGTests::isKnownAttribute(const QualifiedName& attrName)
00115 {
00116 return (attrName == SVGNames::requiredFeaturesAttr ||
00117 attrName == SVGNames::requiredExtensionsAttr ||
00118 attrName == SVGNames::systemLanguageAttr);
00119 }
00120
00121 }
00122
00123 #endif // ENABLE(SVG)