diff options
Diffstat (limited to 'chromium/third_party/WebKit/Source/core/html/LinkRelAttributeTest.cpp')
-rw-r--r-- | chromium/third_party/WebKit/Source/core/html/LinkRelAttributeTest.cpp | 67 |
1 files changed, 59 insertions, 8 deletions
diff --git a/chromium/third_party/WebKit/Source/core/html/LinkRelAttributeTest.cpp b/chromium/third_party/WebKit/Source/core/html/LinkRelAttributeTest.cpp index beac0e64066..e75ea4d97eb 100644 --- a/chromium/third_party/WebKit/Source/core/html/LinkRelAttributeTest.cpp +++ b/chromium/third_party/WebKit/Source/core/html/LinkRelAttributeTest.cpp @@ -30,6 +30,7 @@ #include "config.h" #include "core/html/LinkRelAttribute.h" +#include "platform/RuntimeEnabledFeatures.h" #include "wtf/text/CString.h" #include <gtest/gtest.h> @@ -38,6 +39,22 @@ using namespace WebCore; namespace { +class LinkRelAttributeTest : public testing::Test { +protected: + virtual void SetUp() + { + m_touchIconLoadingEnabled = RuntimeEnabledFeatures::touchIconLoadingEnabled(); + } + + virtual void TearDown() + { + RuntimeEnabledFeatures::setTouchIconLoadingEnabled(m_touchIconLoadingEnabled); + } + +private: + bool m_touchIconLoadingEnabled; +}; + static inline void testLinkRelAttribute(String value, bool isStyleSheet, IconType iconType, bool isAlternate, bool isDNSPrefetch, bool isLinkSubresource, bool isLinkPrerender, bool isImport = false) { LinkRelAttribute linkRelAttribute(value); @@ -50,8 +67,10 @@ static inline void testLinkRelAttribute(String value, bool isStyleSheet, IconTyp ASSERT_EQ(isImport, linkRelAttribute.isImport()) << value.utf8().data(); } -TEST(CoreLinkRelAttribute, Constructor) +TEST_F(LinkRelAttributeTest, Constructor) { + RuntimeEnabledFeatures::setTouchIconLoadingEnabled(false); + testLinkRelAttribute("stylesheet", true, InvalidIcon, false, false, false, false); testLinkRelAttribute("sTyLeShEeT", true, InvalidIcon, false, false, false, false); @@ -60,16 +79,48 @@ TEST(CoreLinkRelAttribute, Constructor) testLinkRelAttribute("shortcut icon", false, Favicon, false, false, false, false); testLinkRelAttribute("sHoRtCuT iCoN", false, Favicon, false, false, false, false); -#if ENABLE(TOUCH_ICON_LOADING) - testLinkRelAttribute("apple-touch-icon", false, TouchIcon, false, false, false, false); - testLinkRelAttribute("aPpLe-tOuCh-IcOn", false, TouchIcon, false, false, false, false); + testLinkRelAttribute("dns-prefetch", false, InvalidIcon, false, true, false, false); + testLinkRelAttribute("dNs-pReFeTcH", false, InvalidIcon, false, true, false, false); - testLinkRelAttribute("apple-touch-icon-precomposed", false, TouchPrecomposedIcon, false, false, false, false); - testLinkRelAttribute("aPpLe-tOuCh-IcOn-pReCoMpOsEd", false, TouchPrecomposedIcon, false, false, false, false); -#endif + testLinkRelAttribute("apple-touch-icon", false, InvalidIcon, false, false, false, false); + testLinkRelAttribute("aPpLe-tOuCh-IcOn", false, InvalidIcon, false, false, false, false); + testLinkRelAttribute("apple-touch-icon-precomposed", false, InvalidIcon, false, false, false, false); + testLinkRelAttribute("aPpLe-tOuCh-IcOn-pReCoMpOsEd", false, InvalidIcon, false, false, false, false); + + testLinkRelAttribute("alternate stylesheet", true, InvalidIcon, true, false, false, false); + testLinkRelAttribute("stylesheet alternate", true, InvalidIcon, true, false, false, false); + testLinkRelAttribute("aLtErNaTe sTyLeShEeT", true, InvalidIcon, true, false, false, false); + testLinkRelAttribute("sTyLeShEeT aLtErNaTe", true, InvalidIcon, true, false, false, false); + + testLinkRelAttribute("stylesheet icon prerender aLtErNaTe", true, Favicon, true, false, false, true); + testLinkRelAttribute("alternate subresource", false, InvalidIcon, true, false, true, false); + testLinkRelAttribute("alternate icon stylesheet", true, Favicon, true, false, false, false); + + testLinkRelAttribute("import", false, InvalidIcon, false, false, false, false, true); + // "import" is mutually exclusive and "stylesheet" wins when they conflict. + testLinkRelAttribute("stylesheet import", true, InvalidIcon, false, false, false, false, false); +} + +TEST_F(LinkRelAttributeTest, ConstructorTouchIconLoadingEnabled) +{ + RuntimeEnabledFeatures::setTouchIconLoadingEnabled(true); + + testLinkRelAttribute("stylesheet", true, InvalidIcon, false, false, false, false); + testLinkRelAttribute("sTyLeShEeT", true, InvalidIcon, false, false, false, false); + + testLinkRelAttribute("icon", false, Favicon, false, false, false, false); + testLinkRelAttribute("iCoN", false, Favicon, false, false, false, false); + testLinkRelAttribute("shortcut icon", false, Favicon, false, false, false, false); + testLinkRelAttribute("sHoRtCuT iCoN", false, Favicon, false, false, false, false); testLinkRelAttribute("dns-prefetch", false, InvalidIcon, false, true, false, false); testLinkRelAttribute("dNs-pReFeTcH", false, InvalidIcon, false, true, false, false); + testLinkRelAttribute("alternate dNs-pReFeTcH", false, InvalidIcon, true, true, false, false); + + testLinkRelAttribute("apple-touch-icon", false, TouchIcon, false, false, false, false); + testLinkRelAttribute("aPpLe-tOuCh-IcOn", false, TouchIcon, false, false, false, false); + testLinkRelAttribute("apple-touch-icon-precomposed", false, TouchPrecomposedIcon, false, false, false, false); + testLinkRelAttribute("aPpLe-tOuCh-IcOn-pReCoMpOsEd", false, TouchPrecomposedIcon, false, false, false, false); testLinkRelAttribute("alternate stylesheet", true, InvalidIcon, true, false, false, false); testLinkRelAttribute("stylesheet alternate", true, InvalidIcon, true, false, false, false); @@ -81,7 +132,7 @@ TEST(CoreLinkRelAttribute, Constructor) testLinkRelAttribute("alternate icon stylesheet", true, Favicon, true, false, false, false); testLinkRelAttribute("import", false, InvalidIcon, false, false, false, false, true); - // "import" is mutually exclusive and "stylesheet" wins when they conflict. + testLinkRelAttribute("alternate import", false, InvalidIcon, true, false, false, false, true); testLinkRelAttribute("stylesheet import", true, InvalidIcon, false, false, false, false, false); } |