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

Side by Side Diff: Source/web/tests/WebDocumentTest.cpp

Issue 1033943002: Rename LayoutStyle to papayawhip (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: ensureComputedStyle Created 5 years, 8 months 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/web/mac/WebSubstringUtil.mm ('k') | Source/web/tests/WebFrameTest.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 6
7 #include "public/web/WebDocument.h" 7 #include "public/web/WebDocument.h"
8 8
9 #include "core/CSSPropertyNames.h" 9 #include "core/CSSPropertyNames.h"
10 #include "core/dom/NodeLayoutStyle.h" 10 #include "core/dom/NodeComputedStyle.h"
11 #include "core/dom/StyleEngine.h" 11 #include "core/dom/StyleEngine.h"
12 #include "core/frame/LocalFrame.h" 12 #include "core/frame/LocalFrame.h"
13 #include "core/html/HTMLElement.h" 13 #include "core/html/HTMLElement.h"
14 #include "core/layout/style/LayoutStyle.h" 14 #include "core/layout/style/ComputedStyle.h"
15 #include "core/page/Page.h" 15 #include "core/page/Page.h"
16 #include "platform/graphics/Color.h" 16 #include "platform/graphics/Color.h"
17 #include "platform/testing/URLTestHelpers.h" 17 #include "platform/testing/URLTestHelpers.h"
18 #include "web/tests/FrameTestHelpers.h" 18 #include "web/tests/FrameTestHelpers.h"
19 #include <gtest/gtest.h> 19 #include <gtest/gtest.h>
20 20
21 namespace { 21 namespace {
22 22
23 using blink::FrameTestHelpers::WebViewHelper; 23 using blink::FrameTestHelpers::WebViewHelper;
24 using blink::URLTestHelpers::toKURL; 24 using blink::URLTestHelpers::toKURL;
25 using namespace blink; 25 using namespace blink;
26 26
27 TEST(WebDocumentTest, InsertStyleSheet) 27 TEST(WebDocumentTest, InsertStyleSheet)
28 { 28 {
29 WebViewHelper webViewHelper; 29 WebViewHelper webViewHelper;
30 webViewHelper.initializeAndLoad("about:blank"); 30 webViewHelper.initializeAndLoad("about:blank");
31 31
32 WebDocument webDoc = webViewHelper.webView()->mainFrame()->document(); 32 WebDocument webDoc = webViewHelper.webView()->mainFrame()->document();
33 Document* coreDoc = toLocalFrame(webViewHelper.webViewImpl()->page()->mainFr ame())->document(); 33 Document* coreDoc = toLocalFrame(webViewHelper.webViewImpl()->page()->mainFr ame())->document();
34 34
35 webDoc.insertStyleSheet("body { color: green }"); 35 webDoc.insertStyleSheet("body { color: green }");
36 36
37 // Check insertStyleSheet did not cause a synchronous style recalc. 37 // Check insertStyleSheet did not cause a synchronous style recalc.
38 unsigned accessCount = coreDoc->styleEngine().resolverAccessCount(); 38 unsigned accessCount = coreDoc->styleEngine().resolverAccessCount();
39 ASSERT_EQ(0U, accessCount); 39 ASSERT_EQ(0U, accessCount);
40 40
41 HTMLElement* bodyElement = coreDoc->body(); 41 HTMLElement* bodyElement = coreDoc->body();
42 ASSERT(bodyElement); 42 ASSERT(bodyElement);
43 43
44 const LayoutStyle& styleBeforeInsertion = bodyElement->layoutStyleRef(); 44 const ComputedStyle& styleBeforeInsertion = bodyElement->computedStyleRef();
45 45
46 // Inserted stylesheet not yet applied. 46 // Inserted stylesheet not yet applied.
47 ASSERT_EQ(Color(0, 0, 0), styleBeforeInsertion.visitedDependentColor(CSSProp ertyColor)); 47 ASSERT_EQ(Color(0, 0, 0), styleBeforeInsertion.visitedDependentColor(CSSProp ertyColor));
48 48
49 // Apply inserted stylesheet. 49 // Apply inserted stylesheet.
50 coreDoc->updateRenderTreeIfNeeded(); 50 coreDoc->updateRenderTreeIfNeeded();
51 51
52 const LayoutStyle& styleAfterInsertion = bodyElement->layoutStyleRef(); 52 const ComputedStyle& styleAfterInsertion = bodyElement->computedStyleRef();
53 53
54 // Inserted stylesheet applied. 54 // Inserted stylesheet applied.
55 ASSERT_EQ(Color(0, 128, 0), styleAfterInsertion.visitedDependentColor(CSSPro pertyColor)); 55 ASSERT_EQ(Color(0, 128, 0), styleAfterInsertion.visitedDependentColor(CSSPro pertyColor));
56 } 56 }
57 57
58 TEST(WebDocumentTest, BeginExitTransition) 58 TEST(WebDocumentTest, BeginExitTransition)
59 { 59 {
60 std::string baseURL = "http://www.test.com:0/"; 60 std::string baseURL = "http://www.test.com:0/";
61 const char* htmlURL = "transition_exit.html"; 61 const char* htmlURL = "transition_exit.html";
62 const char* cssURL = "transition_exit.css"; 62 const char* cssURL = "transition_exit.css";
63 URLTestHelpers::registerMockedURLLoad(toKURL(baseURL + htmlURL), WebString:: fromUTF8(htmlURL)); 63 URLTestHelpers::registerMockedURLLoad(toKURL(baseURL + htmlURL), WebString:: fromUTF8(htmlURL));
64 URLTestHelpers::registerMockedURLLoad(toKURL(baseURL + cssURL), WebString::f romUTF8(cssURL)); 64 URLTestHelpers::registerMockedURLLoad(toKURL(baseURL + cssURL), WebString::f romUTF8(cssURL));
65 65
66 WebViewHelper webViewHelper; 66 WebViewHelper webViewHelper;
67 webViewHelper.initializeAndLoad(baseURL + htmlURL); 67 webViewHelper.initializeAndLoad(baseURL + htmlURL);
68 68
69 WebFrame* frame = webViewHelper.webView()->mainFrame(); 69 WebFrame* frame = webViewHelper.webView()->mainFrame();
70 Document* coreDoc = toLocalFrame(webViewHelper.webViewImpl()->page()->mainFr ame())->document(); 70 Document* coreDoc = toLocalFrame(webViewHelper.webViewImpl()->page()->mainFr ame())->document();
71 Element* transitionElement = coreDoc->getElementById("foo"); 71 Element* transitionElement = coreDoc->getElementById("foo");
72 ASSERT(transitionElement); 72 ASSERT(transitionElement);
73 73
74 const LayoutStyle* transitionStyle = transitionElement->layoutStyle(); 74 const ComputedStyle* transitionStyle = transitionElement->computedStyle();
75 ASSERT(transitionStyle); 75 ASSERT(transitionStyle);
76 76
77 HTMLElement* bodyElement = coreDoc->body(); 77 HTMLElement* bodyElement = coreDoc->body();
78 ASSERT(bodyElement); 78 ASSERT(bodyElement);
79 79
80 const LayoutStyle* bodyStyle = bodyElement->layoutStyle(); 80 const ComputedStyle* bodyStyle = bodyElement->computedStyle();
81 ASSERT(bodyStyle); 81 ASSERT(bodyStyle);
82 // The transition_exit.css stylesheet should not have been applied at this p oint. 82 // The transition_exit.css stylesheet should not have been applied at this p oint.
83 ASSERT_EQ(Color(0, 0, 0), bodyStyle->visitedDependentColor(CSSPropertyColor) ); 83 ASSERT_EQ(Color(0, 0, 0), bodyStyle->visitedDependentColor(CSSPropertyColor) );
84 84
85 frame->document().beginExitTransition("#foo", false); 85 frame->document().beginExitTransition("#foo", false);
86 86
87 // Make sure the stylesheet load request gets processed. 87 // Make sure the stylesheet load request gets processed.
88 FrameTestHelpers::pumpPendingRequestsDoNotUse(frame); 88 FrameTestHelpers::pumpPendingRequestsDoNotUse(frame);
89 coreDoc->updateRenderTreeIfNeeded(); 89 coreDoc->updateRenderTreeIfNeeded();
90 90
91 // The element should now be hidden. 91 // The element should now be hidden.
92 transitionStyle = transitionElement->layoutStyle(); 92 transitionStyle = transitionElement->computedStyle();
93 ASSERT_TRUE(transitionStyle); 93 ASSERT_TRUE(transitionStyle);
94 ASSERT_EQ(transitionStyle->opacity(), 0); 94 ASSERT_EQ(transitionStyle->opacity(), 0);
95 95
96 // The stylesheet should now have been applied. 96 // The stylesheet should now have been applied.
97 bodyStyle = bodyElement->layoutStyle(); 97 bodyStyle = bodyElement->computedStyle();
98 ASSERT(bodyStyle); 98 ASSERT(bodyStyle);
99 ASSERT_EQ(Color(0, 128, 0), bodyStyle->visitedDependentColor(CSSPropertyColo r)); 99 ASSERT_EQ(Color(0, 128, 0), bodyStyle->visitedDependentColor(CSSPropertyColo r));
100 } 100 }
101 101
102 102
103 TEST(WebDocumentTest, BeginExitTransitionToNativeApp) 103 TEST(WebDocumentTest, BeginExitTransitionToNativeApp)
104 { 104 {
105 std::string baseURL = "http://www.test.com:0/"; 105 std::string baseURL = "http://www.test.com:0/";
106 const char* htmlURL = "transition_exit.html"; 106 const char* htmlURL = "transition_exit.html";
107 const char* cssURL = "transition_exit.css"; 107 const char* cssURL = "transition_exit.css";
108 URLTestHelpers::registerMockedURLLoad(toKURL(baseURL + htmlURL), WebString:: fromUTF8(htmlURL)); 108 URLTestHelpers::registerMockedURLLoad(toKURL(baseURL + htmlURL), WebString:: fromUTF8(htmlURL));
109 URLTestHelpers::registerMockedURLLoad(toKURL(baseURL + cssURL), WebString::f romUTF8(cssURL)); 109 URLTestHelpers::registerMockedURLLoad(toKURL(baseURL + cssURL), WebString::f romUTF8(cssURL));
110 110
111 WebViewHelper webViewHelper; 111 WebViewHelper webViewHelper;
112 webViewHelper.initializeAndLoad(baseURL + htmlURL); 112 webViewHelper.initializeAndLoad(baseURL + htmlURL);
113 113
114 WebFrame* frame = webViewHelper.webView()->mainFrame(); 114 WebFrame* frame = webViewHelper.webView()->mainFrame();
115 Document* coreDoc = toLocalFrame(webViewHelper.webViewImpl()->page()->mainFr ame())->document(); 115 Document* coreDoc = toLocalFrame(webViewHelper.webViewImpl()->page()->mainFr ame())->document();
116 Element* transitionElement = coreDoc->getElementById("foo"); 116 Element* transitionElement = coreDoc->getElementById("foo");
117 ASSERT(transitionElement); 117 ASSERT(transitionElement);
118 118
119 const LayoutStyle* transitionStyle = transitionElement->layoutStyle(); 119 const ComputedStyle* transitionStyle = transitionElement->computedStyle();
120 ASSERT(transitionStyle); 120 ASSERT(transitionStyle);
121 121
122 HTMLElement* bodyElement = coreDoc->body(); 122 HTMLElement* bodyElement = coreDoc->body();
123 ASSERT(bodyElement); 123 ASSERT(bodyElement);
124 124
125 const LayoutStyle* bodyStyle = bodyElement->layoutStyle(); 125 const ComputedStyle* bodyStyle = bodyElement->computedStyle();
126 ASSERT(bodyStyle); 126 ASSERT(bodyStyle);
127 // The transition_exit.css stylesheet should not have been applied at this p oint. 127 // The transition_exit.css stylesheet should not have been applied at this p oint.
128 ASSERT_EQ(Color(0, 0, 0), bodyStyle->visitedDependentColor(CSSPropertyColor) ); 128 ASSERT_EQ(Color(0, 0, 0), bodyStyle->visitedDependentColor(CSSPropertyColor) );
129 129
130 frame->document().beginExitTransition("#foo", true); 130 frame->document().beginExitTransition("#foo", true);
131 131
132 // Make sure the stylesheet load request gets processed. 132 // Make sure the stylesheet load request gets processed.
133 FrameTestHelpers::pumpPendingRequestsDoNotUse(frame); 133 FrameTestHelpers::pumpPendingRequestsDoNotUse(frame);
134 coreDoc->updateRenderTreeIfNeeded(); 134 coreDoc->updateRenderTreeIfNeeded();
135 135
136 // The element should not be hidden. 136 // The element should not be hidden.
137 transitionStyle = transitionElement->layoutStyle(); 137 transitionStyle = transitionElement->computedStyle();
138 ASSERT_TRUE(transitionStyle); 138 ASSERT_TRUE(transitionStyle);
139 ASSERT_EQ(transitionStyle->opacity(), 1); 139 ASSERT_EQ(transitionStyle->opacity(), 1);
140 140
141 // The stylesheet should now have been applied. 141 // The stylesheet should now have been applied.
142 bodyStyle = bodyElement->layoutStyle(); 142 bodyStyle = bodyElement->computedStyle();
143 ASSERT(bodyStyle); 143 ASSERT(bodyStyle);
144 ASSERT_EQ(Color(0, 128, 0), bodyStyle->visitedDependentColor(CSSPropertyColo r)); 144 ASSERT_EQ(Color(0, 128, 0), bodyStyle->visitedDependentColor(CSSPropertyColo r));
145 } 145 }
146 146
147 147
148 TEST(WebDocumentTest, HideAndShowTransitionElements) 148 TEST(WebDocumentTest, HideAndShowTransitionElements)
149 { 149 {
150 std::string baseURL = "http://www.test.com:0/"; 150 std::string baseURL = "http://www.test.com:0/";
151 const char* htmlURL = "transition_hide_and_show.html"; 151 const char* htmlURL = "transition_hide_and_show.html";
152 URLTestHelpers::registerMockedURLLoad(toKURL(baseURL + htmlURL), WebString:: fromUTF8(htmlURL)); 152 URLTestHelpers::registerMockedURLLoad(toKURL(baseURL + htmlURL), WebString:: fromUTF8(htmlURL));
153 153
154 WebViewHelper webViewHelper; 154 WebViewHelper webViewHelper;
155 webViewHelper.initializeAndLoad(baseURL + htmlURL); 155 webViewHelper.initializeAndLoad(baseURL + htmlURL);
156 156
157 WebFrame* frame = webViewHelper.webView()->mainFrame(); 157 WebFrame* frame = webViewHelper.webView()->mainFrame();
158 Document* coreDoc = toLocalFrame(webViewHelper.webViewImpl()->page()->mainFr ame())->document(); 158 Document* coreDoc = toLocalFrame(webViewHelper.webViewImpl()->page()->mainFr ame())->document();
159 Element* transitionElement = coreDoc->getElementById("foo"); 159 Element* transitionElement = coreDoc->getElementById("foo");
160 ASSERT(transitionElement); 160 ASSERT(transitionElement);
161 161
162 const LayoutStyle* transitionStyle = transitionElement->layoutStyle(); 162 const ComputedStyle* transitionStyle = transitionElement->computedStyle();
163 ASSERT(transitionStyle); 163 ASSERT(transitionStyle);
164 EXPECT_EQ(transitionStyle->opacity(), 1); 164 EXPECT_EQ(transitionStyle->opacity(), 1);
165 165
166 // Hide transition elements 166 // Hide transition elements
167 frame->document().hideTransitionElements("#foo"); 167 frame->document().hideTransitionElements("#foo");
168 FrameTestHelpers::pumpPendingRequestsDoNotUse(frame); 168 FrameTestHelpers::pumpPendingRequestsDoNotUse(frame);
169 coreDoc->updateRenderTreeIfNeeded(); 169 coreDoc->updateRenderTreeIfNeeded();
170 transitionStyle = transitionElement->layoutStyle(); 170 transitionStyle = transitionElement->computedStyle();
171 ASSERT_TRUE(transitionStyle); 171 ASSERT_TRUE(transitionStyle);
172 EXPECT_EQ(transitionStyle->opacity(), 0); 172 EXPECT_EQ(transitionStyle->opacity(), 0);
173 173
174 // Show transition elements 174 // Show transition elements
175 frame->document().showTransitionElements("#foo"); 175 frame->document().showTransitionElements("#foo");
176 FrameTestHelpers::pumpPendingRequestsDoNotUse(frame); 176 FrameTestHelpers::pumpPendingRequestsDoNotUse(frame);
177 coreDoc->updateRenderTreeIfNeeded(); 177 coreDoc->updateRenderTreeIfNeeded();
178 transitionStyle = transitionElement->layoutStyle(); 178 transitionStyle = transitionElement->computedStyle();
179 ASSERT_TRUE(transitionStyle); 179 ASSERT_TRUE(transitionStyle);
180 EXPECT_EQ(transitionStyle->opacity(), 1); 180 EXPECT_EQ(transitionStyle->opacity(), 1);
181 } 181 }
182 182
183 183
184 TEST(WebDocumentTest, SetIsTransitionDocument) 184 TEST(WebDocumentTest, SetIsTransitionDocument)
185 { 185 {
186 std::string baseURL = "http://www.test.com:0/"; 186 std::string baseURL = "http://www.test.com:0/";
187 const char* htmlURL = "transition_exit.html"; 187 const char* htmlURL = "transition_exit.html";
188 const char* cssURL = "transition_exit.css"; 188 const char* cssURL = "transition_exit.css";
189 URLTestHelpers::registerMockedURLLoad(toKURL(baseURL + htmlURL), WebString:: fromUTF8(htmlURL)); 189 URLTestHelpers::registerMockedURLLoad(toKURL(baseURL + htmlURL), WebString:: fromUTF8(htmlURL));
190 URLTestHelpers::registerMockedURLLoad(toKURL(baseURL + cssURL), WebString::f romUTF8(cssURL)); 190 URLTestHelpers::registerMockedURLLoad(toKURL(baseURL + cssURL), WebString::f romUTF8(cssURL));
191 191
192 WebViewHelper webViewHelper; 192 WebViewHelper webViewHelper;
193 webViewHelper.initializeAndLoad(baseURL + htmlURL); 193 webViewHelper.initializeAndLoad(baseURL + htmlURL);
194 194
195 WebFrame* frame = webViewHelper.webView()->mainFrame(); 195 WebFrame* frame = webViewHelper.webView()->mainFrame();
196 Document* coreDoc = toLocalFrame(webViewHelper.webViewImpl()->page()->mainFr ame())->document(); 196 Document* coreDoc = toLocalFrame(webViewHelper.webViewImpl()->page()->mainFr ame())->document();
197 197
198 ASSERT_FALSE(coreDoc->isTransitionDocument()); 198 ASSERT_FALSE(coreDoc->isTransitionDocument());
199 199
200 frame->document().setIsTransitionDocument(true); 200 frame->document().setIsTransitionDocument(true);
201 ASSERT_TRUE(coreDoc->isTransitionDocument()); 201 ASSERT_TRUE(coreDoc->isTransitionDocument());
202 202
203 frame->document().setIsTransitionDocument(false); 203 frame->document().setIsTransitionDocument(false);
204 ASSERT_FALSE(coreDoc->isTransitionDocument()); 204 ASSERT_FALSE(coreDoc->isTransitionDocument());
205 } 205 }
206 206
207 } 207 }
OLDNEW
« no previous file with comments | « Source/web/mac/WebSubstringUtil.mm ('k') | Source/web/tests/WebFrameTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698