| 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 |