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

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

Issue 351923005: Refactoring activity logger. (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 | « Source/core/html/HTMLVideoElement.idl ('k') | 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"
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 ActivityLoggerTest() 70 ActivityLoggerTest()
71 { 71 {
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 m_scriptController->executeScriptInMainWorld(script); 81 m_scriptController->executeScriptInMainWorld(script);
81 runPendingTasks(); 82 runPendingTasks();
82 } 83 }
83 84
84 void executeScriptInIsolatedWorld(const String& script) const 85 void executeScriptInIsolatedWorld(const String& script) const
85 { 86 {
87 v8::HandleScope scope(v8::Isolate::GetCurrent());
86 Vector<ScriptSourceCode> sources; 88 Vector<ScriptSourceCode> sources;
87 sources.append(ScriptSourceCode(script)); 89 sources.append(ScriptSourceCode(script));
88 Vector<v8::Local<v8::Value> > results; 90 Vector<v8::Local<v8::Value> > results;
89 m_scriptController->executeScriptInIsolatedWorld(isolatedWorldId, source s, extensionGroup, 0); 91 m_scriptController->executeScriptInIsolatedWorld(isolatedWorldId, source s, extensionGroup, 0);
90 runPendingTasks(); 92 runPendingTasks();
91 } 93 }
92 94
93 bool verifyActivities(const String& activities) 95 bool verifyActivities(const String& activities)
94 { 96 {
95 Vector<String> activityVector; 97 Vector<String> activityVector;
96 activities.split("\n", activityVector); 98 activities.split("\n", activityVector);
97 return m_activityLogger->verifyActivities(activityVector); 99 return m_activityLogger->verifyActivities(activityVector);
98 } 100 }
99 101
100 private: 102 private:
101 static const int isolatedWorldId = 1; 103 static const int isolatedWorldId = 1;
102 static const int extensionGroup = 0; 104 static const int extensionGroup = 0;
103 105
104 WebViewHelper m_webViewHelper; 106 WebViewHelper m_webViewHelper;
105 ScriptController* m_scriptController; 107 ScriptController* m_scriptController;
106 // TestActivityLogger is owned by a static table within V8DOMActivityLogger 108 // TestActivityLogger is owned by a static table within V8DOMActivityLogger
107 // and should be alive as long as not overwritten. 109 // and should be alive as long as not overwritten.
108 TestActivityLogger* m_activityLogger; 110 TestActivityLogger* m_activityLogger;
109 }; 111 };
110 112
111 TEST_F(ActivityLoggerTest, EventHandler) 113 TEST_F(ActivityLoggerTest, EventHandler)
112 { 114 {
113 v8::HandleScope scope(v8::Isolate::GetCurrent());
114 const char* code = 115 const char* code =
115 "document.body.innerHTML = '<a onclick=\\\'do()\\\'>test</a>';" 116 "document.body.innerHTML = '<a onclick=\\\'do()\\\'>test</a>';"
116 "document.body.onchange = function(){};" 117 "document.body.onchange = function(){};"
117 "document.body.setAttribute('onfocus', 'fnc()');" 118 "document.body.setAttribute('onfocus', 'fnc()');"
118 "document.body.addEventListener('onload', function(){});"; 119 "document.body.addEventListener('onload', function(){});";
119 const char* expectedActivities = 120 const char* expectedActivities =
120 "blinkAddEventListener | A | click\n" 121 "blinkAddEventListener | A | click\n"
121 "blinkAddElement | a | \n" 122 "blinkAddElement | a | \n"
122 "blinkAddEventListener | BODY | change\n" 123 "blinkAddEventListener | BODY | change\n"
123 "blinkAddEventListener | LocalDOMWindow | focus\n" 124 "blinkAddEventListener | LocalDOMWindow | focus\n"
124 "blinkAddEventListener | BODY | onload"; 125 "blinkAddEventListener | BODY | onload";
125 executeScriptInMainWorld(code); 126 executeScriptInMainWorld(code);
126 ASSERT_TRUE(verifyActivities("")); 127 ASSERT_TRUE(verifyActivities(""));
127 executeScriptInIsolatedWorld(code); 128 executeScriptInIsolatedWorld(code);
128 ASSERT_TRUE(verifyActivities(expectedActivities)); 129 ASSERT_TRUE(verifyActivities(expectedActivities));
129 } 130 }
130 131
131 TEST_F(ActivityLoggerTest, ScriptElement) 132 TEST_F(ActivityLoggerTest, ScriptElement)
132 { 133 {
133 v8::HandleScope scope(v8::Isolate::GetCurrent());
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 "HTMLScriptElement.src | data:text/html;charset=utf-8,\n"
148 "blinkAddElement | script | data:text/html;charset=utf-8,\n" 147 "blinkAddElement | script | data:text/html;charset=utf-8,\n"
149 "blinkAddElement | script | data:text/html;charset=utf-8,"; 148 "blinkAddElement | script | data:text/html;charset=utf-8,";
150 executeScriptInMainWorld(code); 149 executeScriptInMainWorld(code);
151 ASSERT_TRUE(verifyActivities("")); 150 ASSERT_TRUE(verifyActivities(""));
152 executeScriptInIsolatedWorld(code); 151 executeScriptInIsolatedWorld(code);
153 ASSERT_TRUE(verifyActivities(expectedActivities)); 152 ASSERT_TRUE(verifyActivities(expectedActivities));
154 } 153 }
155 154
156 TEST_F(ActivityLoggerTest, IFrameElement) 155 TEST_F(ActivityLoggerTest, IFrameElement)
157 { 156 {
158 v8::HandleScope scope(v8::Isolate::GetCurrent());
159 const char* code = 157 const char* code =
160 "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>';"
161 "document.body.innerHTML = '<iframe></iframe>';" 159 "document.body.innerHTML = '<iframe></iframe>';"
162 "var iframe = document.createElement('iframe');" 160 "var iframe = document.createElement('iframe');"
163 "document.body.appendChild(iframe);" 161 "document.body.appendChild(iframe);"
164 "iframe = document.createElement('iframe');" 162 "iframe = document.createElement('iframe');"
165 "iframe.src = 'data:text/html;charset=utf-8,';" 163 "iframe.src = 'data:text/html;charset=utf-8,';"
166 "document.body.appendChild(iframe);" 164 "document.body.appendChild(iframe);"
167 "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>');";
168 const char* expectedActivities = 166 const char* expectedActivities =
169 "blinkAddElement | iframe | data:text/html;charset=utf-8,\n" 167 "blinkAddElement | iframe | data:text/html;charset=utf-8,\n"
170 "blinkAddElement | iframe | \n" 168 "blinkAddElement | iframe | \n"
171 "blinkAddElement | iframe | \n" 169 "blinkAddElement | iframe | \n"
172 "HTMLIFrameElement.src | | data:text/html;charset=utf-8,\n"
173 "blinkAddElement | iframe | data:text/html;charset=utf-8,\n" 170 "blinkAddElement | iframe | data:text/html;charset=utf-8,\n"
174 "blinkAddElement | iframe | data:text/html;charset=utf-8,"; 171 "blinkAddElement | iframe | data:text/html;charset=utf-8,";
175 executeScriptInMainWorld(code); 172 executeScriptInMainWorld(code);
176 ASSERT_TRUE(verifyActivities("")); 173 ASSERT_TRUE(verifyActivities(""));
177 executeScriptInIsolatedWorld(code); 174 executeScriptInIsolatedWorld(code);
178 ASSERT_TRUE(verifyActivities(expectedActivities)); 175 ASSERT_TRUE(verifyActivities(expectedActivities));
179 } 176 }
180 177
181 TEST_F(ActivityLoggerTest, AnchorElement) 178 TEST_F(ActivityLoggerTest, AnchorElement)
182 { 179 {
183 v8::HandleScope scope(v8::Isolate::GetCurrent());
184 const char* code = 180 const char* code =
185 "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>';"
186 "document.body.innerHTML = '<a></a>';" 182 "document.body.innerHTML = '<a></a>';"
187 "var a = document.createElement('a');" 183 "var a = document.createElement('a');"
188 "document.body.appendChild(a);" 184 "document.body.appendChild(a);"
189 "a = document.createElement('a');" 185 "a = document.createElement('a');"
190 "a.href = 'data:text/css;charset=utf-8,';" 186 "a.href = 'data:text/css;charset=utf-8,';"
191 "document.body.appendChild(a);" 187 "document.body.appendChild(a);"
192 "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>');";
193 const char* expectedActivities = 189 const char* expectedActivities =
194 "blinkAddElement | a | data:text/css;charset=utf-8,\n" 190 "blinkAddElement | a | data:text/css;charset=utf-8,\n"
195 "blinkAddElement | a | \n" 191 "blinkAddElement | a | \n"
196 "blinkAddElement | a | \n" 192 "blinkAddElement | a | \n"
197 "HTMLAnchorElement.href | | data:text/css;charset=utf-8,\n"
198 "blinkAddElement | a | data:text/css;charset=utf-8,\n" 193 "blinkAddElement | a | data:text/css;charset=utf-8,\n"
199 "blinkAddElement | a | data:text/css;charset=utf-8,"; 194 "blinkAddElement | a | data:text/css;charset=utf-8,";
200 executeScriptInMainWorld(code); 195 executeScriptInMainWorld(code);
201 ASSERT_TRUE(verifyActivities("")); 196 ASSERT_TRUE(verifyActivities(""));
202 executeScriptInIsolatedWorld(code); 197 executeScriptInIsolatedWorld(code);
203 ASSERT_TRUE(verifyActivities(expectedActivities)); 198 ASSERT_TRUE(verifyActivities(expectedActivities));
204 } 199 }
205 200
206 TEST_F(ActivityLoggerTest, LinkElement) 201 TEST_F(ActivityLoggerTest, LinkElement)
207 { 202 {
208 v8::HandleScope scope(v8::Isolate::GetCurrent());
209 const char* code = 203 const char* code =
210 "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>';"
211 "document.body.innerHTML = '<link></link>';" 205 "document.body.innerHTML = '<link></link>';"
212 "var link = document.createElement('link');" 206 "var link = document.createElement('link');"
213 "document.body.appendChild(link);" 207 "document.body.appendChild(link);"
214 "link = document.createElement('link');" 208 "link = document.createElement('link');"
215 "link.rel = 'stylesheet';" 209 "link.rel = 'stylesheet';"
216 "link.href = 'data:text/css;charset=utf-8,';" 210 "link.href = 'data:text/css;charset=utf-8,';"
217 "document.body.appendChild(link);" 211 "document.body.appendChild(link);"
218 "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>');";
219 const char* expectedActivities = 213 const char* expectedActivities =
220 "blinkAddElement | link | stylesheet | data:text/css;charset=utf-8,\n" 214 "blinkAddElement | link | stylesheet | data:text/css;charset=utf-8,\n"
221 "blinkAddElement | link | | \n" 215 "blinkAddElement | link | | \n"
222 "blinkAddElement | link | | \n" 216 "blinkAddElement | link | | \n"
223 "HTMLLinkElement.href | data:text/css;charset=utf-8,\n"
224 "blinkAddElement | link | stylesheet | data:text/css;charset=utf-8,\n" 217 "blinkAddElement | link | stylesheet | data:text/css;charset=utf-8,\n"
225 "blinkAddElement | link | stylesheet | data:text/css;charset=utf-8,"; 218 "blinkAddElement | link | stylesheet | data:text/css;charset=utf-8,";
226 executeScriptInMainWorld(code); 219 executeScriptInMainWorld(code);
227 ASSERT_TRUE(verifyActivities("")); 220 ASSERT_TRUE(verifyActivities(""));
228 executeScriptInIsolatedWorld(code); 221 executeScriptInIsolatedWorld(code);
229 ASSERT_TRUE(verifyActivities(expectedActivities)); 222 ASSERT_TRUE(verifyActivities(expectedActivities));
230 } 223 }
231 224
232 TEST_F(ActivityLoggerTest, InputElement) 225 TEST_F(ActivityLoggerTest, InputElement)
233 { 226 {
234 v8::HandleScope scope(v8::Isolate::GetCurrent());
235 const char* code = 227 const char* code =
236 "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>';"
237 "document.body.innerHTML = '<input></input>';" 229 "document.body.innerHTML = '<input></input>';"
238 "var input = document.createElement('input');" 230 "var input = document.createElement('input');"
239 "document.body.appendChild(input);" 231 "document.body.appendChild(input);"
240 "input = document.createElement('input');" 232 "input = document.createElement('input');"
241 "input.type = 'submit';" 233 "input.type = 'submit';"
242 "input.formAction = 'data:text/html;charset=utf-8,';" 234 "input.formAction = 'data:text/html;charset=utf-8,';"
243 "document.body.appendChild(input);" 235 "document.body.appendChild(input);"
244 "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>');";
245 const char* expectedActivities = 237 const char* expectedActivities =
246 "blinkAddElement | input | submit | data:text/html;charset=utf-8,\n" 238 "blinkAddElement | input | submit | data:text/html;charset=utf-8,\n"
247 "blinkAddElement | input | | \n" 239 "blinkAddElement | input | | \n"
248 "blinkAddElement | input | | \n" 240 "blinkAddElement | input | | \n"
249 "HTMLInputElement.formAction | data:text/html;charset=utf-8,\n"
250 "blinkAddElement | input | submit | data:text/html;charset=utf-8,\n" 241 "blinkAddElement | input | submit | data:text/html;charset=utf-8,\n"
251 "blinkAddElement | input | submit | data:text/html;charset=utf-8,"; 242 "blinkAddElement | input | submit | data:text/html;charset=utf-8,";
252 executeScriptInMainWorld(code); 243 executeScriptInMainWorld(code);
253 ASSERT_TRUE(verifyActivities("")); 244 ASSERT_TRUE(verifyActivities(""));
254 executeScriptInIsolatedWorld(code); 245 executeScriptInIsolatedWorld(code);
255 ASSERT_TRUE(verifyActivities(expectedActivities)); 246 ASSERT_TRUE(verifyActivities(expectedActivities));
256 } 247 }
257 248
258 TEST_F(ActivityLoggerTest, ButtonElement) 249 TEST_F(ActivityLoggerTest, ButtonElement)
259 { 250 {
260 v8::HandleScope scope(v8::Isolate::GetCurrent());
261 const char* code = 251 const char* code =
262 "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>';"
263 "document.body.innerHTML = '<button></button>';" 253 "document.body.innerHTML = '<button></button>';"
264 "var button = document.createElement('button');" 254 "var button = document.createElement('button');"
265 "document.body.appendChild(button);" 255 "document.body.appendChild(button);"
266 "button = document.createElement('button');" 256 "button = document.createElement('button');"
267 "button.type = 'submit';" 257 "button.type = 'submit';"
268 "button.formMethod = 'post';" 258 "button.formMethod = 'post';"
269 "button.formAction = 'data:text/html;charset=utf-8,';" 259 "button.formAction = 'data:text/html;charset=utf-8,';"
270 "document.body.appendChild(button);" 260 "document.body.appendChild(button);"
271 "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>');";
272 const char* expectedActivities = 262 const char* expectedActivities =
273 "blinkAddElement | button | submit | post | data:text/html;charset=utf-8 ,\n" 263 "blinkAddElement | button | submit | post | data:text/html;charset=utf-8 ,\n"
274 "blinkAddElement | button | | | \n" 264 "blinkAddElement | button | | | \n"
275 "blinkAddElement | button | | | \n" 265 "blinkAddElement | button | | | \n"
276 "HTMLButtonElement.formAction | data:text/html;charset=utf-8,\n"
277 "blinkAddElement | button | submit | post | data:text/html;charset=utf-8 ,\n" 266 "blinkAddElement | button | submit | post | data:text/html;charset=utf-8 ,\n"
278 "blinkAddElement | button | submit | post | data:text/html;charset=utf-8 ,"; 267 "blinkAddElement | button | submit | post | data:text/html;charset=utf-8 ,";
279 executeScriptInMainWorld(code); 268 executeScriptInMainWorld(code);
280 ASSERT_TRUE(verifyActivities("")); 269 ASSERT_TRUE(verifyActivities(""));
281 executeScriptInIsolatedWorld(code); 270 executeScriptInIsolatedWorld(code);
282 ASSERT_TRUE(verifyActivities(expectedActivities)); 271 ASSERT_TRUE(verifyActivities(expectedActivities));
283 } 272 }
284 273
285 TEST_F(ActivityLoggerTest, FormElement) 274 TEST_F(ActivityLoggerTest, FormElement)
286 { 275 {
287 v8::HandleScope scope(v8::Isolate::GetCurrent());
288 const char* code = 276 const char* code =
289 "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>';"
290 "document.body.innerHTML = '<form></form>';" 278 "document.body.innerHTML = '<form></form>';"
291 "var form = document.createElement('form');" 279 "var form = document.createElement('form');"
292 "document.body.appendChild(form);" 280 "document.body.appendChild(form);"
293 "form = document.createElement('form');" 281 "form = document.createElement('form');"
294 "form.method = 'post';" 282 "form.method = 'post';"
295 "form.action = 'data:text/html;charset=utf-8,';" 283 "form.action = 'data:text/html;charset=utf-8,';"
296 "document.body.appendChild(form);" 284 "document.body.appendChild(form);"
297 "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>');";
298 const char* expectedActivities = 286 const char* expectedActivities =
299 "blinkAddElement | form | post | data:text/html;charset=utf-8,\n" 287 "blinkAddElement | form | post | data:text/html;charset=utf-8,\n"
300 "blinkAddElement | form | | \n" 288 "blinkAddElement | form | | \n"
301 "blinkAddElement | form | | \n" 289 "blinkAddElement | form | | \n"
302 "HTMLFormElement.action | data:text/html;charset=utf-8,\n"
303 "blinkAddElement | form | post | data:text/html;charset=utf-8,\n" 290 "blinkAddElement | form | post | data:text/html;charset=utf-8,\n"
304 "blinkAddElement | form | post | data:text/html;charset=utf-8,"; 291 "blinkAddElement | form | post | data:text/html;charset=utf-8,";
305 executeScriptInMainWorld(code); 292 executeScriptInMainWorld(code);
306 ASSERT_TRUE(verifyActivities("")); 293 ASSERT_TRUE(verifyActivities(""));
307 executeScriptInIsolatedWorld(code); 294 executeScriptInIsolatedWorld(code);
308 ASSERT_TRUE(verifyActivities(expectedActivities)); 295 ASSERT_TRUE(verifyActivities(expectedActivities));
309 } 296 }
310 297
298 TEST_F(ActivityLoggerTest, IFrameSrcAttribute)
299 {
300 const char* code =
301 "document.body.innerHTML = '<iframe src=\\\'data:text/html;charset=utf-8 ,A\\\'></iframe>';"
302 "var iframe = document.getElementsByTagName('iframe')[0];"
303 "iframe.src = 'data:text/html;charset=utf-8,B';"
304 "iframe.setAttribute('src', 'data:text/html;charset=utf-8,C');"
305 "iframe.setAttributeNS('', 'src', 'data:text/html;charset=utf-8,D');"
306 "var attr = document.createAttribute('src');"
307 "attr.value = 'data:text/html;charset=utf-8,E';"
308 "iframe.setAttributeNode(attr);";
309 const char* expectedActivities =
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"
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"
314 "blinkSetAttribute | iframe | src | data:text/html;charset=utf-8,D | dat a:text/html;charset=utf-8,E";
315 executeScriptInMainWorld(code);
316 ASSERT_TRUE(verifyActivities(""));
317 executeScriptInIsolatedWorld(code);
318 ASSERT_TRUE(verifyActivities(expectedActivities));
319 }
320
321 TEST_F(ActivityLoggerTest, AnchorHrefAttribute)
322 {
323 const char* code =
324 "document.body.innerHTML = '<a href=\\\'data:text/html;charset=utf-8,A\\ \'></a>';"
325 "var a = document.getElementsByTagName('a')[0];"
326 "a.href = 'data:text/html;charset=utf-8,B';"
327 "a.setAttribute('href', 'data:text/html;charset=utf-8,C');"
328 "a.setAttributeNS('', 'href', 'data:text/html;charset=utf-8,D');"
329 "var attr = document.createAttribute('href');"
330 "attr.value = 'data:text/html;charset=utf-8,E';"
331 "a.setAttributeNode(attr);";
332 const char* expectedActivities =
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"
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"
337 "blinkSetAttribute | a | href | data:text/html;charset=utf-8,D | data:te xt/html;charset=utf-8,E";
338 executeScriptInMainWorld(code);
339 ASSERT_TRUE(verifyActivities(""));
340 executeScriptInIsolatedWorld(code);
341 ASSERT_TRUE(verifyActivities(expectedActivities));
342 }
343
344 TEST_F(ActivityLoggerTest, LinkHrefAttribute)
345 {
346 const char* code =
347 "document.body.innerHTML = '<link rel=\\\'stylesheet\\\' href=\\\'data:t ext/css;charset=utf-8,A\\\'></link>';"
348 "var link = document.getElementsByTagName('link')[0];"
349 "link.href = 'data:text/css;charset=utf-8,B';"
350 "link.setAttribute('href', 'data:text/css;charset=utf-8,C');"
351 "link.setAttributeNS('', 'href', 'data:text/css;charset=utf-8,D');"
352 "var attr = document.createAttribute('href');"
353 "attr.value = 'data:text/css;charset=utf-8,E';"
354 "link.setAttributeNode(attr);";
355 const char* expectedActivities =
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"
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"
360 "blinkSetAttribute | link | href | data:text/css;charset=utf-8,D | data: text/css;charset=utf-8,E";
361 executeScriptInMainWorld(code);
362 ASSERT_TRUE(verifyActivities(""));
363 executeScriptInIsolatedWorld(code);
364 ASSERT_TRUE(verifyActivities(expectedActivities));
365 }
366
367 TEST_F(ActivityLoggerTest, InputFormActionAttribute)
368 {
369 const char* code =
370 "document.body.innerHTML = '<input type=\\\'button\\\' formaction=\\\'da ta:text/html;charset=utf-8,A\\\'></input>';"
371 "var input = document.getElementsByTagName('input')[0];"
372 "input.formAction = 'data:text/html;charset=utf-8,B';"
373 "input.setAttribute('formaction', 'data:text/html;charset=utf-8,C');"
374 "input.setAttributeNS('', 'formaction', 'data:text/html;charset=utf-8,D' );"
375 "var attr = document.createAttribute('formaction');"
376 "attr.value = 'data:text/html;charset=utf-8,E';"
377 "input.setAttributeNode(attr);";
378 const char* expectedActivities =
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"
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"
383 "blinkSetAttribute | input | formaction | data:text/html;charset=utf-8,D | data:text/html;charset=utf-8,E";
384 executeScriptInMainWorld(code);
385 ASSERT_TRUE(verifyActivities(""));
386 executeScriptInIsolatedWorld(code);
387 ASSERT_TRUE(verifyActivities(expectedActivities));
388 }
389
390 TEST_F(ActivityLoggerTest, ButtonFormActionAttribute)
391 {
392 const char* code =
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];"
395 "button.formAction = 'data:text/html;charset=utf-8,B';"
396 "button.setAttribute('formaction', 'data:text/html;charset=utf-8,C');"
397 "button.setAttributeNS('', 'formaction', 'data:text/html;charset=utf-8,D ');"
398 "var attr = document.createAttribute('formaction');"
399 "attr.value = 'data:text/html;charset=utf-8,E';"
400 "button.setAttributeNode(attr);";
401 const char* expectedActivities =
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"
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"
406 "blinkSetAttribute | button | formaction | data:text/html;charset=utf-8, D | data:text/html;charset=utf-8,E";
407 executeScriptInMainWorld(code);
408 ASSERT_TRUE(verifyActivities(""));
409 executeScriptInIsolatedWorld(code);
410 ASSERT_TRUE(verifyActivities(expectedActivities));
411 }
412
413 TEST_F(ActivityLoggerTest, FormActionAttribute)
414 {
415 const char* code =
416 "document.body.innerHTML = '<form action=\\\'data:text/html;charset=utf- 8,A\\\'></form>';"
417 "var form = document.getElementsByTagName('form')[0];"
418 "form.action = 'data:text/html;charset=utf-8,B';"
419 "form.setAttribute('action', 'data:text/html;charset=utf-8,C');"
420 "form.setAttributeNS('', 'action', 'data:text/html;charset=utf-8,D');"
421 "var attr = document.createAttribute('action');"
422 "attr.value = 'data:text/html;charset=utf-8,E';"
423 "form.setAttributeNode(attr);";
424 const char* expectedActivities =
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"
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"
429 "blinkSetAttribute | form | action | data:text/html;charset=utf-8,D | da ta:text/html;charset=utf-8,E";
430 executeScriptInMainWorld(code);
431 ASSERT_TRUE(verifyActivities(""));
432 executeScriptInIsolatedWorld(code);
433 ASSERT_TRUE(verifyActivities(expectedActivities));
434 }
435
311 } // namespace 436 } // namespace
OLDNEW
« no previous file with comments | « Source/core/html/HTMLVideoElement.idl ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698