summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/WebKit/Source/core/html/LinkRelAttributeTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/WebKit/Source/core/html/LinkRelAttributeTest.cpp')
-rw-r--r--chromium/third_party/WebKit/Source/core/html/LinkRelAttributeTest.cpp67
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);
}