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

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

Issue 364213004: Fixing ActivityLogger tests that were failing due to asynchronous handling of data: URLs. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: rebase Created 6 years, 5 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
« no previous file with comments | « no previous file | no next file » | 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 "FrameTestHelpers.h" 7 #include "FrameTestHelpers.h"
8 #include "bindings/core/v8/ScriptController.h" 8 #include "bindings/core/v8/ScriptController.h"
9 #include "bindings/core/v8/V8DOMActivityLogger.h" 9 #include "bindings/core/v8/V8DOMActivityLogger.h"
10 #include "web/WebLocalFrameImpl.h" 10 #include "web/WebLocalFrameImpl.h"
11 #include "wtf/Forward.h" 11 #include "wtf/Forward.h"
12 #include "wtf/text/Base64.h" 12 #include "wtf/text/Base64.h"
13 #include <gtest/gtest.h> 13 #include <gtest/gtest.h>
14 #include <v8.h> 14 #include <v8.h>
15 15
16 using WebCore::ScriptController; 16 using WebCore::ScriptController;
17 using WebCore::ScriptSourceCode; 17 using WebCore::ScriptSourceCode;
18 using WebCore::V8DOMActivityLogger; 18 using WebCore::V8DOMActivityLogger;
19 using WebCore::toCoreStringWithUndefinedOrNullCheck; 19 using WebCore::toCoreStringWithUndefinedOrNullCheck;
20 using blink::FrameTestHelpers::WebViewHelper; 20 using blink::FrameTestHelpers::WebViewHelper;
21 using blink::FrameTestHelpers::runPendingTasks; 21 using blink::FrameTestHelpers::pumpPendingRequestsDoNotUse;
22 22
23 namespace { 23 namespace {
24 24
25 class TestActivityLogger : public V8DOMActivityLogger { 25 class TestActivityLogger : public V8DOMActivityLogger {
26 public: 26 public:
27 virtual ~TestActivityLogger() { } 27 virtual ~TestActivityLogger() { }
28 28
29 void logGetter(const String& apiName) OVERRIDE 29 void logGetter(const String& apiName) OVERRIDE
30 { 30 {
31 m_loggedActivities.append(apiName); 31 m_loggedActivities.append(apiName);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 m_activityLogger = new TestActivityLogger(); 72 m_activityLogger = new TestActivityLogger();
73 V8DOMActivityLogger::setActivityLogger(isolatedWorldId, String(), adoptP tr(m_activityLogger)); 73 V8DOMActivityLogger::setActivityLogger(isolatedWorldId, String(), adoptP tr(m_activityLogger));
74 m_webViewHelper.initialize(true); 74 m_webViewHelper.initialize(true);
75 m_scriptController = &m_webViewHelper.webViewImpl()->mainFrameImpl()->fr ame()->script(); 75 m_scriptController = &m_webViewHelper.webViewImpl()->mainFrameImpl()->fr ame()->script();
76 } 76 }
77 77
78 void executeScriptInMainWorld(const String& script) const 78 void executeScriptInMainWorld(const String& script) const
79 { 79 {
80 v8::HandleScope scope(v8::Isolate::GetCurrent()); 80 v8::HandleScope scope(v8::Isolate::GetCurrent());
81 m_scriptController->executeScriptInMainWorld(script); 81 m_scriptController->executeScriptInMainWorld(script);
82 runPendingTasks(); 82 pumpPendingRequestsDoNotUse(m_webViewHelper.webViewImpl()->mainFrame());
jochen (gone - plz use gerrit) 2014/07/09 09:26:34 why are you using a method that says "DoNotUse"? C
83 } 83 }
84 84
85 void executeScriptInIsolatedWorld(const String& script) const 85 void executeScriptInIsolatedWorld(const String& script) const
86 { 86 {
87 v8::HandleScope scope(v8::Isolate::GetCurrent()); 87 v8::HandleScope scope(v8::Isolate::GetCurrent());
88 Vector<ScriptSourceCode> sources; 88 Vector<ScriptSourceCode> sources;
89 sources.append(ScriptSourceCode(script)); 89 sources.append(ScriptSourceCode(script));
90 Vector<v8::Local<v8::Value> > results; 90 Vector<v8::Local<v8::Value> > results;
91 m_scriptController->executeScriptInIsolatedWorld(isolatedWorldId, source s, extensionGroup, 0); 91 m_scriptController->executeScriptInIsolatedWorld(isolatedWorldId, source s, extensionGroup, 0);
92 runPendingTasks(); 92 pumpPendingRequestsDoNotUse(m_webViewHelper.webViewImpl()->mainFrame());
93 } 93 }
94 94
95 bool verifyActivities(const String& activities) 95 bool verifyActivities(const String& activities)
96 { 96 {
97 Vector<String> activityVector; 97 Vector<String> activityVector;
98 activities.split("\n", activityVector); 98 activities.split("\n", activityVector);
99 return m_activityLogger->verifyActivities(activityVector); 99 return m_activityLogger->verifyActivities(activityVector);
100 } 100 }
101 101
102 private: 102 private:
103 static const int isolatedWorldId = 1; 103 static const int isolatedWorldId = 1;
104 static const int extensionGroup = 0; 104 static const int extensionGroup = 0;
105 105
106 WebViewHelper m_webViewHelper; 106 WebViewHelper m_webViewHelper;
107 ScriptController* m_scriptController; 107 ScriptController* m_scriptController;
108 // TestActivityLogger is owned by a static table within V8DOMActivityLogger 108 // TestActivityLogger is owned by a static table within V8DOMActivityLogger
109 // and should be alive as long as not overwritten. 109 // and should be alive as long as not overwritten.
110 TestActivityLogger* m_activityLogger; 110 TestActivityLogger* m_activityLogger;
111 }; 111 };
112 112
113 TEST_F(ActivityLoggerTest, DISABLED_EventHandler) 113 TEST_F(ActivityLoggerTest, EventHandler)
114 { 114 {
115 const char* code = 115 const char* code =
116 "document.body.innerHTML = '<a onclick=\\\'do()\\\'>test</a>';" 116 "document.body.innerHTML = '<a onclick=\\\'do()\\\'>test</a>';"
117 "document.body.onchange = function(){};" 117 "document.body.onchange = function(){};"
118 "document.body.setAttribute('onfocus', 'fnc()');" 118 "document.body.setAttribute('onfocus', 'fnc()');"
119 "document.body.addEventListener('onload', function(){});"; 119 "document.body.addEventListener('onload', function(){});";
120 const char* expectedActivities = 120 const char* expectedActivities =
121 "blinkAddEventListener | A | click\n" 121 "blinkAddEventListener | A | click\n"
122 "blinkAddElement | a | \n" 122 "blinkAddElement | a | \n"
123 "blinkAddEventListener | BODY | change\n" 123 "blinkAddEventListener | BODY | change\n"
124 "blinkAddEventListener | LocalDOMWindow | focus\n" 124 "blinkAddEventListener | LocalDOMWindow | focus\n"
125 "blinkAddEventListener | BODY | onload"; 125 "blinkAddEventListener | BODY | onload";
126 executeScriptInMainWorld(code); 126 executeScriptInMainWorld(code);
127 ASSERT_TRUE(verifyActivities("")); 127 ASSERT_TRUE(verifyActivities(""));
128 executeScriptInIsolatedWorld(code); 128 executeScriptInIsolatedWorld(code);
129 ASSERT_TRUE(verifyActivities(expectedActivities)); 129 ASSERT_TRUE(verifyActivities(expectedActivities));
130 } 130 }
131 131
132 TEST_F(ActivityLoggerTest, DISABLED_ScriptElement) 132 TEST_F(ActivityLoggerTest, ScriptElement)
133 { 133 {
134 const char* code = 134 const char* code =
135 "document.body.innerHTML = '<script src=\\\'data:text/html;charset=utf-8 ,\\\'></script>';" 135 "document.body.innerHTML = '<script src=\\\'data:text/html;charset=utf-8 ,\\\'></script>';"
136 "document.body.innerHTML = '<script>console.log(\\\'test\\\')</script>'; " 136 "document.body.innerHTML = '<script>console.log(\\\'test\\\')</script>'; "
137 "var script = document.createElement('script');" 137 "var script = document.createElement('script');"
138 "document.body.appendChild(script);" 138 "document.body.appendChild(script);"
139 "script = document.createElement('script');" 139 "script = document.createElement('script');"
140 "script.src = 'data:text/html;charset=utf-8,';" 140 "script.src = 'data:text/html;charset=utf-8,';"
141 "document.body.appendChild(script);" 141 "document.body.appendChild(script);"
142 "document.write('<body><script src=\\\'data:text/html;charset=utf-8,\\\' ></script></body>');"; 142 "document.write('<body><script src=\\\'data:text/html;charset=utf-8,\\\' ></script></body>');";
143 const char* expectedActivities = 143 const char* expectedActivities =
144 "blinkAddElement | script | data:text/html;charset=utf-8,\n" 144 "blinkAddElement | script | data:text/html;charset=utf-8,\n"
145 "blinkAddElement | script | \n" 145 "blinkAddElement | script | \n"
146 "blinkAddElement | script | \n" 146 "blinkAddElement | script | \n"
147 "blinkAddElement | script | data:text/html;charset=utf-8,\n" 147 "blinkAddElement | script | data:text/html;charset=utf-8,\n"
148 "blinkAddElement | script | data:text/html;charset=utf-8,"; 148 "blinkAddElement | script | data:text/html;charset=utf-8,";
149 executeScriptInMainWorld(code); 149 executeScriptInMainWorld(code);
150 ASSERT_TRUE(verifyActivities("")); 150 ASSERT_TRUE(verifyActivities(""));
151 executeScriptInIsolatedWorld(code); 151 executeScriptInIsolatedWorld(code);
152 ASSERT_TRUE(verifyActivities(expectedActivities)); 152 ASSERT_TRUE(verifyActivities(expectedActivities));
153 } 153 }
154 154
155 TEST_F(ActivityLoggerTest, DISABLED_IFrameElement) 155 TEST_F(ActivityLoggerTest, IFrameElement)
156 { 156 {
157 const char* code = 157 const char* code =
158 "document.body.innerHTML = '<iframe src=\\\'data:text/html;charset=utf-8 ,\\\'></iframe>';" 158 "document.body.innerHTML = '<iframe src=\\\'data:text/html;charset=utf-8 ,\\\'></iframe>';"
159 "document.body.innerHTML = '<iframe></iframe>';" 159 "document.body.innerHTML = '<iframe></iframe>';"
160 "var iframe = document.createElement('iframe');" 160 "var iframe = document.createElement('iframe');"
161 "document.body.appendChild(iframe);" 161 "document.body.appendChild(iframe);"
162 "iframe = document.createElement('iframe');" 162 "iframe = document.createElement('iframe');"
163 "iframe.src = 'data:text/html;charset=utf-8,';" 163 "iframe.src = 'data:text/html;charset=utf-8,';"
164 "document.body.appendChild(iframe);" 164 "document.body.appendChild(iframe);"
165 "document.write('<body><iframe src=\\\'data:text/html;charset=utf-8,\\\' ></iframe></body>');"; 165 "document.write('<body><iframe src=\\\'data:text/html;charset=utf-8,\\\' ></iframe></body>');";
166 const char* expectedActivities = 166 const char* expectedActivities =
167 "blinkAddElement | iframe | data:text/html;charset=utf-8,\n" 167 "blinkAddElement | iframe | data:text/html;charset=utf-8,\n"
168 "blinkAddElement | iframe | \n" 168 "blinkAddElement | iframe | \n"
169 "blinkAddElement | iframe | \n" 169 "blinkAddElement | iframe | \n"
170 "blinkAddElement | iframe | data:text/html;charset=utf-8,\n" 170 "blinkAddElement | iframe | data:text/html;charset=utf-8,\n"
171 "blinkAddElement | iframe | data:text/html;charset=utf-8,"; 171 "blinkAddElement | iframe | data:text/html;charset=utf-8,";
172 executeScriptInMainWorld(code); 172 executeScriptInMainWorld(code);
173 ASSERT_TRUE(verifyActivities("")); 173 ASSERT_TRUE(verifyActivities(""));
174 executeScriptInIsolatedWorld(code); 174 executeScriptInIsolatedWorld(code);
175 ASSERT_TRUE(verifyActivities(expectedActivities)); 175 ASSERT_TRUE(verifyActivities(expectedActivities));
176 } 176 }
177 177
178 TEST_F(ActivityLoggerTest, DISABLED_AnchorElement) 178 TEST_F(ActivityLoggerTest, AnchorElement)
179 { 179 {
180 const char* code = 180 const char* code =
181 "document.body.innerHTML = '<a href=\\\'data:text/css;charset=utf-8,\\\' ></a>';" 181 "document.body.innerHTML = '<a href=\\\'data:text/css;charset=utf-8,\\\' ></a>';"
182 "document.body.innerHTML = '<a></a>';" 182 "document.body.innerHTML = '<a></a>';"
183 "var a = document.createElement('a');" 183 "var a = document.createElement('a');"
184 "document.body.appendChild(a);" 184 "document.body.appendChild(a);"
185 "a = document.createElement('a');" 185 "a = document.createElement('a');"
186 "a.href = 'data:text/css;charset=utf-8,';" 186 "a.href = 'data:text/css;charset=utf-8,';"
187 "document.body.appendChild(a);" 187 "document.body.appendChild(a);"
188 "document.write('<body><a href=\\\'data:text/css;charset=utf-8,\\\'></a> </body>');"; 188 "document.write('<body><a href=\\\'data:text/css;charset=utf-8,\\\'></a> </body>');";
189 const char* expectedActivities = 189 const char* expectedActivities =
190 "blinkAddElement | a | data:text/css;charset=utf-8,\n" 190 "blinkAddElement | a | data:text/css;charset=utf-8,\n"
191 "blinkAddElement | a | \n" 191 "blinkAddElement | a | \n"
192 "blinkAddElement | a | \n" 192 "blinkAddElement | a | \n"
193 "blinkAddElement | a | data:text/css;charset=utf-8,\n" 193 "blinkAddElement | a | data:text/css;charset=utf-8,\n"
194 "blinkAddElement | a | data:text/css;charset=utf-8,"; 194 "blinkAddElement | a | data:text/css;charset=utf-8,";
195 executeScriptInMainWorld(code); 195 executeScriptInMainWorld(code);
196 ASSERT_TRUE(verifyActivities("")); 196 ASSERT_TRUE(verifyActivities(""));
197 executeScriptInIsolatedWorld(code); 197 executeScriptInIsolatedWorld(code);
198 ASSERT_TRUE(verifyActivities(expectedActivities)); 198 ASSERT_TRUE(verifyActivities(expectedActivities));
199 } 199 }
200 200
201 TEST_F(ActivityLoggerTest, DISABLED_LinkElement) 201 TEST_F(ActivityLoggerTest, LinkElement)
202 { 202 {
203 const char* code = 203 const char* code =
204 "document.body.innerHTML = '<link rel=\\\'stylesheet\\\' href=\\\'data:t ext/css;charset=utf-8,\\\'></link>';" 204 "document.body.innerHTML = '<link rel=\\\'stylesheet\\\' href=\\\'data:t ext/css;charset=utf-8,\\\'></link>';"
205 "document.body.innerHTML = '<link></link>';" 205 "document.body.innerHTML = '<link></link>';"
206 "var link = document.createElement('link');" 206 "var link = document.createElement('link');"
207 "document.body.appendChild(link);" 207 "document.body.appendChild(link);"
208 "link = document.createElement('link');" 208 "link = document.createElement('link');"
209 "link.rel = 'stylesheet';" 209 "link.rel = 'stylesheet';"
210 "link.href = 'data:text/css;charset=utf-8,';" 210 "link.href = 'data:text/css;charset=utf-8,';"
211 "document.body.appendChild(link);" 211 "document.body.appendChild(link);"
212 "document.write('<body><link rel=\\\'stylesheet\\\' href=\\\'data:text/c ss;charset=utf-8,\\\'></link></body>');"; 212 "document.write('<body><link rel=\\\'stylesheet\\\' href=\\\'data:text/c ss;charset=utf-8,\\\'></link></body>');";
213 const char* expectedActivities = 213 const char* expectedActivities =
214 "blinkAddElement | link | stylesheet | data:text/css;charset=utf-8,\n" 214 "blinkAddElement | link | stylesheet | data:text/css;charset=utf-8,\n"
215 "blinkAddElement | link | | \n" 215 "blinkAddElement | link | | \n"
216 "blinkAddElement | link | | \n" 216 "blinkAddElement | link | | \n"
217 "blinkAddElement | link | stylesheet | data:text/css;charset=utf-8,\n" 217 "blinkAddElement | link | stylesheet | data:text/css;charset=utf-8,\n"
218 "blinkAddElement | link | stylesheet | data:text/css;charset=utf-8,"; 218 "blinkAddElement | link | stylesheet | data:text/css;charset=utf-8,";
219 executeScriptInMainWorld(code); 219 executeScriptInMainWorld(code);
220 ASSERT_TRUE(verifyActivities("")); 220 ASSERT_TRUE(verifyActivities(""));
221 executeScriptInIsolatedWorld(code); 221 executeScriptInIsolatedWorld(code);
222 ASSERT_TRUE(verifyActivities(expectedActivities)); 222 ASSERT_TRUE(verifyActivities(expectedActivities));
223 } 223 }
224 224
225 TEST_F(ActivityLoggerTest, DISABLED_InputElement) 225 TEST_F(ActivityLoggerTest, InputElement)
226 { 226 {
227 const char* code = 227 const char* code =
228 "document.body.innerHTML = '<input type=\\\'submit\\\' formaction=\\\'da ta:text/html;charset=utf-8,\\\'></input>';" 228 "document.body.innerHTML = '<input type=\\\'submit\\\' formaction=\\\'da ta:text/html;charset=utf-8,\\\'></input>';"
229 "document.body.innerHTML = '<input></input>';" 229 "document.body.innerHTML = '<input></input>';"
230 "var input = document.createElement('input');" 230 "var input = document.createElement('input');"
231 "document.body.appendChild(input);" 231 "document.body.appendChild(input);"
232 "input = document.createElement('input');" 232 "input = document.createElement('input');"
233 "input.type = 'submit';" 233 "input.type = 'submit';"
234 "input.formAction = 'data:text/html;charset=utf-8,';" 234 "input.formAction = 'data:text/html;charset=utf-8,';"
235 "document.body.appendChild(input);" 235 "document.body.appendChild(input);"
236 "document.write('<body><input type=\\\'submit\\\' formaction=\\\'data:te xt/html;charset=utf-8,\\\'></input></body>');"; 236 "document.write('<body><input type=\\\'submit\\\' formaction=\\\'data:te xt/html;charset=utf-8,\\\'></input></body>');";
237 const char* expectedActivities = 237 const char* expectedActivities =
238 "blinkAddElement | input | submit | data:text/html;charset=utf-8,\n" 238 "blinkAddElement | input | submit | data:text/html;charset=utf-8,\n"
239 "blinkAddElement | input | | \n" 239 "blinkAddElement | input | | \n"
240 "blinkAddElement | input | | \n" 240 "blinkAddElement | input | | \n"
241 "blinkAddElement | input | submit | data:text/html;charset=utf-8,\n" 241 "blinkAddElement | input | submit | data:text/html;charset=utf-8,\n"
242 "blinkAddElement | input | submit | data:text/html;charset=utf-8,"; 242 "blinkAddElement | input | submit | data:text/html;charset=utf-8,";
243 executeScriptInMainWorld(code); 243 executeScriptInMainWorld(code);
244 ASSERT_TRUE(verifyActivities("")); 244 ASSERT_TRUE(verifyActivities(""));
245 executeScriptInIsolatedWorld(code); 245 executeScriptInIsolatedWorld(code);
246 ASSERT_TRUE(verifyActivities(expectedActivities)); 246 ASSERT_TRUE(verifyActivities(expectedActivities));
247 } 247 }
248 248
249 TEST_F(ActivityLoggerTest, DISABLED_ButtonElement) 249 TEST_F(ActivityLoggerTest, ButtonElement)
250 { 250 {
251 const char* code = 251 const char* code =
252 "document.body.innerHTML = '<button type=\\\'submit\\\' formmethod=\\\'p ost\\\' formaction=\\\'data:text/html;charset=utf-8,\\\'></input>';" 252 "document.body.innerHTML = '<button type=\\\'submit\\\' formmethod=\\\'p ost\\\' formaction=\\\'data:text/html;charset=utf-8,\\\'></input>';"
253 "document.body.innerHTML = '<button></button>';" 253 "document.body.innerHTML = '<button></button>';"
254 "var button = document.createElement('button');" 254 "var button = document.createElement('button');"
255 "document.body.appendChild(button);" 255 "document.body.appendChild(button);"
256 "button = document.createElement('button');" 256 "button = document.createElement('button');"
257 "button.type = 'submit';" 257 "button.type = 'submit';"
258 "button.formMethod = 'post';" 258 "button.formMethod = 'post';"
259 "button.formAction = 'data:text/html;charset=utf-8,';" 259 "button.formAction = 'data:text/html;charset=utf-8,';"
260 "document.body.appendChild(button);" 260 "document.body.appendChild(button);"
261 "document.write('<body><button type=\\\'submit\\\' formmethod=\\\'post\\ \' formaction=\\\'data:text/html;charset=utf-8,\\\'></button></body>');"; 261 "document.write('<body><button type=\\\'submit\\\' formmethod=\\\'post\\ \' formaction=\\\'data:text/html;charset=utf-8,\\\'></button></body>');";
262 const char* expectedActivities = 262 const char* expectedActivities =
263 "blinkAddElement | button | submit | post | data:text/html;charset=utf-8 ,\n" 263 "blinkAddElement | button | submit | post | data:text/html;charset=utf-8 ,\n"
264 "blinkAddElement | button | | | \n" 264 "blinkAddElement | button | | | \n"
265 "blinkAddElement | button | | | \n" 265 "blinkAddElement | button | | | \n"
266 "blinkAddElement | button | submit | post | data:text/html;charset=utf-8 ,\n" 266 "blinkAddElement | button | submit | post | data:text/html;charset=utf-8 ,\n"
267 "blinkAddElement | button | submit | post | data:text/html;charset=utf-8 ,"; 267 "blinkAddElement | button | submit | post | data:text/html;charset=utf-8 ,";
268 executeScriptInMainWorld(code); 268 executeScriptInMainWorld(code);
269 ASSERT_TRUE(verifyActivities("")); 269 ASSERT_TRUE(verifyActivities(""));
270 executeScriptInIsolatedWorld(code); 270 executeScriptInIsolatedWorld(code);
271 ASSERT_TRUE(verifyActivities(expectedActivities)); 271 ASSERT_TRUE(verifyActivities(expectedActivities));
272 } 272 }
273 273
274 TEST_F(ActivityLoggerTest, DISABLED_FormElement) 274 TEST_F(ActivityLoggerTest, FormElement)
275 { 275 {
276 const char* code = 276 const char* code =
277 "document.body.innerHTML = '<form method=\\\'post\\\' action=\\\'data:te xt/html;charset=utf-8,\\\'></form>';" 277 "document.body.innerHTML = '<form method=\\\'post\\\' action=\\\'data:te xt/html;charset=utf-8,\\\'></form>';"
278 "document.body.innerHTML = '<form></form>';" 278 "document.body.innerHTML = '<form></form>';"
279 "var form = document.createElement('form');" 279 "var form = document.createElement('form');"
280 "document.body.appendChild(form);" 280 "document.body.appendChild(form);"
281 "form = document.createElement('form');" 281 "form = document.createElement('form');"
282 "form.method = 'post';" 282 "form.method = 'post';"
283 "form.action = 'data:text/html;charset=utf-8,';" 283 "form.action = 'data:text/html;charset=utf-8,';"
284 "document.body.appendChild(form);" 284 "document.body.appendChild(form);"
285 "document.write('<body><form method=\\\'post\\\' action=\\\'data:text/ht ml;charset=utf-8,\\\'></form></body>');"; 285 "document.write('<body><form method=\\\'post\\\' action=\\\'data:text/ht ml;charset=utf-8,\\\'></form></body>');";
286 const char* expectedActivities = 286 const char* expectedActivities =
287 "blinkAddElement | form | post | data:text/html;charset=utf-8,\n" 287 "blinkAddElement | form | post | data:text/html;charset=utf-8,\n"
288 "blinkAddElement | form | | \n" 288 "blinkAddElement | form | | \n"
289 "blinkAddElement | form | | \n" 289 "blinkAddElement | form | | \n"
290 "blinkAddElement | form | post | data:text/html;charset=utf-8,\n" 290 "blinkAddElement | form | post | data:text/html;charset=utf-8,\n"
291 "blinkAddElement | form | post | data:text/html;charset=utf-8,"; 291 "blinkAddElement | form | post | data:text/html;charset=utf-8,";
292 executeScriptInMainWorld(code); 292 executeScriptInMainWorld(code);
293 ASSERT_TRUE(verifyActivities("")); 293 ASSERT_TRUE(verifyActivities(""));
294 executeScriptInIsolatedWorld(code); 294 executeScriptInIsolatedWorld(code);
295 ASSERT_TRUE(verifyActivities(expectedActivities)); 295 ASSERT_TRUE(verifyActivities(expectedActivities));
296 } 296 }
297 297
298 TEST_F(ActivityLoggerTest, DISABLED_IFrameSrcAttribute) 298 TEST_F(ActivityLoggerTest, IFrameSrcAttribute)
299 { 299 {
300 const char* code = 300 const char* code =
301 "document.body.innerHTML = '<iframe src=\\\'data:text/html;charset=utf-8 ,A\\\'></iframe>';" 301 "document.body.innerHTML = '<iframe src=\\\'data:text/html;charset=utf-8 ,A\\\'></iframe>';"
302 "var iframe = document.getElementsByTagName('iframe')[0];" 302 "var iframe = document.getElementsByTagName('iframe')[0];"
303 "iframe.src = 'data:text/html;charset=utf-8,B';" 303 "iframe.src = 'data:text/html;charset=utf-8,B';"
304 "iframe.setAttribute('src', 'data:text/html;charset=utf-8,C');" 304 "iframe.setAttribute('src', 'data:text/html;charset=utf-8,C');"
305 "iframe.setAttributeNS('', 'src', 'data:text/html;charset=utf-8,D');" 305 "iframe.setAttributeNS('', 'src', 'data:text/html;charset=utf-8,D');"
306 "var attr = document.createAttribute('src');" 306 "var attr = document.createAttribute('src');"
307 "attr.value = 'data:text/html;charset=utf-8,E';" 307 "attr.value = 'data:text/html;charset=utf-8,E';"
308 "iframe.setAttributeNode(attr);"; 308 "iframe.setAttributeNode(attr);";
309 const char* expectedActivities = 309 const char* expectedActivities =
310 "blinkAddElement | iframe | data:text/html;charset=utf-8,A\n" 310 "blinkAddElement | iframe | data:text/html;charset=utf-8,A\n"
311 "blinkSetAttribute | iframe | src | data:text/html;charset=utf-8,A | dat a:text/html;charset=utf-8,B\n" 311 "blinkSetAttribute | iframe | src | data:text/html;charset=utf-8,A | dat a:text/html;charset=utf-8,B\n"
312 "blinkSetAttribute | iframe | src | data:text/html;charset=utf-8,B | dat a:text/html;charset=utf-8,C\n" 312 "blinkSetAttribute | iframe | src | data:text/html;charset=utf-8,B | dat a:text/html;charset=utf-8,C\n"
313 "blinkSetAttribute | iframe | src | data:text/html;charset=utf-8,C | dat a:text/html;charset=utf-8,D\n" 313 "blinkSetAttribute | iframe | src | data:text/html;charset=utf-8,C | dat a:text/html;charset=utf-8,D\n"
314 "blinkSetAttribute | iframe | src | data:text/html;charset=utf-8,D | dat a:text/html;charset=utf-8,E"; 314 "blinkSetAttribute | iframe | src | data:text/html;charset=utf-8,D | dat a:text/html;charset=utf-8,E";
315 executeScriptInMainWorld(code); 315 executeScriptInMainWorld(code);
316 ASSERT_TRUE(verifyActivities("")); 316 ASSERT_TRUE(verifyActivities(""));
317 executeScriptInIsolatedWorld(code); 317 executeScriptInIsolatedWorld(code);
318 ASSERT_TRUE(verifyActivities(expectedActivities)); 318 ASSERT_TRUE(verifyActivities(expectedActivities));
319 } 319 }
320 320
321 TEST_F(ActivityLoggerTest, DISABLED_AnchorHrefAttribute) 321 TEST_F(ActivityLoggerTest, AnchorHrefAttribute)
322 { 322 {
323 const char* code = 323 const char* code =
324 "document.body.innerHTML = '<a href=\\\'data:text/html;charset=utf-8,A\\ \'></a>';" 324 "document.body.innerHTML = '<a href=\\\'data:text/html;charset=utf-8,A\\ \'></a>';"
325 "var a = document.getElementsByTagName('a')[0];" 325 "var a = document.getElementsByTagName('a')[0];"
326 "a.href = 'data:text/html;charset=utf-8,B';" 326 "a.href = 'data:text/html;charset=utf-8,B';"
327 "a.setAttribute('href', 'data:text/html;charset=utf-8,C');" 327 "a.setAttribute('href', 'data:text/html;charset=utf-8,C');"
328 "a.setAttributeNS('', 'href', 'data:text/html;charset=utf-8,D');" 328 "a.setAttributeNS('', 'href', 'data:text/html;charset=utf-8,D');"
329 "var attr = document.createAttribute('href');" 329 "var attr = document.createAttribute('href');"
330 "attr.value = 'data:text/html;charset=utf-8,E';" 330 "attr.value = 'data:text/html;charset=utf-8,E';"
331 "a.setAttributeNode(attr);"; 331 "a.setAttributeNode(attr);";
332 const char* expectedActivities = 332 const char* expectedActivities =
333 "blinkAddElement | a | data:text/html;charset=utf-8,A\n" 333 "blinkAddElement | a | data:text/html;charset=utf-8,A\n"
334 "blinkSetAttribute | a | href | data:text/html;charset=utf-8,A | data:te xt/html;charset=utf-8,B\n" 334 "blinkSetAttribute | a | href | data:text/html;charset=utf-8,A | data:te xt/html;charset=utf-8,B\n"
335 "blinkSetAttribute | a | href | data:text/html;charset=utf-8,B | data:te xt/html;charset=utf-8,C\n" 335 "blinkSetAttribute | a | href | data:text/html;charset=utf-8,B | data:te xt/html;charset=utf-8,C\n"
336 "blinkSetAttribute | a | href | data:text/html;charset=utf-8,C | data:te xt/html;charset=utf-8,D\n" 336 "blinkSetAttribute | a | href | data:text/html;charset=utf-8,C | data:te xt/html;charset=utf-8,D\n"
337 "blinkSetAttribute | a | href | data:text/html;charset=utf-8,D | data:te xt/html;charset=utf-8,E"; 337 "blinkSetAttribute | a | href | data:text/html;charset=utf-8,D | data:te xt/html;charset=utf-8,E";
338 executeScriptInMainWorld(code); 338 executeScriptInMainWorld(code);
339 ASSERT_TRUE(verifyActivities("")); 339 ASSERT_TRUE(verifyActivities(""));
340 executeScriptInIsolatedWorld(code); 340 executeScriptInIsolatedWorld(code);
341 ASSERT_TRUE(verifyActivities(expectedActivities)); 341 ASSERT_TRUE(verifyActivities(expectedActivities));
342 } 342 }
343 343
344 TEST_F(ActivityLoggerTest, DISABLED_LinkHrefAttribute) 344 TEST_F(ActivityLoggerTest, LinkHrefAttribute)
345 { 345 {
346 const char* code = 346 const char* code =
347 "document.body.innerHTML = '<link rel=\\\'stylesheet\\\' href=\\\'data:t ext/css;charset=utf-8,A\\\'></link>';" 347 "document.body.innerHTML = '<link rel=\\\'stylesheet\\\' href=\\\'data:t ext/css;charset=utf-8,A\\\'></link>';"
348 "var link = document.getElementsByTagName('link')[0];" 348 "var link = document.getElementsByTagName('link')[0];"
349 "link.href = 'data:text/css;charset=utf-8,B';" 349 "link.href = 'data:text/css;charset=utf-8,B';"
350 "link.setAttribute('href', 'data:text/css;charset=utf-8,C');" 350 "link.setAttribute('href', 'data:text/css;charset=utf-8,C');"
351 "link.setAttributeNS('', 'href', 'data:text/css;charset=utf-8,D');" 351 "link.setAttributeNS('', 'href', 'data:text/css;charset=utf-8,D');"
352 "var attr = document.createAttribute('href');" 352 "var attr = document.createAttribute('href');"
353 "attr.value = 'data:text/css;charset=utf-8,E';" 353 "attr.value = 'data:text/css;charset=utf-8,E';"
354 "link.setAttributeNode(attr);"; 354 "link.setAttributeNode(attr);";
355 const char* expectedActivities = 355 const char* expectedActivities =
356 "blinkAddElement | link | stylesheet | data:text/css;charset=utf-8,A\n" 356 "blinkAddElement | link | stylesheet | data:text/css;charset=utf-8,A\n"
357 "blinkSetAttribute | link | href | data:text/css;charset=utf-8,A | data: text/css;charset=utf-8,B\n" 357 "blinkSetAttribute | link | href | data:text/css;charset=utf-8,A | data: text/css;charset=utf-8,B\n"
358 "blinkSetAttribute | link | href | data:text/css;charset=utf-8,B | data: text/css;charset=utf-8,C\n" 358 "blinkSetAttribute | link | href | data:text/css;charset=utf-8,B | data: text/css;charset=utf-8,C\n"
359 "blinkSetAttribute | link | href | data:text/css;charset=utf-8,C | data: text/css;charset=utf-8,D\n" 359 "blinkSetAttribute | link | href | data:text/css;charset=utf-8,C | data: text/css;charset=utf-8,D\n"
360 "blinkSetAttribute | link | href | data:text/css;charset=utf-8,D | data: text/css;charset=utf-8,E"; 360 "blinkSetAttribute | link | href | data:text/css;charset=utf-8,D | data: text/css;charset=utf-8,E";
361 executeScriptInMainWorld(code); 361 executeScriptInMainWorld(code);
362 ASSERT_TRUE(verifyActivities("")); 362 ASSERT_TRUE(verifyActivities(""));
363 executeScriptInIsolatedWorld(code); 363 executeScriptInIsolatedWorld(code);
364 ASSERT_TRUE(verifyActivities(expectedActivities)); 364 ASSERT_TRUE(verifyActivities(expectedActivities));
365 } 365 }
366 366
367 TEST_F(ActivityLoggerTest, DISABLED_InputFormActionAttribute) 367 TEST_F(ActivityLoggerTest, InputFormActionAttribute)
368 { 368 {
369 const char* code = 369 const char* code =
370 "document.body.innerHTML = '<input type=\\\'button\\\' formaction=\\\'da ta:text/html;charset=utf-8,A\\\'></input>';" 370 "document.body.innerHTML = '<input type=\\\'button\\\' formaction=\\\'da ta:text/html;charset=utf-8,A\\\'></input>';"
371 "var input = document.getElementsByTagName('input')[0];" 371 "var input = document.getElementsByTagName('input')[0];"
372 "input.formAction = 'data:text/html;charset=utf-8,B';" 372 "input.formAction = 'data:text/html;charset=utf-8,B';"
373 "input.setAttribute('formaction', 'data:text/html;charset=utf-8,C');" 373 "input.setAttribute('formaction', 'data:text/html;charset=utf-8,C');"
374 "input.setAttributeNS('', 'formaction', 'data:text/html;charset=utf-8,D' );" 374 "input.setAttributeNS('', 'formaction', 'data:text/html;charset=utf-8,D' );"
375 "var attr = document.createAttribute('formaction');" 375 "var attr = document.createAttribute('formaction');"
376 "attr.value = 'data:text/html;charset=utf-8,E';" 376 "attr.value = 'data:text/html;charset=utf-8,E';"
377 "input.setAttributeNode(attr);"; 377 "input.setAttributeNode(attr);";
378 const char* expectedActivities = 378 const char* expectedActivities =
379 "blinkAddElement | input | button | data:text/html;charset=utf-8,A\n" 379 "blinkAddElement | input | button | data:text/html;charset=utf-8,A\n"
380 "blinkSetAttribute | input | formaction | data:text/html;charset=utf-8,A | data:text/html;charset=utf-8,B\n" 380 "blinkSetAttribute | input | formaction | data:text/html;charset=utf-8,A | data:text/html;charset=utf-8,B\n"
381 "blinkSetAttribute | input | formaction | data:text/html;charset=utf-8,B | data:text/html;charset=utf-8,C\n" 381 "blinkSetAttribute | input | formaction | data:text/html;charset=utf-8,B | data:text/html;charset=utf-8,C\n"
382 "blinkSetAttribute | input | formaction | data:text/html;charset=utf-8,C | data:text/html;charset=utf-8,D\n" 382 "blinkSetAttribute | input | formaction | data:text/html;charset=utf-8,C | data:text/html;charset=utf-8,D\n"
383 "blinkSetAttribute | input | formaction | data:text/html;charset=utf-8,D | data:text/html;charset=utf-8,E"; 383 "blinkSetAttribute | input | formaction | data:text/html;charset=utf-8,D | data:text/html;charset=utf-8,E";
384 executeScriptInMainWorld(code); 384 executeScriptInMainWorld(code);
385 ASSERT_TRUE(verifyActivities("")); 385 ASSERT_TRUE(verifyActivities(""));
386 executeScriptInIsolatedWorld(code); 386 executeScriptInIsolatedWorld(code);
387 ASSERT_TRUE(verifyActivities(expectedActivities)); 387 ASSERT_TRUE(verifyActivities(expectedActivities));
388 } 388 }
389 389
390 TEST_F(ActivityLoggerTest, DISABLED_ButtonFormActionAttribute) 390 TEST_F(ActivityLoggerTest, ButtonFormActionAttribute)
391 { 391 {
392 const char* code = 392 const char* code =
393 "document.body.innerHTML = '<button type=\\\'submit\\\' formmethod=\\\'p ost\\\' formaction=\\\'data:text/html;charset=utf-8,A\\\'></input>';" 393 "document.body.innerHTML = '<button type=\\\'submit\\\' formmethod=\\\'p ost\\\' formaction=\\\'data:text/html;charset=utf-8,A\\\'></input>';"
394 "var button = document.getElementsByTagName('button')[0];" 394 "var button = document.getElementsByTagName('button')[0];"
395 "button.formAction = 'data:text/html;charset=utf-8,B';" 395 "button.formAction = 'data:text/html;charset=utf-8,B';"
396 "button.setAttribute('formaction', 'data:text/html;charset=utf-8,C');" 396 "button.setAttribute('formaction', 'data:text/html;charset=utf-8,C');"
397 "button.setAttributeNS('', 'formaction', 'data:text/html;charset=utf-8,D ');" 397 "button.setAttributeNS('', 'formaction', 'data:text/html;charset=utf-8,D ');"
398 "var attr = document.createAttribute('formaction');" 398 "var attr = document.createAttribute('formaction');"
399 "attr.value = 'data:text/html;charset=utf-8,E';" 399 "attr.value = 'data:text/html;charset=utf-8,E';"
400 "button.setAttributeNode(attr);"; 400 "button.setAttributeNode(attr);";
401 const char* expectedActivities = 401 const char* expectedActivities =
402 "blinkAddElement | button | submit | post | data:text/html;charset=utf-8 ,A\n" 402 "blinkAddElement | button | submit | post | data:text/html;charset=utf-8 ,A\n"
403 "blinkSetAttribute | button | formaction | data:text/html;charset=utf-8, A | data:text/html;charset=utf-8,B\n" 403 "blinkSetAttribute | button | formaction | data:text/html;charset=utf-8, A | data:text/html;charset=utf-8,B\n"
404 "blinkSetAttribute | button | formaction | data:text/html;charset=utf-8, B | data:text/html;charset=utf-8,C\n" 404 "blinkSetAttribute | button | formaction | data:text/html;charset=utf-8, B | data:text/html;charset=utf-8,C\n"
405 "blinkSetAttribute | button | formaction | data:text/html;charset=utf-8, C | data:text/html;charset=utf-8,D\n" 405 "blinkSetAttribute | button | formaction | data:text/html;charset=utf-8, C | data:text/html;charset=utf-8,D\n"
406 "blinkSetAttribute | button | formaction | data:text/html;charset=utf-8, D | data:text/html;charset=utf-8,E"; 406 "blinkSetAttribute | button | formaction | data:text/html;charset=utf-8, D | data:text/html;charset=utf-8,E";
407 executeScriptInMainWorld(code); 407 executeScriptInMainWorld(code);
408 ASSERT_TRUE(verifyActivities("")); 408 ASSERT_TRUE(verifyActivities(""));
409 executeScriptInIsolatedWorld(code); 409 executeScriptInIsolatedWorld(code);
410 ASSERT_TRUE(verifyActivities(expectedActivities)); 410 ASSERT_TRUE(verifyActivities(expectedActivities));
411 } 411 }
412 412
413 TEST_F(ActivityLoggerTest, DISABLED_FormActionAttribute) 413 TEST_F(ActivityLoggerTest, FormActionAttribute)
414 { 414 {
415 const char* code = 415 const char* code =
416 "document.body.innerHTML = '<form action=\\\'data:text/html;charset=utf- 8,A\\\'></form>';" 416 "document.body.innerHTML = '<form action=\\\'data:text/html;charset=utf- 8,A\\\'></form>';"
417 "var form = document.getElementsByTagName('form')[0];" 417 "var form = document.getElementsByTagName('form')[0];"
418 "form.action = 'data:text/html;charset=utf-8,B';" 418 "form.action = 'data:text/html;charset=utf-8,B';"
419 "form.setAttribute('action', 'data:text/html;charset=utf-8,C');" 419 "form.setAttribute('action', 'data:text/html;charset=utf-8,C');"
420 "form.setAttributeNS('', 'action', 'data:text/html;charset=utf-8,D');" 420 "form.setAttributeNS('', 'action', 'data:text/html;charset=utf-8,D');"
421 "var attr = document.createAttribute('action');" 421 "var attr = document.createAttribute('action');"
422 "attr.value = 'data:text/html;charset=utf-8,E';" 422 "attr.value = 'data:text/html;charset=utf-8,E';"
423 "form.setAttributeNode(attr);"; 423 "form.setAttributeNode(attr);";
424 const char* expectedActivities = 424 const char* expectedActivities =
425 "blinkAddElement | form | | data:text/html;charset=utf-8,A\n" 425 "blinkAddElement | form | | data:text/html;charset=utf-8,A\n"
426 "blinkSetAttribute | form | action | data:text/html;charset=utf-8,A | da ta:text/html;charset=utf-8,B\n" 426 "blinkSetAttribute | form | action | data:text/html;charset=utf-8,A | da ta:text/html;charset=utf-8,B\n"
427 "blinkSetAttribute | form | action | data:text/html;charset=utf-8,B | da ta:text/html;charset=utf-8,C\n" 427 "blinkSetAttribute | form | action | data:text/html;charset=utf-8,B | da ta:text/html;charset=utf-8,C\n"
428 "blinkSetAttribute | form | action | data:text/html;charset=utf-8,C | da ta:text/html;charset=utf-8,D\n" 428 "blinkSetAttribute | form | action | data:text/html;charset=utf-8,C | da ta:text/html;charset=utf-8,D\n"
429 "blinkSetAttribute | form | action | data:text/html;charset=utf-8,D | da ta:text/html;charset=utf-8,E"; 429 "blinkSetAttribute | form | action | data:text/html;charset=utf-8,D | da ta:text/html;charset=utf-8,E";
430 executeScriptInMainWorld(code); 430 executeScriptInMainWorld(code);
431 ASSERT_TRUE(verifyActivities("")); 431 ASSERT_TRUE(verifyActivities(""));
432 executeScriptInIsolatedWorld(code); 432 executeScriptInIsolatedWorld(code);
433 ASSERT_TRUE(verifyActivities(expectedActivities)); 433 ASSERT_TRUE(verifyActivities(expectedActivities));
434 } 434 }
435 435
436 TEST_F(ActivityLoggerTest, DISABLED_LocalDOMWindowAttribute) 436 TEST_F(ActivityLoggerTest, LocalDOMWindowAttribute)
437 { 437 {
438 const char* code = 438 const char* code =
439 "location.href = 'data:text/html;charset=utf-8,A';" 439 "location.href = 'data:text/html;charset=utf-8,A';"
440 "location.assign('data:text/html;charset=utf-8,B');" 440 "location.assign('data:text/html;charset=utf-8,B');"
441 "location.replace('data:text/html;charset=utf-8,C');" 441 "location.replace('data:text/html;charset=utf-8,C');"
442 "location.protocol = 'protocol';" 442 "location.protocol = 'protocol';"
443 "location.pathname = 'pathname';" 443 "location.pathname = 'pathname';"
444 "location.search = 'search';" 444 "location.search = 'search';"
445 "location.hash = 'hash';" 445 "location.hash = 'hash';"
446 "location.href = 'about:blank';"; 446 "location.href = 'about:blank';";
447 const char* expectedActivities = 447 const char* expectedActivities =
448 "blinkSetAttribute | LocalDOMWindow | url | about:blank | data:text/html ;charset=utf-8,A\n" 448 "blinkSetAttribute | LocalDOMWindow | url | about:blank | data:text/html ;charset=utf-8,A\n"
449 "blinkSetAttribute | LocalDOMWindow | url | about:blank | data:text/html ;charset=utf-8,B\n" 449 "blinkSetAttribute | LocalDOMWindow | url | about:blank | data:text/html ;charset=utf-8,B\n"
450 "blinkSetAttribute | LocalDOMWindow | url | about:blank | data:text/html ;charset=utf-8,C\n" 450 "blinkSetAttribute | LocalDOMWindow | url | about:blank | data:text/html ;charset=utf-8,C\n"
451 "blinkSetAttribute | LocalDOMWindow | url | about:blank | protocol:blank \n" 451 "blinkSetAttribute | LocalDOMWindow | url | about:blank | protocol:blank \n"
452 "blinkSetAttribute | LocalDOMWindow | url | about:blank | about:pathname \n" 452 "blinkSetAttribute | LocalDOMWindow | url | about:blank | about:pathname \n"
453 "blinkSetAttribute | LocalDOMWindow | url | about:blank | about:blank?se arch\n" 453 "blinkSetAttribute | LocalDOMWindow | url | about:blank | about:blank?se arch\n"
454 "blinkSetAttribute | LocalDOMWindow | url | about:blank | about:blank#ha sh\n" 454 "blinkSetAttribute | LocalDOMWindow | url | about:blank | about:blank#ha sh\n"
455 "blinkSetAttribute | LocalDOMWindow | url | about:blank#hash | about:bla nk\n"; 455 "blinkSetAttribute | LocalDOMWindow | url | about:blank#hash | about:bla nk\n";
456 executeScriptInMainWorld(code); 456 executeScriptInMainWorld(code);
457 ASSERT_TRUE(verifyActivities("")); 457 ASSERT_TRUE(verifyActivities(""));
458 executeScriptInIsolatedWorld(code); 458 executeScriptInIsolatedWorld(code);
459 ASSERT_TRUE(verifyActivities(expectedActivities)); 459 ASSERT_TRUE(verifyActivities(expectedActivities));
460 } 460 }
461 461
462 } // namespace 462 } // namespace
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698