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

Side by Side Diff: chrome/browser/ui/webui/chrome_web_ui_data_source_unittest.cc

Issue 7278008: Fix obvious leak in chrome_web_ui_data_source_unittest.cc, and revert associated suppresions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | tools/heapcheck/suppressions.txt » ('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 (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/memory/ref_counted_memory.h" 5 #include "base/memory/ref_counted_memory.h"
6 #include "base/utf_string_conversions.h" 6 #include "base/utf_string_conversions.h"
7 #include "chrome/browser/ui/webui/chrome_web_ui_data_source.h" 7 #include "chrome/browser/ui/webui/chrome_web_ui_data_source.h"
8 #include "grit/common_resources.h" 8 #include "grit/common_resources.h"
9 #include "grit/generated_resources.h" 9 #include "grit/generated_resources.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
11 11
12 // A mock data source (so we can override SendResponse to get at its data). 12 // A mock data source (so we can override SendResponse to get at its data).
13 class MockChromeWebUIDataSource : public ChromeWebUIDataSource { 13 class MockChromeWebUIDataSource : public ChromeWebUIDataSource {
14 public: 14 public:
15 MockChromeWebUIDataSource() 15 MockChromeWebUIDataSource()
16 : ChromeWebUIDataSource("host"), 16 : ChromeWebUIDataSource("host"),
17 result_request_id_(-1), 17 result_request_id_(-1),
18 result_data_(NULL) { 18 result_data_(NULL) {
19 } 19 }
20 20
21 virtual ~MockChromeWebUIDataSource() { 21 virtual ~MockChromeWebUIDataSource() {
22 result_data_ = NULL;
23 } 22 }
24 23
25 // Subvert protected methods. 24 // Subvert protected methods.
26 virtual void StartDataRequest( 25 virtual void StartDataRequest(
27 const std::string& path, bool is_incognito, int request_id) OVERRIDE { 26 const std::string& path, bool is_incognito, int request_id) OVERRIDE {
28 ChromeWebUIDataSource::StartDataRequest(path, is_incognito, request_id); 27 ChromeWebUIDataSource::StartDataRequest(path, is_incognito, request_id);
29 } 28 }
30 29
31 virtual std::string GetMimeType(const std::string& path) const OVERRIDE { 30 virtual std::string GetMimeType(const std::string& path) const OVERRIDE {
32 return ChromeWebUIDataSource::GetMimeType(path); 31 return ChromeWebUIDataSource::GetMimeType(path);
33 } 32 }
34 33
35 // Store response for later comparisons. 34 // Store response for later comparisons.
36 virtual void SendResponse(int request_id, RefCountedMemory* data) { 35 virtual void SendResponse(int request_id, RefCountedMemory* data) {
37 result_request_id_ = request_id; 36 result_request_id_ = request_id;
38 result_data_ = data; 37 result_data_ = data;
39 } 38 }
40 39
41 int result_request_id_; 40 int result_request_id_;
42 scoped_refptr<RefCountedMemory> result_data_; 41 scoped_refptr<RefCountedMemory> result_data_;
43 }; 42 };
44 43
45 class ChromeWebUIDataSourceTest : public testing::Test { 44 class ChromeWebUIDataSourceTest : public testing::Test {
46 public: 45 public:
47 ChromeWebUIDataSourceTest() {} 46 ChromeWebUIDataSourceTest() {}
48 MockChromeWebUIDataSource* source() { return source_; } 47 virtual ~ChromeWebUIDataSourceTest() {}
48 MockChromeWebUIDataSource* source() { return source_.get(); }
49 49
50 private: 50 private:
51 virtual void SetUp() { 51 virtual void SetUp() {
52 source_ = new MockChromeWebUIDataSource(); 52 source_ = make_scoped_refptr(new MockChromeWebUIDataSource());
53 } 53 }
54 54
55 virtual void TearDown() { 55 virtual void TearDown() {
56 } 56 }
57 57
58 MockChromeWebUIDataSource* source_; 58 scoped_refptr<MockChromeWebUIDataSource> source_;
59 }; 59 };
60 60
61 TEST_F(ChromeWebUIDataSourceTest, EmptyStrings) { 61 TEST_F(ChromeWebUIDataSourceTest, EmptyStrings) {
62 source()->set_json_path("strings.js"); 62 source()->set_json_path("strings.js");
63 source()->StartDataRequest("strings.js" , false, 1); 63 source()->StartDataRequest("strings.js" , false, 1);
64 EXPECT_EQ(source()->result_request_id_, 1); 64 EXPECT_EQ(source()->result_request_id_, 1);
65 std::string result(reinterpret_cast<const char*>( 65 std::string result(reinterpret_cast<const char*>(
66 source()->result_data_->front()), source()->result_data_->size()); 66 source()->result_data_->front()), source()->result_data_->size());
67 EXPECT_NE(result.find("var templateData = {"), std::string::npos); 67 EXPECT_NE(result.find("var templateData = {"), std::string::npos);
68 EXPECT_NE(result.find("};"), std::string::npos); 68 EXPECT_NE(result.find("};"), std::string::npos);
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 const char* js = "application/javascript"; 118 const char* js = "application/javascript";
119 EXPECT_EQ(source()->GetMimeType(""), html); 119 EXPECT_EQ(source()->GetMimeType(""), html);
120 EXPECT_EQ(source()->GetMimeType("foo"), html); 120 EXPECT_EQ(source()->GetMimeType("foo"), html);
121 EXPECT_EQ(source()->GetMimeType("foo.html"), html); 121 EXPECT_EQ(source()->GetMimeType("foo.html"), html);
122 EXPECT_EQ(source()->GetMimeType(".js"), js); 122 EXPECT_EQ(source()->GetMimeType(".js"), js);
123 EXPECT_EQ(source()->GetMimeType("foo.js"), js); 123 EXPECT_EQ(source()->GetMimeType("foo.js"), js);
124 EXPECT_EQ(source()->GetMimeType("js"), html); 124 EXPECT_EQ(source()->GetMimeType("js"), html);
125 EXPECT_EQ(source()->GetMimeType("foojs"), html); 125 EXPECT_EQ(source()->GetMimeType("foojs"), html);
126 EXPECT_EQ(source()->GetMimeType("foo.jsp"), html); 126 EXPECT_EQ(source()->GetMimeType("foo.jsp"), html);
127 } 127 }
OLDNEW
« no previous file with comments | « no previous file | tools/heapcheck/suppressions.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698