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

Side by Side Diff: chrome/renderer/safe_browsing/malware_dom_details_browsertest.cc

Issue 6713084: Move the rest of the renderer->browser messages that belong in content. Also do a bunch of cleanup: (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 9 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
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "base/stringprintf.h"
6 #include "chrome/common/safebrowsing_messages.h"
5 #include "chrome/renderer/safe_browsing/malware_dom_details.h" 7 #include "chrome/renderer/safe_browsing/malware_dom_details.h"
6 #include "chrome/common/render_messages_params.h"
7 #include "base/stringprintf.h"
8 #include "chrome/test/render_view_test.h" 8 #include "chrome/test/render_view_test.h"
9 #include "net/base/escape.h" 9 #include "net/base/escape.h"
10 10
11 typedef RenderViewTest MalwareDOMDetailsTest; 11 typedef RenderViewTest MalwareDOMDetailsTest;
12 12
13 13
14 TEST_F(MalwareDOMDetailsTest, Everything) { 14 TEST_F(MalwareDOMDetailsTest, Everything) {
15 safe_browsing::MalwareDOMDetails details(view_); 15 safe_browsing::MalwareDOMDetails details(view_);
16 // Lower kMaxNodes for the test. Loading 500 subframes in a 16 // Lower kMaxNodes for the test. Loading 500 subframes in a
17 // debug build takes a while. 17 // debug build takes a while.
18 details.kMaxNodes = 50; 18 details.kMaxNodes = 50;
19 19
20 const char* urlprefix = "data:text/html;charset=utf-8,"; 20 const char* urlprefix = "data:text/html;charset=utf-8,";
21 21
22 { // An page with an internal script 22 { // An page with an internal script
23 std::string html = "<html><head><script></script></head></html>"; 23 std::string html = "<html><head><script></script></head></html>";
24 LoadHTML(html.c_str()); 24 LoadHTML(html.c_str());
25 ViewHostMsg_MalwareDOMDetails_Params params; 25 std::vector<SafeBrowsingHostMsg_MalwareDOMDetails_Node> params;
26 details.ExtractResources(&params); 26 details.ExtractResources(&params);
27 ASSERT_EQ(1u, params.nodes.size()); 27 ASSERT_EQ(1u, params.size());
28 EXPECT_EQ(GURL(urlprefix + html), params.nodes[0].url); 28 EXPECT_EQ(GURL(urlprefix + html), params[0].url);
29 } 29 }
30 30
31 { // A page with 2 external scripts. 31 { // A page with 2 external scripts.
32 // Note: This part of the test causes 2 leaks: LEAK: 5 WebCoreNode 32 // Note: This part of the test causes 2 leaks: LEAK: 5 WebCoreNode
33 // LEAK: 2 CachedResource. 33 // LEAK: 2 CachedResource.
34 GURL script1_url("data:text/javascript;charset=utf-8,var a=1;"); 34 GURL script1_url("data:text/javascript;charset=utf-8,var a=1;");
35 GURL script2_url("data:text/javascript;charset=utf-8,var b=2;"); 35 GURL script2_url("data:text/javascript;charset=utf-8,var b=2;");
36 std::string html = "<html><head><script src=\"" + script1_url.spec() + 36 std::string html = "<html><head><script src=\"" + script1_url.spec() +
37 "\"></script><script src=\"" + script2_url.spec() + 37 "\"></script><script src=\"" + script2_url.spec() +
38 "\"></script></head></html>"; 38 "\"></script></head></html>";
39 GURL url(urlprefix + html); 39 GURL url(urlprefix + html);
40 40
41 LoadHTML(html.c_str()); 41 LoadHTML(html.c_str());
42 ViewHostMsg_MalwareDOMDetails_Params params; 42 std::vector<SafeBrowsingHostMsg_MalwareDOMDetails_Node> params;
43 details.ExtractResources(&params); 43 details.ExtractResources(&params);
44 ASSERT_EQ(3u, params.nodes.size()); 44 ASSERT_EQ(3u, params.size());
45 EXPECT_EQ(script1_url, params.nodes[0].url); 45 EXPECT_EQ(script1_url, params[0].url);
46 EXPECT_EQ("SCRIPT", params.nodes[0].tag_name); 46 EXPECT_EQ("SCRIPT", params[0].tag_name);
47 EXPECT_EQ(script2_url, params.nodes[1].url); 47 EXPECT_EQ(script2_url, params[1].url);
48 EXPECT_EQ("SCRIPT", params.nodes[0].tag_name); 48 EXPECT_EQ("SCRIPT", params[0].tag_name);
49 EXPECT_EQ(url, params.nodes[2].url); 49 EXPECT_EQ(url, params[2].url);
50 } 50 }
51 51
52 { // A page with an iframe which in turn contains an iframe. 52 { // A page with an iframe which in turn contains an iframe.
53 // html 53 // html
54 // \ iframe1 54 // \ iframe1
55 // \ iframe2 55 // \ iframe2
56 std::string iframe2_html = "<html><body>iframe2</body></html>"; 56 std::string iframe2_html = "<html><body>iframe2</body></html>";
57 GURL iframe2_url(urlprefix + iframe2_html); 57 GURL iframe2_url(urlprefix + iframe2_html);
58 std::string iframe1_html = "<iframe src=\"" + EscapeForHTML( 58 std::string iframe1_html = "<iframe src=\"" + EscapeForHTML(
59 iframe2_url.spec()) + "\"></iframe>"; 59 iframe2_url.spec()) + "\"></iframe>";
60 GURL iframe1_url(urlprefix + iframe1_html); 60 GURL iframe1_url(urlprefix + iframe1_html);
61 std::string html = "<html><head><iframe src=\"" + EscapeForHTML( 61 std::string html = "<html><head><iframe src=\"" + EscapeForHTML(
62 iframe1_url.spec()) + "\"></iframe></head></html>"; 62 iframe1_url.spec()) + "\"></iframe></head></html>";
63 GURL url(urlprefix + html); 63 GURL url(urlprefix + html);
64 64
65 LoadHTML(html.c_str()); 65 LoadHTML(html.c_str());
66 ViewHostMsg_MalwareDOMDetails_Params params; 66 std::vector<SafeBrowsingHostMsg_MalwareDOMDetails_Node> params;
67 details.ExtractResources(&params); 67 details.ExtractResources(&params);
68 ASSERT_EQ(5u, params.nodes.size()); 68 ASSERT_EQ(5u, params.size());
69 69
70 EXPECT_EQ(iframe1_url, params.nodes[0].url); 70 EXPECT_EQ(iframe1_url, params[0].url);
71 EXPECT_EQ(url, params.nodes[0].parent); 71 EXPECT_EQ(url, params[0].parent);
72 EXPECT_EQ(0u, params.nodes[0].children.size()); 72 EXPECT_EQ(0u, params[0].children.size());
73 EXPECT_EQ("IFRAME", params.nodes[0].tag_name); 73 EXPECT_EQ("IFRAME", params[0].tag_name);
74 74
75 EXPECT_EQ(url, params.nodes[1].url); 75 EXPECT_EQ(url, params[1].url);
76 EXPECT_EQ(GURL(), params.nodes[1].parent); 76 EXPECT_EQ(GURL(), params[1].parent);
77 EXPECT_EQ(1u, params.nodes[1].children.size()); 77 EXPECT_EQ(1u, params[1].children.size());
78 EXPECT_EQ(iframe1_url, params.nodes[1].children[0]); 78 EXPECT_EQ(iframe1_url, params[1].children[0]);
79 79
80 EXPECT_EQ(iframe2_url, params.nodes[2].url); 80 EXPECT_EQ(iframe2_url, params[2].url);
81 EXPECT_EQ(iframe1_url, params.nodes[2].parent); 81 EXPECT_EQ(iframe1_url, params[2].parent);
82 EXPECT_EQ(0u, params.nodes[2].children.size()); 82 EXPECT_EQ(0u, params[2].children.size());
83 EXPECT_EQ("IFRAME", params.nodes[2].tag_name); 83 EXPECT_EQ("IFRAME", params[2].tag_name);
84 84
85 // The frames are added twice, once with the correct parent and tagname 85 // The frames are added twice, once with the correct parent and tagname
86 // and once with the correct children. The caller in the browser 86 // and once with the correct children. The caller in the browser
87 // is responsible for merging. 87 // is responsible for merging.
88 EXPECT_EQ(iframe1_url, params.nodes[3].url); 88 EXPECT_EQ(iframe1_url, params[3].url);
89 EXPECT_EQ(GURL(), params.nodes[3].parent); 89 EXPECT_EQ(GURL(), params[3].parent);
90 EXPECT_EQ(1u, params.nodes[3].children.size()); 90 EXPECT_EQ(1u, params[3].children.size());
91 EXPECT_EQ(iframe2_url, params.nodes[3].children[0]); 91 EXPECT_EQ(iframe2_url, params[3].children[0]);
92 92
93 EXPECT_EQ(iframe2_url, params.nodes[4].url); 93 EXPECT_EQ(iframe2_url, params[4].url);
94 EXPECT_EQ(GURL(), params.nodes[4].parent); 94 EXPECT_EQ(GURL(), params[4].parent);
95 EXPECT_EQ(0u, params.nodes[4].children.size()); 95 EXPECT_EQ(0u, params[4].children.size());
96 } 96 }
97 97
98 { // >50 subframes, to verify kMaxNodes. 98 { // >50 subframes, to verify kMaxNodes.
99 std::string html = ""; 99 std::string html = "";
100 for (int i = 0; i < 55; ++i) { 100 for (int i = 0; i < 55; ++i) {
101 // The iframe contents is just a number. 101 // The iframe contents is just a number.
102 GURL iframe_url(StringPrintf("%s%d", urlprefix, i)); 102 GURL iframe_url(StringPrintf("%s%d", urlprefix, i));
103 html += "<iframe src=\"" + EscapeForHTML(iframe_url.spec()) + 103 html += "<iframe src=\"" + EscapeForHTML(iframe_url.spec()) +
104 "\"></iframe>"; 104 "\"></iframe>";
105 } 105 }
106 GURL url(urlprefix + html); 106 GURL url(urlprefix + html);
107 107
108 LoadHTML(html.c_str()); 108 LoadHTML(html.c_str());
109 ViewHostMsg_MalwareDOMDetails_Params params; 109 std::vector<SafeBrowsingHostMsg_MalwareDOMDetails_Node> params;
110 details.ExtractResources(&params); 110 details.ExtractResources(&params);
111 ASSERT_EQ(51u, params.nodes.size()); 111 ASSERT_EQ(51u, params.size());
112 } 112 }
113 113
114 { // A page with >50 scripts, to verify kMaxNodes. 114 { // A page with >50 scripts, to verify kMaxNodes.
115 std::string html = ""; 115 std::string html = "";
116 for (int i = 0; i < 55; ++i) { 116 for (int i = 0; i < 55; ++i) {
117 // The iframe contents is just a number. 117 // The iframe contents is just a number.
118 GURL script_url(StringPrintf("%s%d", urlprefix, i)); 118 GURL script_url(StringPrintf("%s%d", urlprefix, i));
119 html += "<script src=\"" + EscapeForHTML(script_url.spec()) + 119 html += "<script src=\"" + EscapeForHTML(script_url.spec()) +
120 "\"></script>"; 120 "\"></script>";
121 } 121 }
122 GURL url(urlprefix + html); 122 GURL url(urlprefix + html);
123 123
124 LoadHTML(html.c_str()); 124 LoadHTML(html.c_str());
125 ViewHostMsg_MalwareDOMDetails_Params params; 125 std::vector<SafeBrowsingHostMsg_MalwareDOMDetails_Node> params;
126 details.ExtractResources(&params); 126 details.ExtractResources(&params);
127 ASSERT_EQ(51u, params.nodes.size()); 127 ASSERT_EQ(51u, params.size());
128 } 128 }
129 129
130 } 130 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698