#include "content/public/test/mock_resource_context.h"
#include "content/public/test/test_browser_thread_bundle.h"
#include "grit/browser_resources.h"
+#include "ipc/ipc_message.h"
#include "net/base/request_priority.h"
#include "net/url_request/url_request.h"
#include "net/url_request/url_request_context.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "url/gurl.h"
+using content::ResourceType;
+
const int kNonInstantRendererPID = 0;
const char kNonInstantOrigin[] = "http://evil";
const int kInstantRendererPID = 1;
using IframeSource::SendJSWithOrigin;
protected:
- virtual std::string GetSource() const OVERRIDE {
- return "test";
- }
+ std::string GetSource() const override { return "test"; }
- virtual bool ServesPath(const std::string& path) const OVERRIDE {
+ bool ServesPath(const std::string& path) const override {
return path == "/valid.html" || path == "/valid.js";
}
- virtual void StartDataRequest(
+ void StartDataRequest(
const std::string& path,
int render_process_id,
- int render_view_id,
- const content::URLDataSource::GotDataCallback& callback) OVERRIDE {
- }
+ int render_frame_id,
+ const content::URLDataSource::GotDataCallback& callback) override {}
- // RenderViewHost is hard to mock in concert with everything else, so stub
+ // RenderFrameHost is hard to mock in concert with everything else, so stub
// this method out for testing.
- virtual bool GetOrigin(
- int process_id,
- int render_view_id,
- std::string* origin) const OVERRIDE {
+ bool GetOrigin(int process_id,
+ int render_frame_id,
+ std::string* origin) const override {
if (process_id == kInstantRendererPID) {
*origin = kInstantOrigin;
return true;
std::string response_string() {
if (response_.get()) {
- return std::string(reinterpret_cast<const char*>(response_->front()),
- response_->size());
+ return std::string(response_->front_as<char>(), response_->size());
}
return "";
}
- net::URLRequest* MockRequest(
+ scoped_ptr<net::URLRequest> MockRequest(
const std::string& url,
bool allocate_info,
int render_process_id,
- int render_view_id) {
- net::URLRequest* request =
- new net::URLRequest(GURL(url),
- net::DEFAULT_PRIORITY,
- NULL,
- resource_context_.GetRequestContext());
+ int render_frame_id) {
+ scoped_ptr<net::URLRequest> request(
+ resource_context_.GetRequestContext()->CreateRequest(
+ GURL(url),
+ net::DEFAULT_PRIORITY,
+ NULL,
+ NULL));
if (allocate_info) {
- content::ResourceRequestInfo::AllocateForTesting(request,
- ResourceType::SUB_FRAME,
- &resource_context_,
- render_process_id,
- render_view_id,
- false);
+ content::ResourceRequestInfo::AllocateForTesting(
+ request.get(),
+ content::RESOURCE_TYPE_SUB_FRAME,
+ &resource_context_,
+ render_process_id,
+ render_frame_id,
+ MSG_ROUTING_NONE,
+ false);
}
- return request;
+ return request.Pass();
}
void SendResource(int resource_id) {
void SendJSWithOrigin(
int resource_id,
int render_process_id,
- int render_view_id) {
- source()->SendJSWithOrigin(resource_id, render_process_id, render_view_id,
+ int render_frame_id) {
+ source()->SendJSWithOrigin(resource_id, render_process_id, render_frame_id,
callback_);
}
private:
- virtual void SetUp() OVERRIDE {
+ void SetUp() override {
source_.reset(new TestIframeSource());
callback_ = base::Bind(&IframeSourceTest::SaveResponse,
base::Unretained(this));
response_ = NULL;
}
- virtual void TearDown() {
- source_.reset();
- }
+ void TearDown() override { source_.reset(); }
void SaveResponse(base::RefCountedMemory* data) {
response_ = data;
TEST_F(IframeSourceTest, ShouldServiceRequest) {
scoped_ptr<net::URLRequest> request;
- request.reset(MockRequest("http://test/loader.js", true,
- kNonInstantRendererPID, 0));
+ request = MockRequest("http://test/loader.js", true,
+ kNonInstantRendererPID, 0);
EXPECT_FALSE(source()->ShouldServiceRequest(request.get()));
- request.reset(MockRequest("chrome-search://bogus/valid.js", true,
- kInstantRendererPID, 0));
+ request = MockRequest("chrome-search://bogus/valid.js", true,
+ kInstantRendererPID, 0);
EXPECT_FALSE(source()->ShouldServiceRequest(request.get()));
- request.reset(MockRequest("chrome-search://test/bogus.js", true,
- kInstantRendererPID, 0));
+ request = MockRequest("chrome-search://test/bogus.js", true,
+ kInstantRendererPID, 0);
EXPECT_FALSE(source()->ShouldServiceRequest(request.get()));
- request.reset(MockRequest("chrome-search://test/valid.js", true,
- kInstantRendererPID, 0));
+ request = MockRequest("chrome-search://test/valid.js", true,
+ kInstantRendererPID, 0);
EXPECT_TRUE(source()->ShouldServiceRequest(request.get()));
- request.reset(MockRequest("chrome-search://test/valid.js", true,
- kNonInstantRendererPID, 0));
+ request = MockRequest("chrome-search://test/valid.js", true,
+ kNonInstantRendererPID, 0);
EXPECT_FALSE(source()->ShouldServiceRequest(request.get()));
- request.reset(MockRequest("chrome-search://test/valid.js", true,
- kInvalidRendererPID, 0));
+ request = MockRequest("chrome-search://test/valid.js", true,
+ kInvalidRendererPID, 0);
EXPECT_FALSE(source()->ShouldServiceRequest(request.get()));
}