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

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

Issue 1415923015: Downgrade lock icon for broken-HTTPS subresources (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add MixedContentChecker unit test Created 5 years, 1 month 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/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

Powered by Google App Engine
This is Rietveld 408576698