Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(593)

Unified Diff: third_party/WebKit/Source/core/loader/LinkLoaderTest.cpp

Issue 2043753002: Declarative resource hints go through mojo IPC to //content Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Use unique_ptr to avoid memory leaks in unit tests Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/loader/LinkLoaderTest.cpp
diff --git a/third_party/WebKit/Source/core/loader/LinkLoaderTest.cpp b/third_party/WebKit/Source/core/loader/LinkLoaderTest.cpp
index e43d2e1c85bfac46c392c1b1b20114975a462f0f..3a7764acb37fd4b489bec10889a70427a49ae5ce 100644
--- a/third_party/WebKit/Source/core/loader/LinkLoaderTest.cpp
+++ b/third_party/WebKit/Source/core/loader/LinkLoaderTest.cpp
@@ -10,17 +10,20 @@
#include "core/html/LinkRelAttribute.h"
#include "core/loader/DocumentLoader.h"
#include "core/loader/LinkLoaderClient.h"
-#include "core/loader/NetworkHintsInterface.h"
#include "core/testing/DummyPageHolder.h"
#include "platform/network/ResourceLoadPriority.h"
+#include "platform/testing/PlatformMojoMock.h"
#include "platform/testing/URLTestHelpers.h"
#include "public/platform/Platform.h"
#include "public/platform/WebURLLoaderMockFactory.h"
+#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
#include <base/macros.h>
namespace blink {
+using ::testing::_;
+
class MockLinkLoaderClient final : public GarbageCollectedFinalized<MockLinkLoaderClient>, public LinkLoaderClient {
USING_GARBAGE_COLLECTED_MIXIN(MockLinkLoaderClient);
public:
@@ -52,39 +55,6 @@ private:
bool m_shouldLoad;
};
-class NetworkHintsMock : public NetworkHintsInterface {
-public:
- NetworkHintsMock()
- : m_didDnsPrefetch(false)
- , m_didPreconnect(false)
- {
- }
-
- void dnsPrefetchHost(const String& host) const override
- {
- m_didDnsPrefetch = true;
- }
-
- void preconnectHost(const KURL& host, const CrossOriginAttributeValue crossOrigin) const override
- {
- m_didPreconnect = true;
- m_isHTTPS = host.protocolIs("https");
- m_isCrossOrigin = (crossOrigin == CrossOriginAttributeAnonymous);
- }
-
- bool didDnsPrefetch() { return m_didDnsPrefetch; }
- bool didPreconnect() { return m_didPreconnect; }
- bool isHTTPS() { return m_isHTTPS; }
- bool isCrossOrigin() { return m_isCrossOrigin; }
-
-private:
- mutable bool m_didDnsPrefetch;
- mutable bool m_didPreconnect;
- mutable bool m_isHTTPS;
- mutable bool m_isCrossOrigin;
-
-};
-
TEST(LinkLoaderTest, Preload)
{
struct TestCase {
@@ -147,8 +117,7 @@ TEST(LinkLoaderTest, Preload)
testCase.as,
testCase.media,
hrefURL,
- dummyPageHolder->document(),
- NetworkHintsMock());
+ dummyPageHolder->document());
ASSERT(dummyPageHolder->document().fetcher());
HeapListHashSet<Member<Resource>>* preloads = dummyPageHolder->document().fetcher()->preloads();
if (testCase.expectingLoad) {
@@ -196,17 +165,20 @@ TEST(LinkLoaderTest, DNSPrefetch)
Persistent<MockLinkLoaderClient> loaderClient = MockLinkLoaderClient::create(testCase.shouldLoad);
LinkLoader* loader = LinkLoader::create(loaderClient.get());
KURL hrefURL = KURL(KURL(ParsedURLStringTag(), String("http://example.com")), testCase.href);
- NetworkHintsMock networkHints;
+
+ PlatformMojoMock mockPlatform;
+ EXPECT_CALL(mockPlatform, preconnect(_, _, _))
+ .Times(0);
+ EXPECT_CALL(mockPlatform, preresolve(hrefURL))
+ .Times(1);
+
loader->loadLink(LinkRelAttribute("dns-prefetch"),
CrossOriginAttributeNotSet,
String(),
String(),
String(),
hrefURL,
- dummyPageHolder->document(),
- networkHints);
- ASSERT_FALSE(networkHints.didPreconnect());
- ASSERT_EQ(testCase.shouldLoad, networkHints.didDnsPrefetch());
Yoav Weiss 2016/06/13 08:26:08 Again, where did the asserts go?
+ dummyPageHolder->document());
}
}
@@ -216,13 +188,11 @@ TEST(LinkLoaderTest, Preconnect)
const char* href;
CrossOriginAttributeValue crossOrigin;
const bool shouldLoad;
- const bool isHTTPS;
- const bool isCrossOrigin;
} cases[] = {
- {"http://example.com/", CrossOriginAttributeNotSet, true, false, false},
- {"https://example.com/", CrossOriginAttributeNotSet, true, true, false},
- {"http://example.com/", CrossOriginAttributeAnonymous, true, false, true},
- {"//example.com/", CrossOriginAttributeNotSet, true, false, false},
+ {"http://example.com/", CrossOriginAttributeNotSet, true},
+ {"https://example.com/", CrossOriginAttributeNotSet, true},
+ {"http://example.com/", CrossOriginAttributeAnonymous, true},
+ {"//example.com/", CrossOriginAttributeNotSet, true},
};
// Test the cases with a single header
@@ -231,18 +201,20 @@ TEST(LinkLoaderTest, Preconnect)
Persistent<MockLinkLoaderClient> loaderClient = MockLinkLoaderClient::create(testCase.shouldLoad);
LinkLoader* loader = LinkLoader::create(loaderClient.get());
KURL hrefURL = KURL(KURL(ParsedURLStringTag(), String("http://example.com")), testCase.href);
- NetworkHintsMock networkHints;
+
+ PlatformMojoMock mockPlatform;
+ EXPECT_CALL(mockPlatform, preconnect(hrefURL, ::testing::Eq(testCase.crossOrigin != CrossOriginAttributeAnonymous), 1))
+ .Times(1);
+ EXPECT_CALL(mockPlatform, preresolve(_))
+ .Times(0);
+
loader->loadLink(LinkRelAttribute("preconnect"),
testCase.crossOrigin,
String(),
String(),
String(),
hrefURL,
- dummyPageHolder->document(),
- networkHints);
- ASSERT_EQ(testCase.shouldLoad, networkHints.didPreconnect());
- ASSERT_EQ(testCase.isHTTPS, networkHints.isHTTPS());
- ASSERT_EQ(testCase.isCrossOrigin, networkHints.isCrossOrigin());
+ dummyPageHolder->document());
}
}

Powered by Google App Engine
This is Rietveld 408576698