| Index: chrome/browser/ui/webui/chrome_web_ui_data_source_unittest.cc
|
| ===================================================================
|
| --- chrome/browser/ui/webui/chrome_web_ui_data_source_unittest.cc (revision 176942)
|
| +++ chrome/browser/ui/webui/chrome_web_ui_data_source_unittest.cc (working copy)
|
| @@ -2,6 +2,7 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| +#include "base/bind.h"
|
| #include "base/memory/ref_counted_memory.h"
|
| #include "base/utf_string_conversions.h"
|
| #include "chrome/browser/ui/webui/chrome_web_ui_data_source.h"
|
| @@ -9,35 +10,32 @@
|
| #include "grit/generated_resources.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| -// A mock data source (so we can override SendResponse to get at its data).
|
| class MockChromeWebUIDataSource : public ChromeWebUIDataSource {
|
| public:
|
| MockChromeWebUIDataSource()
|
| : ChromeWebUIDataSource("host"),
|
| - result_request_id_(-1),
|
| result_data_(NULL) {
|
| }
|
|
|
| - // Subvert protected methods.
|
| - virtual void StartDataRequest(
|
| - const std::string& path, bool is_incognito, int request_id) OVERRIDE {
|
| - ChromeWebUIDataSource::StartDataRequest(path, is_incognito, request_id);
|
| + void StartDataRequest(const std::string& path) {
|
| + ChromeWebUIDataSource::StartDataRequest(
|
| + path,
|
| + false,
|
| + base::Bind(&MockChromeWebUIDataSource::SendResult, this));
|
| }
|
|
|
| - virtual std::string GetMimeType(const std::string& path) const OVERRIDE {
|
| + std::string GetMimeType(const std::string& path) const {
|
| return ChromeWebUIDataSource::GetMimeType(path);
|
| }
|
|
|
| + scoped_refptr<base::RefCountedMemory> result_data_;
|
| +
|
| + private:
|
| // Store response for later comparisons.
|
| - virtual void SendResponse(int request_id, base::RefCountedMemory* data) {
|
| - result_request_id_ = request_id;
|
| + void SendResult(base::RefCountedMemory* data) {
|
| result_data_ = data;
|
| }
|
|
|
| - int result_request_id_;
|
| - scoped_refptr<base::RefCountedMemory> result_data_;
|
| -
|
| - private:
|
| virtual ~MockChromeWebUIDataSource() {}
|
| };
|
|
|
| @@ -60,8 +58,7 @@
|
|
|
| TEST_F(ChromeWebUIDataSourceTest, EmptyStrings) {
|
| source()->set_json_path("strings.js");
|
| - source()->StartDataRequest("strings.js" , false, 1);
|
| - EXPECT_EQ(source()->result_request_id_, 1);
|
| + source()->StartDataRequest("strings.js");
|
| std::string result(reinterpret_cast<const char*>(
|
| source()->result_data_->front()), source()->result_data_->size());
|
| EXPECT_NE(result.find("var templateData = {"), std::string::npos);
|
| @@ -72,8 +69,7 @@
|
| source()->set_json_path("strings.js");
|
| source()->AddString("planet", ASCIIToUTF16("pluto"));
|
| source()->AddLocalizedString("button", IDS_OK);
|
| - source()->StartDataRequest("strings.js" , false, 2);
|
| - EXPECT_EQ(source()->result_request_id_, 2);
|
| + source()->StartDataRequest("strings.js");
|
| std::string result(reinterpret_cast<const char*>(
|
| source()->result_data_->front()), source()->result_data_->size());
|
| EXPECT_NE(result.find("\"planet\":\"pluto\""), std::string::npos);
|
| @@ -82,14 +78,12 @@
|
|
|
| TEST_F(ChromeWebUIDataSourceTest, DefaultResource) {
|
| source()->set_default_resource(IDR_I18N_PROCESS_JS);
|
| - source()->StartDataRequest("foobar" , false, 3);
|
| - EXPECT_EQ(source()->result_request_id_, 3);
|
| + source()->StartDataRequest("foobar" );
|
| std::string result(
|
| reinterpret_cast<const char*>(source()->result_data_->front()),
|
| source()->result_data_->size());
|
| EXPECT_NE(result.find("i18nTemplate.process"), std::string::npos);
|
| - source()->StartDataRequest("strings.js" , false, 4);
|
| - EXPECT_EQ(source()->result_request_id_, 4);
|
| + source()->StartDataRequest("strings.js");
|
| result = std::string(
|
| reinterpret_cast<const char*>(source()->result_data_->front()),
|
| source()->result_data_->size());
|
| @@ -99,14 +93,12 @@
|
| TEST_F(ChromeWebUIDataSourceTest, NamedResource) {
|
| source()->set_default_resource(IDR_I18N_PROCESS_JS);
|
| source()->add_resource_path("foobar", IDR_I18N_TEMPLATE_JS);
|
| - source()->StartDataRequest("foobar" , false, 5);
|
| - EXPECT_EQ(source()->result_request_id_, 5);
|
| + source()->StartDataRequest("foobar");
|
| std::string result(
|
| reinterpret_cast<const char*>(source()->result_data_->front()),
|
| source()->result_data_->size());
|
| EXPECT_NE(result.find("var i18nTemplate"), std::string::npos);
|
| - source()->StartDataRequest("strings.js" , false, 4);
|
| - EXPECT_EQ(source()->result_request_id_, 4);
|
| + source()->StartDataRequest("strings.js");
|
| result = std::string(
|
| reinterpret_cast<const char*>(source()->result_data_->front()),
|
| source()->result_data_->size());
|
|
|