Chromium Code Reviews| Index: third_party/WebKit/Source/core/loader/MixedContentCheckerTest.cpp |
| diff --git a/third_party/WebKit/Source/core/loader/MixedContentCheckerTest.cpp b/third_party/WebKit/Source/core/loader/MixedContentCheckerTest.cpp |
| index 4291c0a03516b53846084ec96ce98ac6a4231384..45c2f5a4dae9930ef657a7bc0bdd2b14038ee0f2 100644 |
| --- a/third_party/WebKit/Source/core/loader/MixedContentCheckerTest.cpp |
| +++ b/third_party/WebKit/Source/core/loader/MixedContentCheckerTest.cpp |
| @@ -5,6 +5,7 @@ |
| #include "config.h" |
| #include "core/loader/MixedContentChecker.h" |
| +#include "core/loader/EmptyClients.h" |
| #include "core/testing/DummyPageHolder.h" |
| #include "platform/weborigin/KURL.h" |
| #include "platform/weborigin/SecurityOrigin.h" |
| @@ -67,4 +68,88 @@ TEST(MixedContentCheckerTest, ContextTypeForInspector) |
| EXPECT_EQ(MixedContentChecker::ContextTypeOptionallyBlockable, MixedContentChecker::contextTypeForInspector(&dummyPageHolder->frame(), blockableMixedContent)); |
| } |
| +namespace { |
| + |
| + enum CertErrorsContentType { |
|
Mike West
2015/11/27 05:30:38
Nit: No indentation.
estark
2015/11/28 02:46:56
Hmm, `git cl format` seems to like it this way.
|
| + DisplayedContentWithCertErrors, |
| + RanContentWithCertErrors |
| + }; |
| + |
| + struct ContentWithCertErrorsInfo { |
| + KURL url; |
| + KURL mainResourceUrl; |
| + CertErrorsContentType contentType; |
| + }; |
| + |
| + class CertErrorsTracker { |
| + public: |
| + CertErrorsTracker() {} |
| + ~CertErrorsTracker() {} |
| + |
| + const ContentWithCertErrorsInfo& contentWithCertErrorsInfo() { return m_contentWithCertErrors; } |
| + |
| + void didDisplayContentWithCertificateErrors(const KURL& url, const WebURL& mainResourceUrl) |
| + { |
| + m_contentWithCertErrors.url = url; |
| + m_contentWithCertErrors.mainResourceUrl = mainResourceUrl; |
| + m_contentWithCertErrors.contentType = DisplayedContentWithCertErrors; |
| + } |
| + |
| + void didRunContentWithCertificateErrors(const KURL& url, const WebURL& mainResourceUrl) |
| + { |
| + m_contentWithCertErrors.url = url; |
| + m_contentWithCertErrors.mainResourceUrl = mainResourceUrl; |
| + m_contentWithCertErrors.contentType = RanContentWithCertErrors; |
| + } |
| + |
| + private: |
| + ContentWithCertErrorsInfo m_contentWithCertErrors; |
| + }; |
| + |
| + class TestCertErrorsFrameLoaderClient : public EmptyFrameLoaderClient { |
| + public: |
| + ~TestCertErrorsFrameLoaderClient() {} |
| + |
| + static PassOwnPtrWillBeRawPtr<TestCertErrorsFrameLoaderClient> create(CertErrorsTracker* tracker) { return adoptPtrWillBeNoop(new TestCertErrorsFrameLoaderClient(tracker)); } |
| + |
| + void didDisplayContentWithCertificateErrors(const KURL& url, const CString& securityInfo, const WebURL& mainResourceUrl, const CString& mainResourceSecurityInfo) |
| + { |
| + m_tracker->didDisplayContentWithCertificateErrors(url, mainResourceUrl); |
| + } |
| + |
| + void didRunContentWithCertificateErrors(const KURL& url, const CString& securityInfo, const WebURL& mainResourceUrl, const CString& mainResourceSecurityInfo) |
| + { |
| + m_tracker->didRunContentWithCertificateErrors(url, mainResourceUrl); |
| + } |
| + |
| + private: |
| + TestCertErrorsFrameLoaderClient(CertErrorsTracker* tracker) |
| + : m_tracker(tracker) |
| + { |
| + } |
| + CertErrorsTracker* m_tracker; |
| + }; |
|
Mike West
2015/11/27 05:30:38
This is fine, but I suspect you could do it more s
estark
2015/11/28 02:46:56
Ah, that is much better, thanks!
|
| + |
| +} // namespace |
| + |
| +TEST(MixedContentCheckerTest, HandleCertificateError) |
| +{ |
| + CertErrorsTracker certErrorsTracker; |
| + OwnPtr<DummyPageHolder> dummyPageHolder = DummyPageHolder::create(IntSize(1, 1), nullptr, TestCertErrorsFrameLoaderClient::create(&certErrorsTracker)); |
| + |
| + KURL mainResourceUrl(KURL(), "https://example.test"); |
| + KURL displayedUrl(KURL(), "https://example-displayed.test"); |
| + KURL ranUrl(KURL(), "https://example-ran.test"); |
| + |
| + dummyPageHolder->frame().document()->setURL(mainResourceUrl); |
| + EXPECT_EQ(KURL(), certErrorsTracker.contentWithCertErrorsInfo().url); |
| + MixedContentChecker::handleCertificateError(&dummyPageHolder->frame(), ranUrl, WebURLRequest::RequestContextScript, WebURLRequest::FrameTypeNone, ""); |
| + EXPECT_EQ(ranUrl, certErrorsTracker.contentWithCertErrorsInfo().url); |
| + EXPECT_EQ(mainResourceUrl, certErrorsTracker.contentWithCertErrorsInfo().mainResourceUrl); |
| + |
| + MixedContentChecker::handleCertificateError(&dummyPageHolder->frame(), displayedUrl, WebURLRequest::RequestContextImage, WebURLRequest::FrameTypeNone, ""); |
|
Mike West
2015/11/27 05:30:38
In a magical future world where we've blocked all
estark
2015/11/28 02:46:56
Done.
|
| + EXPECT_EQ(displayedUrl, certErrorsTracker.contentWithCertErrorsInfo().url); |
| + EXPECT_EQ(mainResourceUrl, certErrorsTracker.contentWithCertErrorsInfo().mainResourceUrl); |
| +} |
| + |
| } // namespace blink |