OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/bind.h" | 5 #include "base/bind.h" |
6 #include "base/memory/ref_counted_memory.h" | 6 #include "base/memory/ref_counted_memory.h" |
7 #include "base/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
8 #include "content/browser/webui/web_ui_data_source_impl.h" | 8 #include "content/browser/webui/web_ui_data_source_impl.h" |
9 #include "content/test/test_content_client.h" | 9 #include "content/test/test_content_client.h" |
10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
(...skipping 19 matching lines...) Expand all Loading... |
30 return base::UTF8ToUTF16(kDummyString); | 30 return base::UTF8ToUTF16(kDummyString); |
31 return base::string16(); | 31 return base::string16(); |
32 | 32 |
33 } | 33 } |
34 | 34 |
35 virtual base::RefCountedStaticMemory* GetDataResourceBytes( | 35 virtual base::RefCountedStaticMemory* GetDataResourceBytes( |
36 int resource_id) const OVERRIDE { | 36 int resource_id) const OVERRIDE { |
37 base::RefCountedStaticMemory* bytes = NULL; | 37 base::RefCountedStaticMemory* bytes = NULL; |
38 if (resource_id == kDummyDefaultResourceId) { | 38 if (resource_id == kDummyDefaultResourceId) { |
39 bytes = new base::RefCountedStaticMemory( | 39 bytes = new base::RefCountedStaticMemory( |
40 reinterpret_cast<const unsigned char*>(kDummyDefaultResource), | 40 kDummyDefaultResource, arraysize(kDummyDefaultResource)); |
41 arraysize(kDummyDefaultResource)); | |
42 } else if (resource_id == kDummyResourceId) { | 41 } else if (resource_id == kDummyResourceId) { |
43 bytes = new base::RefCountedStaticMemory( | 42 bytes = new base::RefCountedStaticMemory( |
44 reinterpret_cast<const unsigned char*>(kDummytResource), | 43 kDummytResource, arraysize(kDummytResource)); |
45 arraysize(kDummytResource)); | |
46 } | 44 } |
47 return bytes; | 45 return bytes; |
48 } | 46 } |
49 }; | 47 }; |
50 | 48 |
51 } | 49 } |
52 | 50 |
53 class WebUIDataSourceTest : public testing::Test { | 51 class WebUIDataSourceTest : public testing::Test { |
54 public: | 52 public: |
55 WebUIDataSourceTest() : result_data_(NULL) {} | 53 WebUIDataSourceTest() : result_data_(NULL) {} |
(...skipping 29 matching lines...) Expand all Loading... |
85 result_data_ = data; | 83 result_data_ = data; |
86 } | 84 } |
87 | 85 |
88 scoped_refptr<WebUIDataSourceImpl> source_; | 86 scoped_refptr<WebUIDataSourceImpl> source_; |
89 TestClient client_; | 87 TestClient client_; |
90 }; | 88 }; |
91 | 89 |
92 TEST_F(WebUIDataSourceTest, EmptyStrings) { | 90 TEST_F(WebUIDataSourceTest, EmptyStrings) { |
93 source()->SetJsonPath("strings.js"); | 91 source()->SetJsonPath("strings.js"); |
94 StartDataRequest("strings.js"); | 92 StartDataRequest("strings.js"); |
95 std::string result(reinterpret_cast<const char*>( | 93 std::string result(result_data_->front_as<char>(), result_data_->size()); |
96 result_data_->front()), result_data_->size()); | |
97 EXPECT_NE(result.find("var templateData = {"), std::string::npos); | 94 EXPECT_NE(result.find("var templateData = {"), std::string::npos); |
98 EXPECT_NE(result.find("};"), std::string::npos); | 95 EXPECT_NE(result.find("};"), std::string::npos); |
99 } | 96 } |
100 | 97 |
101 TEST_F(WebUIDataSourceTest, SomeStrings) { | 98 TEST_F(WebUIDataSourceTest, SomeStrings) { |
102 source()->SetJsonPath("strings.js"); | 99 source()->SetJsonPath("strings.js"); |
103 source()->AddString("planet", base::ASCIIToUTF16("pluto")); | 100 source()->AddString("planet", base::ASCIIToUTF16("pluto")); |
104 source()->AddLocalizedString("button", kDummyStringId); | 101 source()->AddLocalizedString("button", kDummyStringId); |
105 StartDataRequest("strings.js"); | 102 StartDataRequest("strings.js"); |
106 std::string result(reinterpret_cast<const char*>( | 103 std::string result(result_data_->front_as<char>(), result_data_->size()); |
107 result_data_->front()), result_data_->size()); | |
108 EXPECT_NE(result.find("\"planet\":\"pluto\""), std::string::npos); | 104 EXPECT_NE(result.find("\"planet\":\"pluto\""), std::string::npos); |
109 EXPECT_NE(result.find("\"button\":\"foo\""), std::string::npos); | 105 EXPECT_NE(result.find("\"button\":\"foo\""), std::string::npos); |
110 } | 106 } |
111 | 107 |
112 TEST_F(WebUIDataSourceTest, DefaultResource) { | 108 TEST_F(WebUIDataSourceTest, DefaultResource) { |
113 source()->SetDefaultResource(kDummyDefaultResourceId); | 109 source()->SetDefaultResource(kDummyDefaultResourceId); |
114 StartDataRequest("foobar" ); | 110 StartDataRequest("foobar" ); |
115 std::string result( | 111 std::string result(result_data_->front_as<char>(), result_data_->size()); |
116 reinterpret_cast<const char*>(result_data_->front()), | |
117 result_data_->size()); | |
118 EXPECT_NE(result.find(kDummyDefaultResource), std::string::npos); | 112 EXPECT_NE(result.find(kDummyDefaultResource), std::string::npos); |
119 StartDataRequest("strings.js"); | 113 StartDataRequest("strings.js"); |
120 result = std::string( | 114 result = std::string(result_data_->front_as<char>(), result_data_->size()); |
121 reinterpret_cast<const char*>(result_data_->front()), | |
122 result_data_->size()); | |
123 EXPECT_NE(result.find(kDummyDefaultResource), std::string::npos); | 115 EXPECT_NE(result.find(kDummyDefaultResource), std::string::npos); |
124 } | 116 } |
125 | 117 |
126 TEST_F(WebUIDataSourceTest, NamedResource) { | 118 TEST_F(WebUIDataSourceTest, NamedResource) { |
127 source()->SetDefaultResource(kDummyDefaultResourceId); | 119 source()->SetDefaultResource(kDummyDefaultResourceId); |
128 source()->AddResourcePath("foobar", kDummyResourceId); | 120 source()->AddResourcePath("foobar", kDummyResourceId); |
129 StartDataRequest("foobar"); | 121 StartDataRequest("foobar"); |
130 std::string result( | 122 std::string result(result_data_->front_as<char>(), result_data_->size()); |
131 reinterpret_cast<const char*>(result_data_->front()), | |
132 result_data_->size()); | |
133 EXPECT_NE(result.find(kDummytResource), std::string::npos); | 123 EXPECT_NE(result.find(kDummytResource), std::string::npos); |
134 StartDataRequest("strings.js"); | 124 StartDataRequest("strings.js"); |
135 result = std::string( | 125 result = std::string(result_data_->front_as<char>(), result_data_->size()); |
136 reinterpret_cast<const char*>(result_data_->front()), | |
137 result_data_->size()); | |
138 EXPECT_NE(result.find(kDummyDefaultResource), std::string::npos); | 126 EXPECT_NE(result.find(kDummyDefaultResource), std::string::npos); |
139 } | 127 } |
140 | 128 |
141 TEST_F(WebUIDataSourceTest, MimeType) { | 129 TEST_F(WebUIDataSourceTest, MimeType) { |
142 const char* html = "text/html"; | 130 const char* html = "text/html"; |
143 const char* js = "application/javascript"; | 131 const char* js = "application/javascript"; |
144 EXPECT_EQ(GetMimeType(std::string()), html); | 132 EXPECT_EQ(GetMimeType(std::string()), html); |
145 EXPECT_EQ(GetMimeType("foo"), html); | 133 EXPECT_EQ(GetMimeType("foo"), html); |
146 EXPECT_EQ(GetMimeType("foo.html"), html); | 134 EXPECT_EQ(GetMimeType("foo.html"), html); |
147 EXPECT_EQ(GetMimeType(".js"), js); | 135 EXPECT_EQ(GetMimeType(".js"), js); |
148 EXPECT_EQ(GetMimeType("foo.js"), js); | 136 EXPECT_EQ(GetMimeType("foo.js"), js); |
149 EXPECT_EQ(GetMimeType("js"), html); | 137 EXPECT_EQ(GetMimeType("js"), html); |
150 EXPECT_EQ(GetMimeType("foojs"), html); | 138 EXPECT_EQ(GetMimeType("foojs"), html); |
151 EXPECT_EQ(GetMimeType("foo.jsp"), html); | 139 EXPECT_EQ(GetMimeType("foo.jsp"), html); |
152 } | 140 } |
153 | 141 |
154 } // namespace content | 142 } // namespace content |
OLD | NEW |