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

Unified Diff: chrome/browser/ui/webui/theme_source_unittest.cc

Issue 11881055: Simplify WebUI data sources. Currently WebUI data sources implement a URLDataSourceDelegate interfa… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: fix issue in about_ui exposed by cros tests Created 7 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/webui/theme_source_unittest.cc
===================================================================
--- chrome/browser/ui/webui/theme_source_unittest.cc (revision 176942)
+++ chrome/browser/ui/webui/theme_source_unittest.cc (working copy)
@@ -2,10 +2,10 @@
// 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/message_loop.h"
#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/ui/webui/chrome_url_data_manager.h"
#include "chrome/browser/ui/webui/theme_source.h"
#include "chrome/common/url_constants.h"
#include "chrome/test/base/testing_profile.h"
@@ -15,55 +15,46 @@
using content::BrowserThread;
-// A mock URLDataSource (so we can override SendResponse to get at its data).
-class MockURLDataSource : public URLDataSource {
+class WebUISourcesTest : public testing::Test {
public:
- explicit MockURLDataSource(content::URLDataSourceDelegate* delegate)
- : URLDataSource(std::string(), delegate),
- result_request_id_(-1), result_data_size_(0) {
- }
+ WebUISourcesTest()
+ : result_data_size_(0),
+ ui_thread_(BrowserThread::UI, MessageLoop::current()) {}
- virtual void SendResponse(int request_id,
- base::RefCountedMemory* data) OVERRIDE {
- result_data_size_ = data ? data->size() : 0;
- result_request_id_ = request_id;
+ TestingProfile* profile() const { return profile_.get(); }
+ ThemeSource* theme_source() const { return theme_source_.get(); }
+ size_t result_data_size() const { return result_data_size_; }
+
+ void StartDataRequest(const std::string& source, bool is_incognito) {
+ theme_source()->StartDataRequest(source, is_incognito, callback_);
}
- int result_request_id_;
size_t result_data_size_;
private:
- ~MockURLDataSource() {}
-};
-
-class WebUISourcesTest : public testing::Test {
- public:
- WebUISourcesTest() : ui_thread_(BrowserThread::UI, MessageLoop::current()) {}
-
- TestingProfile* profile() const { return profile_.get(); }
- ThemeSource* theme_source() const { return theme_source_; }
- MockURLDataSource* data_source() const { return data_source_.get(); }
-
- private:
virtual void SetUp() {
profile_.reset(new TestingProfile());
- theme_source_ = new ThemeSource(profile_.get());
- data_source_ = new MockURLDataSource(theme_source_);
- theme_source_->set_url_data_source_for_testing(data_source_.get());
+ theme_source_.reset(new ThemeSource(profile_.get()));
+ callback_ = base::Bind(&WebUISourcesTest::SendResponse,
+ base::Unretained(this));
}
virtual void TearDown() {
- theme_source_ = NULL;
- data_source_ = NULL;
- profile_.reset(NULL);
+ theme_source_.reset();
+ profile_.reset();
}
+ void SendResponse(base::RefCountedMemory* data) {
+ result_data_size_ = data ? data->size() : 0;
+ }
+
+ content::URLDataSource::GotDataCallback callback_;
+
MessageLoop loop_;
content::TestBrowserThread ui_thread_;
scoped_ptr<TestingProfile> profile_;
- scoped_refptr<MockURLDataSource> data_source_;
- ThemeSource* theme_source_;
+ scoped_ptr<ThemeSource> theme_source_;
};
TEST_F(WebUISourcesTest, ThemeSourceMimeTypes) {
@@ -76,14 +67,12 @@
TEST_F(WebUISourcesTest, ThemeSourceImages) {
// We used to PNGEncode the images ourselves, but encoder differences
// invalidated that. We now just check that the image exists.
- theme_source()->StartDataRequest("IDR_THEME_FRAME_INCOGNITO", true, 1);
+ StartDataRequest("IDR_THEME_FRAME_INCOGNITO", true);
size_t min = 0;
- EXPECT_EQ(data_source()->result_request_id_, 1);
- EXPECT_GT(data_source()->result_data_size_, min);
+ EXPECT_GT(result_data_size_, min);
- theme_source()->StartDataRequest("IDR_THEME_TOOLBAR", true, 2);
- EXPECT_EQ(data_source()->result_request_id_, 2);
- EXPECT_GT(data_source()->result_data_size_, min);
+ StartDataRequest("IDR_THEME_TOOLBAR", true);
+ EXPECT_GT(result_data_size_, min);
}
TEST_F(WebUISourcesTest, ThemeSourceCSS) {
@@ -95,16 +84,13 @@
// just check for a successful request and data that is non-null.
size_t empty_size = 0;
- theme_source()->StartDataRequest("css/new_tab_theme.css", false, 1);
- EXPECT_EQ(data_source()->result_request_id_, 1);
- EXPECT_NE(data_source()->result_data_size_, empty_size);
+ StartDataRequest("css/new_tab_theme.css", false);
+ EXPECT_NE(result_data_size_, empty_size);
- theme_source()->StartDataRequest("css/new_tab_theme.css?pie", false, 3);
- EXPECT_EQ(data_source()->result_request_id_, 3);
- EXPECT_NE(data_source()->result_data_size_, empty_size);
+ StartDataRequest("css/new_tab_theme.css?pie", false);
+ EXPECT_NE(result_data_size_, empty_size);
// Check that we send NULL back when we can't find what we're looking for.
- theme_source()->StartDataRequest("css/WRONGURL", false, 7);
- EXPECT_EQ(data_source()->result_request_id_, 7);
- EXPECT_EQ(data_source()->result_data_size_, empty_size);
+ StartDataRequest("css/WRONGURL", false);
+ EXPECT_EQ(result_data_size_, empty_size);
}

Powered by Google App Engine
This is Rietveld 408576698