| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2015, Google Inc. All rights reserved. | 2 * Copyright (c) 2015, Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 79 MOCK_METHOD1(didDisplayContentWithCertificateErrors, void(const KURL&)); | 79 MOCK_METHOD1(didDisplayContentWithCertificateErrors, void(const KURL&)); |
| 80 MOCK_METHOD2(dispatchDidLoadResourceFromMemoryCache, | 80 MOCK_METHOD2(dispatchDidLoadResourceFromMemoryCache, |
| 81 void(const ResourceRequest&, const ResourceResponse&)); | 81 void(const ResourceRequest&, const ResourceResponse&)); |
| 82 }; | 82 }; |
| 83 | 83 |
| 84 class FrameFetchContextTest : public ::testing::Test { | 84 class FrameFetchContextTest : public ::testing::Test { |
| 85 protected: | 85 protected: |
| 86 void SetUp() override { | 86 void SetUp() override { |
| 87 dummyPageHolder = DummyPageHolder::create(IntSize(500, 500)); | 87 dummyPageHolder = DummyPageHolder::create(IntSize(500, 500)); |
| 88 dummyPageHolder->page().setDeviceScaleFactor(1.0); | 88 dummyPageHolder->page().setDeviceScaleFactor(1.0); |
| 89 documentLoader = DocumentLoader::create( | |
| 90 &dummyPageHolder->frame(), ResourceRequest("http://www.example.com"), | |
| 91 SubstituteData(), ClientRedirectPolicy::NotClientRedirect); | |
| 92 document = &dummyPageHolder->document(); | 89 document = &dummyPageHolder->document(); |
| 93 fetchContext = | 90 fetchContext = |
| 94 static_cast<FrameFetchContext*>(&documentLoader->fetcher()->context()); | 91 static_cast<FrameFetchContext*>(&document->fetcher()->context()); |
| 95 owner = DummyFrameOwner::create(); | 92 owner = DummyFrameOwner::create(); |
| 96 FrameFetchContext::provideDocumentToContext(*fetchContext, document.get()); | 93 FrameFetchContext::provideDocumentToContext(*fetchContext, document.get()); |
| 97 } | 94 } |
| 98 | 95 |
| 99 void TearDown() override { | 96 void TearDown() override { |
| 100 documentLoader->detachFromFrame(); | 97 if (childFrame) |
| 101 documentLoader.clear(); | |
| 102 | |
| 103 if (childFrame) { | |
| 104 childDocumentLoader->detachFromFrame(); | |
| 105 childDocumentLoader.clear(); | |
| 106 childFrame->detach(FrameDetachType::Remove); | 98 childFrame->detach(FrameDetachType::Remove); |
| 107 } | |
| 108 } | 99 } |
| 109 | 100 |
| 110 FrameFetchContext* createChildFrame() { | 101 FrameFetchContext* createChildFrame() { |
| 111 childClient = StubFrameLoaderClientWithParent::create(document->frame()); | 102 childClient = StubFrameLoaderClientWithParent::create(document->frame()); |
| 112 childFrame = LocalFrame::create(childClient.get(), | 103 childFrame = LocalFrame::create(childClient.get(), |
| 113 document->frame()->host(), owner.get()); | 104 document->frame()->host(), owner.get()); |
| 114 childFrame->setView(FrameView::create(*childFrame, IntSize(500, 500))); | 105 childFrame->setView(FrameView::create(*childFrame, IntSize(500, 500))); |
| 115 childFrame->init(); | 106 childFrame->init(); |
| 116 childDocumentLoader = DocumentLoader::create( | |
| 117 childFrame.get(), ResourceRequest("http://www.example.com"), | |
| 118 SubstituteData(), ClientRedirectPolicy::NotClientRedirect); | |
| 119 childDocument = childFrame->document(); | 107 childDocument = childFrame->document(); |
| 120 FrameFetchContext* childFetchContext = static_cast<FrameFetchContext*>( | 108 FrameFetchContext* childFetchContext = static_cast<FrameFetchContext*>( |
| 121 &childDocumentLoader->fetcher()->context()); | 109 &childFrame->loader().documentLoader()->fetcher()->context()); |
| 122 FrameFetchContext::provideDocumentToContext(*childFetchContext, | 110 FrameFetchContext::provideDocumentToContext(*childFetchContext, |
| 123 childDocument.get()); | 111 childDocument.get()); |
| 124 return childFetchContext; | 112 return childFetchContext; |
| 125 } | 113 } |
| 126 | 114 |
| 127 std::unique_ptr<DummyPageHolder> dummyPageHolder; | 115 std::unique_ptr<DummyPageHolder> dummyPageHolder; |
| 128 // We don't use the DocumentLoader directly in any tests, but need to keep it | 116 // We don't use the DocumentLoader directly in any tests, but need to keep it |
| 129 // around as long as the ResourceFetcher and Document live due to indirect | 117 // around as long as the ResourceFetcher and Document live due to indirect |
| 130 // usage. | 118 // usage. |
| 131 Persistent<DocumentLoader> documentLoader; | |
| 132 Persistent<Document> document; | 119 Persistent<Document> document; |
| 133 Persistent<FrameFetchContext> fetchContext; | 120 Persistent<FrameFetchContext> fetchContext; |
| 134 | 121 |
| 135 Persistent<StubFrameLoaderClientWithParent> childClient; | 122 Persistent<StubFrameLoaderClientWithParent> childClient; |
| 136 Persistent<LocalFrame> childFrame; | 123 Persistent<LocalFrame> childFrame; |
| 137 Persistent<DocumentLoader> childDocumentLoader; | |
| 138 Persistent<Document> childDocument; | 124 Persistent<Document> childDocument; |
| 139 Persistent<DummyFrameOwner> owner; | 125 Persistent<DummyFrameOwner> owner; |
| 140 }; | 126 }; |
| 141 | 127 |
| 142 // This test class sets up a mock frame loader client. | 128 // This test class sets up a mock frame loader client. |
| 143 class FrameFetchContextMockedFrameLoaderClientTest | 129 class FrameFetchContextMockedFrameLoaderClientTest |
| 144 : public FrameFetchContextTest { | 130 : public FrameFetchContextTest { |
| 145 protected: | 131 protected: |
| 146 void SetUp() override { | 132 void SetUp() override { |
| 147 url = KURL(KURL(), "https://example.test/foo"); | 133 url = KURL(KURL(), "https://example.test/foo"); |
| 148 mainResourceUrl = KURL(KURL(), "https://www.example.test"); | 134 mainResourceUrl = KURL(KURL(), "https://www.example.test"); |
| 149 client = new testing::NiceMock<MockFrameLoaderClient>(); | 135 client = new testing::NiceMock<MockFrameLoaderClient>(); |
| 150 dummyPageHolder = | 136 dummyPageHolder = |
| 151 DummyPageHolder::create(IntSize(500, 500), nullptr, client); | 137 DummyPageHolder::create(IntSize(500, 500), nullptr, client); |
| 152 dummyPageHolder->page().setDeviceScaleFactor(1.0); | 138 dummyPageHolder->page().setDeviceScaleFactor(1.0); |
| 153 documentLoader = DocumentLoader::create( | |
| 154 &dummyPageHolder->frame(), ResourceRequest(mainResourceUrl), | |
| 155 SubstituteData(), ClientRedirectPolicy::NotClientRedirect); | |
| 156 document = &dummyPageHolder->document(); | 139 document = &dummyPageHolder->document(); |
| 157 document->setURL(mainResourceUrl); | 140 document->setURL(mainResourceUrl); |
| 158 fetchContext = | 141 fetchContext = |
| 159 static_cast<FrameFetchContext*>(&documentLoader->fetcher()->context()); | 142 static_cast<FrameFetchContext*>(&document->fetcher()->context()); |
| 160 owner = DummyFrameOwner::create(); | 143 owner = DummyFrameOwner::create(); |
| 161 FrameFetchContext::provideDocumentToContext(*fetchContext, document.get()); | 144 FrameFetchContext::provideDocumentToContext(*fetchContext, document.get()); |
| 162 } | 145 } |
| 163 | 146 |
| 164 KURL url; | 147 KURL url; |
| 165 KURL mainResourceUrl; | 148 KURL mainResourceUrl; |
| 166 | 149 |
| 167 Persistent<testing::NiceMock<MockFrameLoaderClient>> client; | 150 Persistent<testing::NiceMock<MockFrameLoaderClient>> client; |
| 168 }; | 151 }; |
| 169 | 152 |
| (...skipping 657 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 827 fetchContext->addAdditionalRequestHeaders(mainRequest, FetchMainResource); | 810 fetchContext->addAdditionalRequestHeaders(mainRequest, FetchMainResource); |
| 828 EXPECT_EQ(test.isExternalExpectation, mainRequest.isExternalRequest()); | 811 EXPECT_EQ(test.isExternalExpectation, mainRequest.isExternalRequest()); |
| 829 | 812 |
| 830 ResourceRequest subRequest(test.url); | 813 ResourceRequest subRequest(test.url); |
| 831 fetchContext->addAdditionalRequestHeaders(subRequest, FetchSubresource); | 814 fetchContext->addAdditionalRequestHeaders(subRequest, FetchSubresource); |
| 832 EXPECT_EQ(test.isExternalExpectation, subRequest.isExternalRequest()); | 815 EXPECT_EQ(test.isExternalExpectation, subRequest.isExternalRequest()); |
| 833 } | 816 } |
| 834 } | 817 } |
| 835 | 818 |
| 836 } // namespace blink | 819 } // namespace blink |
| OLD | NEW |