Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "config.h" | 5 #include "config.h" |
| 6 #include "core/loader/MixedContentChecker.h" | 6 #include "core/loader/MixedContentChecker.h" |
| 7 | 7 |
| 8 #include "core/loader/EmptyClients.h" | |
| 8 #include "core/testing/DummyPageHolder.h" | 9 #include "core/testing/DummyPageHolder.h" |
| 9 #include "platform/weborigin/KURL.h" | 10 #include "platform/weborigin/KURL.h" |
| 10 #include "platform/weborigin/SecurityOrigin.h" | 11 #include "platform/weborigin/SecurityOrigin.h" |
| 11 #include "testing/gtest/include/gtest/gtest.h" | 12 #include "testing/gtest/include/gtest/gtest.h" |
| 12 #include "wtf/RefPtr.h" | 13 #include "wtf/RefPtr.h" |
| 13 #include <base/macros.h> | 14 #include <base/macros.h> |
| 14 | 15 |
| 15 namespace blink { | 16 namespace blink { |
| 16 | 17 |
| 17 TEST(MixedContentCheckerTest, IsMixedContent) | 18 TEST(MixedContentCheckerTest, IsMixedContent) |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 60 blockableMixedContent.setFrameType(WebURLRequest::FrameTypeAuxiliary); | 61 blockableMixedContent.setFrameType(WebURLRequest::FrameTypeAuxiliary); |
| 61 blockableMixedContent.setRequestContext(WebURLRequest::RequestContextScript) ; | 62 blockableMixedContent.setRequestContext(WebURLRequest::RequestContextScript) ; |
| 62 EXPECT_EQ(MixedContentChecker::ContextTypeBlockable, MixedContentChecker::co ntextTypeForInspector(&dummyPageHolder->frame(), blockableMixedContent)); | 63 EXPECT_EQ(MixedContentChecker::ContextTypeBlockable, MixedContentChecker::co ntextTypeForInspector(&dummyPageHolder->frame(), blockableMixedContent)); |
| 63 | 64 |
| 64 ResourceRequest optionallyBlockableMixedContent("http://example.test/foo.jpg "); | 65 ResourceRequest optionallyBlockableMixedContent("http://example.test/foo.jpg "); |
| 65 blockableMixedContent.setFrameType(WebURLRequest::FrameTypeAuxiliary); | 66 blockableMixedContent.setFrameType(WebURLRequest::FrameTypeAuxiliary); |
| 66 blockableMixedContent.setRequestContext(WebURLRequest::RequestContextImage); | 67 blockableMixedContent.setRequestContext(WebURLRequest::RequestContextImage); |
| 67 EXPECT_EQ(MixedContentChecker::ContextTypeOptionallyBlockable, MixedContentC hecker::contextTypeForInspector(&dummyPageHolder->frame(), blockableMixedContent )); | 68 EXPECT_EQ(MixedContentChecker::ContextTypeOptionallyBlockable, MixedContentC hecker::contextTypeForInspector(&dummyPageHolder->frame(), blockableMixedContent )); |
| 68 } | 69 } |
| 69 | 70 |
| 71 namespace { | |
| 72 | |
| 73 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.
| |
| 74 DisplayedContentWithCertErrors, | |
| 75 RanContentWithCertErrors | |
| 76 }; | |
| 77 | |
| 78 struct ContentWithCertErrorsInfo { | |
| 79 KURL url; | |
| 80 KURL mainResourceUrl; | |
| 81 CertErrorsContentType contentType; | |
| 82 }; | |
| 83 | |
| 84 class CertErrorsTracker { | |
| 85 public: | |
| 86 CertErrorsTracker() {} | |
| 87 ~CertErrorsTracker() {} | |
| 88 | |
| 89 const ContentWithCertErrorsInfo& contentWithCertErrorsInfo() { return m_ contentWithCertErrors; } | |
| 90 | |
| 91 void didDisplayContentWithCertificateErrors(const KURL& url, const WebUR L& mainResourceUrl) | |
| 92 { | |
| 93 m_contentWithCertErrors.url = url; | |
| 94 m_contentWithCertErrors.mainResourceUrl = mainResourceUrl; | |
| 95 m_contentWithCertErrors.contentType = DisplayedContentWithCertErrors ; | |
| 96 } | |
| 97 | |
| 98 void didRunContentWithCertificateErrors(const KURL& url, const WebURL& m ainResourceUrl) | |
| 99 { | |
| 100 m_contentWithCertErrors.url = url; | |
| 101 m_contentWithCertErrors.mainResourceUrl = mainResourceUrl; | |
| 102 m_contentWithCertErrors.contentType = RanContentWithCertErrors; | |
| 103 } | |
| 104 | |
| 105 private: | |
| 106 ContentWithCertErrorsInfo m_contentWithCertErrors; | |
| 107 }; | |
| 108 | |
| 109 class TestCertErrorsFrameLoaderClient : public EmptyFrameLoaderClient { | |
| 110 public: | |
| 111 ~TestCertErrorsFrameLoaderClient() {} | |
| 112 | |
| 113 static PassOwnPtrWillBeRawPtr<TestCertErrorsFrameLoaderClient> create(Ce rtErrorsTracker* tracker) { return adoptPtrWillBeNoop(new TestCertErrorsFrameLoa derClient(tracker)); } | |
| 114 | |
| 115 void didDisplayContentWithCertificateErrors(const KURL& url, const CStri ng& securityInfo, const WebURL& mainResourceUrl, const CString& mainResourceSecu rityInfo) | |
| 116 { | |
| 117 m_tracker->didDisplayContentWithCertificateErrors(url, mainResourceU rl); | |
| 118 } | |
| 119 | |
| 120 void didRunContentWithCertificateErrors(const KURL& url, const CString& securityInfo, const WebURL& mainResourceUrl, const CString& mainResourceSecurity Info) | |
| 121 { | |
| 122 m_tracker->didRunContentWithCertificateErrors(url, mainResourceUrl); | |
| 123 } | |
| 124 | |
| 125 private: | |
| 126 TestCertErrorsFrameLoaderClient(CertErrorsTracker* tracker) | |
| 127 : m_tracker(tracker) | |
| 128 { | |
| 129 } | |
| 130 CertErrorsTracker* m_tracker; | |
| 131 }; | |
|
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!
| |
| 132 | |
| 133 } // namespace | |
| 134 | |
| 135 TEST(MixedContentCheckerTest, HandleCertificateError) | |
| 136 { | |
| 137 CertErrorsTracker certErrorsTracker; | |
| 138 OwnPtr<DummyPageHolder> dummyPageHolder = DummyPageHolder::create(IntSize(1, 1), nullptr, TestCertErrorsFrameLoaderClient::create(&certErrorsTracker)); | |
| 139 | |
| 140 KURL mainResourceUrl(KURL(), "https://example.test"); | |
| 141 KURL displayedUrl(KURL(), "https://example-displayed.test"); | |
| 142 KURL ranUrl(KURL(), "https://example-ran.test"); | |
| 143 | |
| 144 dummyPageHolder->frame().document()->setURL(mainResourceUrl); | |
| 145 EXPECT_EQ(KURL(), certErrorsTracker.contentWithCertErrorsInfo().url); | |
| 146 MixedContentChecker::handleCertificateError(&dummyPageHolder->frame(), ranUr l, WebURLRequest::RequestContextScript, WebURLRequest::FrameTypeNone, ""); | |
| 147 EXPECT_EQ(ranUrl, certErrorsTracker.contentWithCertErrorsInfo().url); | |
| 148 EXPECT_EQ(mainResourceUrl, certErrorsTracker.contentWithCertErrorsInfo().mai nResourceUrl); | |
| 149 | |
| 150 MixedContentChecker::handleCertificateError(&dummyPageHolder->frame(), displ ayedUrl, 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.
| |
| 151 EXPECT_EQ(displayedUrl, certErrorsTracker.contentWithCertErrorsInfo().url); | |
| 152 EXPECT_EQ(mainResourceUrl, certErrorsTracker.contentWithCertErrorsInfo().mai nResourceUrl); | |
| 153 } | |
| 154 | |
| 70 } // namespace blink | 155 } // namespace blink |
| OLD | NEW |