| 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 "public/web/WebDocument.h" | 5 #include "public/web/WebDocument.h" |
| 6 | 6 |
| 7 #include "core/CSSPropertyNames.h" | 7 #include "core/CSSPropertyNames.h" |
| 8 #include "core/HTMLNames.h" | 8 #include "core/HTMLNames.h" |
| 9 #include "core/dom/NodeComputedStyle.h" | 9 #include "core/dom/NodeComputedStyle.h" |
| 10 #include "core/dom/StyleEngine.h" | 10 #include "core/dom/StyleEngine.h" |
| 11 #include "core/frame/LocalFrame.h" | 11 #include "core/frame/LocalFrame.h" |
| 12 #include "core/html/HTMLElement.h" | 12 #include "core/html/HTMLElement.h" |
| 13 #include "core/html/HTMLLinkElement.h" | 13 #include "core/html/HTMLLinkElement.h" |
| 14 #include "core/page/Page.h" | 14 #include "core/page/Page.h" |
| 15 #include "core/style/ComputedStyle.h" | 15 #include "core/style/ComputedStyle.h" |
| 16 #include "platform/RuntimeEnabledFeatures.h" | 16 #include "platform/RuntimeEnabledFeatures.h" |
| 17 #include "platform/graphics/Color.h" | 17 #include "platform/graphics/Color.h" |
| 18 #include "platform/testing/URLTestHelpers.h" | 18 #include "platform/testing/URLTestHelpers.h" |
| 19 #include "platform/testing/UnitTestHelpers.h" |
| 19 #include "platform/weborigin/SchemeRegistry.h" | 20 #include "platform/weborigin/SchemeRegistry.h" |
| 20 #include "platform/weborigin/SecurityOrigin.h" | 21 #include "platform/weborigin/SecurityOrigin.h" |
| 21 #include "testing/gtest/include/gtest/gtest.h" | 22 #include "testing/gtest/include/gtest/gtest.h" |
| 22 #include "web/tests/FrameTestHelpers.h" | 23 #include "web/tests/FrameTestHelpers.h" |
| 23 | 24 |
| 24 namespace blink { | 25 namespace blink { |
| 25 | 26 |
| 26 using blink::FrameTestHelpers::WebViewHelper; | 27 using blink::FrameTestHelpers::WebViewHelper; |
| 27 using blink::URLTestHelpers::toKURL; | 28 using blink::URLTestHelpers::toKURL; |
| 28 | 29 |
| 29 const char kDefaultOrigin[] = "https://example.test/"; | 30 const char kDefaultOrigin[] = "https://example.test/"; |
| 30 const char kManifestDummyFilePath[] = "manifest-dummy.html"; | 31 const char kManifestDummyFilePath[] = "manifest-dummy.html"; |
| 31 | 32 |
| 32 class WebDocumentTest : public ::testing::Test { | 33 class WebDocumentTest : public ::testing::Test { |
| 33 protected: | 34 protected: |
| 34 static void SetUpTestCase(); | 35 static void SetUpTestCase(); |
| 35 | 36 |
| 36 void loadURL(const std::string& url); | 37 void loadURL(const std::string& url); |
| 37 Document* topDocument() const; | 38 Document* topDocument() const; |
| 38 WebDocument topWebDocument() const; | 39 WebDocument topWebDocument() const; |
| 39 | 40 |
| 40 WebViewHelper m_webViewHelper; | 41 WebViewHelper m_webViewHelper; |
| 41 }; | 42 }; |
| 42 | 43 |
| 43 void WebDocumentTest::SetUpTestCase() { | 44 void WebDocumentTest::SetUpTestCase() { |
| 44 URLTestHelpers::registerMockedURLLoad( | 45 URLTestHelpers::registerMockedURLLoad( |
| 45 toKURL(std::string(kDefaultOrigin) + kManifestDummyFilePath), | 46 toKURL(std::string(kDefaultOrigin) + kManifestDummyFilePath), |
| 46 WebString::fromUTF8(kManifestDummyFilePath)); | 47 testing::webTestDataPath(kManifestDummyFilePath)); |
| 47 } | 48 } |
| 48 | 49 |
| 49 void WebDocumentTest::loadURL(const std::string& url) { | 50 void WebDocumentTest::loadURL(const std::string& url) { |
| 50 m_webViewHelper.initializeAndLoad(url); | 51 m_webViewHelper.initializeAndLoad(url); |
| 51 } | 52 } |
| 52 | 53 |
| 53 Document* WebDocumentTest::topDocument() const { | 54 Document* WebDocumentTest::topDocument() const { |
| 54 return toLocalFrame(m_webViewHelper.webView()->page()->mainFrame()) | 55 return toLocalFrame(m_webViewHelper.webView()->page()->mainFrame()) |
| 55 ->document(); | 56 ->document(); |
| 56 } | 57 } |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 168 } | 169 } |
| 169 | 170 |
| 170 KURL toOriginSecureA(const char* file) { | 171 KURL toOriginSecureA(const char* file) { |
| 171 return toKURL(std::string(baseURLOriginSecureA) + file); | 172 return toKURL(std::string(baseURLOriginSecureA) + file); |
| 172 } | 173 } |
| 173 | 174 |
| 174 KURL toOriginB(const char* file) { | 175 KURL toOriginB(const char* file) { |
| 175 return toKURL(std::string(baseURLOriginB) + file); | 176 return toKURL(std::string(baseURLOriginB) + file); |
| 176 } | 177 } |
| 177 | 178 |
| 179 void registerMockedURLLoad(const KURL& url, const char* path) { |
| 180 URLTestHelpers::registerMockedURLLoad(url, testing::webTestDataPath(path)); |
| 181 } |
| 182 |
| 178 } // anonymous namespace | 183 } // anonymous namespace |
| 179 | 184 |
| 180 class WebDocumentFirstPartyTest : public WebDocumentTest { | 185 class WebDocumentFirstPartyTest : public WebDocumentTest { |
| 181 public: | 186 public: |
| 182 static void SetUpTestCase(); | 187 static void SetUpTestCase(); |
| 183 | 188 |
| 184 protected: | 189 protected: |
| 185 void load(const char*); | 190 void load(const char*); |
| 186 Document* nestedDocument() const; | 191 Document* nestedDocument() const; |
| 187 Document* nestedNestedDocument() const; | 192 Document* nestedNestedDocument() const; |
| 188 }; | 193 }; |
| 189 | 194 |
| 190 void WebDocumentFirstPartyTest::SetUpTestCase() { | 195 void WebDocumentFirstPartyTest::SetUpTestCase() { |
| 191 URLTestHelpers::registerMockedURLLoad(toOriginA(emptyFile), | 196 registerMockedURLLoad(toOriginA(emptyFile), emptyFile); |
| 192 WebString::fromUTF8(emptyFile)); | 197 registerMockedURLLoad(toOriginA(nestedData), nestedData); |
| 193 URLTestHelpers::registerMockedURLLoad(toOriginA(nestedData), | 198 registerMockedURLLoad(toOriginA(nestedOriginA), nestedOriginA); |
| 194 WebString::fromUTF8(nestedData)); | 199 registerMockedURLLoad(toOriginA(nestedOriginSubA), nestedOriginSubA); |
| 195 URLTestHelpers::registerMockedURLLoad(toOriginA(nestedOriginA), | 200 registerMockedURLLoad(toOriginA(nestedOriginSecureA), nestedOriginSecureA); |
| 196 WebString::fromUTF8(nestedOriginA)); | 201 registerMockedURLLoad(toOriginA(nestedOriginAInOriginA), |
| 197 URLTestHelpers::registerMockedURLLoad(toOriginA(nestedOriginSubA), | 202 nestedOriginAInOriginA); |
| 198 WebString::fromUTF8(nestedOriginSubA)); | 203 registerMockedURLLoad(toOriginA(nestedOriginAInOriginB), |
| 199 URLTestHelpers::registerMockedURLLoad( | 204 nestedOriginAInOriginB); |
| 200 toOriginA(nestedOriginSecureA), WebString::fromUTF8(nestedOriginSecureA)); | 205 registerMockedURLLoad(toOriginA(nestedOriginB), nestedOriginB); |
| 201 URLTestHelpers::registerMockedURLLoad( | 206 registerMockedURLLoad(toOriginA(nestedOriginBInOriginA), |
| 202 toOriginA(nestedOriginAInOriginA), | 207 nestedOriginBInOriginA); |
| 203 WebString::fromUTF8(nestedOriginAInOriginA)); | 208 registerMockedURLLoad(toOriginA(nestedOriginBInOriginB), |
| 204 URLTestHelpers::registerMockedURLLoad( | 209 nestedOriginBInOriginB); |
| 205 toOriginA(nestedOriginAInOriginB), | 210 registerMockedURLLoad(toOriginA(nestedSrcDoc), nestedSrcDoc); |
| 206 WebString::fromUTF8(nestedOriginAInOriginB)); | |
| 207 URLTestHelpers::registerMockedURLLoad(toOriginA(nestedOriginB), | |
| 208 WebString::fromUTF8(nestedOriginB)); | |
| 209 URLTestHelpers::registerMockedURLLoad( | |
| 210 toOriginA(nestedOriginBInOriginA), | |
| 211 WebString::fromUTF8(nestedOriginBInOriginA)); | |
| 212 URLTestHelpers::registerMockedURLLoad( | |
| 213 toOriginA(nestedOriginBInOriginB), | |
| 214 WebString::fromUTF8(nestedOriginBInOriginB)); | |
| 215 URLTestHelpers::registerMockedURLLoad(toOriginA(nestedSrcDoc), | |
| 216 WebString::fromUTF8(nestedSrcDoc)); | |
| 217 | 211 |
| 218 URLTestHelpers::registerMockedURLLoad(toOriginSubA(emptyFile), | 212 registerMockedURLLoad(toOriginSubA(emptyFile), emptyFile); |
| 219 WebString::fromUTF8(emptyFile)); | 213 registerMockedURLLoad(toOriginSecureA(emptyFile), emptyFile); |
| 220 URLTestHelpers::registerMockedURLLoad(toOriginSecureA(emptyFile), | |
| 221 WebString::fromUTF8(emptyFile)); | |
| 222 | 214 |
| 223 URLTestHelpers::registerMockedURLLoad(toOriginB(emptyFile), | 215 registerMockedURLLoad(toOriginB(emptyFile), emptyFile); |
| 224 WebString::fromUTF8(emptyFile)); | 216 registerMockedURLLoad(toOriginB(nestedOriginA), nestedOriginA); |
| 225 URLTestHelpers::registerMockedURLLoad(toOriginB(nestedOriginA), | 217 registerMockedURLLoad(toOriginB(nestedOriginB), nestedOriginB); |
| 226 WebString::fromUTF8(nestedOriginA)); | |
| 227 URLTestHelpers::registerMockedURLLoad(toOriginB(nestedOriginB), | |
| 228 WebString::fromUTF8(nestedOriginB)); | |
| 229 } | 218 } |
| 230 | 219 |
| 231 void WebDocumentFirstPartyTest::load(const char* file) { | 220 void WebDocumentFirstPartyTest::load(const char* file) { |
| 232 m_webViewHelper.initializeAndLoad(std::string(baseURLOriginA) + file); | 221 m_webViewHelper.initializeAndLoad(std::string(baseURLOriginA) + file); |
| 233 } | 222 } |
| 234 | 223 |
| 235 Document* WebDocumentFirstPartyTest::nestedDocument() const { | 224 Document* WebDocumentFirstPartyTest::nestedDocument() const { |
| 236 return toLocalFrame(m_webViewHelper.webView() | 225 return toLocalFrame(m_webViewHelper.webView() |
| 237 ->page() | 226 ->page() |
| 238 ->mainFrame() | 227 ->mainFrame() |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 357 | 346 |
| 358 ASSERT_EQ(toOriginA(nestedOriginAInOriginB), | 347 ASSERT_EQ(toOriginA(nestedOriginAInOriginB), |
| 359 topDocument()->firstPartyForCookies()); | 348 topDocument()->firstPartyForCookies()); |
| 360 ASSERT_EQ(toOriginA(nestedOriginAInOriginB), | 349 ASSERT_EQ(toOriginA(nestedOriginAInOriginB), |
| 361 nestedDocument()->firstPartyForCookies()); | 350 nestedDocument()->firstPartyForCookies()); |
| 362 ASSERT_EQ(toOriginA(nestedOriginAInOriginB), | 351 ASSERT_EQ(toOriginA(nestedOriginAInOriginB), |
| 363 nestedNestedDocument()->firstPartyForCookies()); | 352 nestedNestedDocument()->firstPartyForCookies()); |
| 364 } | 353 } |
| 365 | 354 |
| 366 } // namespace blink | 355 } // namespace blink |
| OLD | NEW |