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 |