| Index: content/browser/frame_host/navigator_impl_unittest.cc
|
| diff --git a/content/browser/frame_host/navigator_impl_unittest.cc b/content/browser/frame_host/navigator_impl_unittest.cc
|
| index f0e4694cda70efc719455e129462a7b7fdcc9696..8b0ae22c17e5b5e4ca745890e6607255de9f16e7 100644
|
| --- a/content/browser/frame_host/navigator_impl_unittest.cc
|
| +++ b/content/browser/frame_host/navigator_impl_unittest.cc
|
| @@ -3,6 +3,7 @@
|
| // found in the LICENSE file.
|
|
|
| #include "base/command_line.h"
|
| +#include "base/guid.h"
|
| #include "base/macros.h"
|
| #include "base/test/histogram_tester.h"
|
| #include "base/time/time.h"
|
| @@ -14,6 +15,8 @@
|
| #include "content/browser/frame_host/navigator_impl.h"
|
| #include "content/browser/frame_host/render_frame_host_manager.h"
|
| #include "content/browser/site_instance_impl.h"
|
| +#include "content/browser/streams/stream.h"
|
| +#include "content/browser/streams/stream_registry.h"
|
| #include "content/common/navigation_params.h"
|
| #include "content/public/browser/stream_handle.h"
|
| #include "content/public/common/content_switches.h"
|
| @@ -24,53 +27,14 @@
|
| #include "net/base/load_flags.h"
|
| #include "net/http/http_response_headers.h"
|
| #include "ui/base/page_transition_types.h"
|
| +#include "url/url_constants.h"
|
|
|
| namespace content {
|
|
|
| -namespace {
|
| -
|
| -// Mocked out stream handle to commit the navigation with.
|
| -class TestStreamHandle : public StreamHandle {
|
| +class NavigatorTest : public RenderViewHostImplTestHarness {
|
| public:
|
| - TestStreamHandle() : url_("test:stream") {}
|
| -
|
| - virtual const GURL& GetURL() override {
|
| - return url_;
|
| - }
|
| -
|
| - virtual const GURL& GetOriginalURL() override {
|
| - NOTREACHED();
|
| - return original_url_;
|
| - }
|
| -
|
| - virtual const std::string& GetMimeType() override {
|
| - NOTREACHED();
|
| - return mime_type_;
|
| - }
|
| -
|
| - virtual scoped_refptr<net::HttpResponseHeaders>
|
| - GetResponseHeaders() override {
|
| - NOTREACHED();
|
| - return NULL;
|
| - }
|
| -
|
| - virtual void AddCloseListener(const base::Closure& callback) override {
|
| - NOTREACHED();
|
| - }
|
| + NavigatorTest() : stream_registry_(new StreamRegistry) {}
|
|
|
| - private:
|
| - GURL url_;
|
| - GURL original_url_;
|
| - std::string mime_type_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(TestStreamHandle);
|
| -};
|
| -
|
| -}
|
| -
|
| -class NavigatorTest
|
| - : public RenderViewHostImplTestHarness {
|
| - public:
|
| NavigationRequest* GetNavigationRequestForFrameTreeNode(
|
| FrameTreeNode* frame_tree_node) const {
|
| NavigatorImpl* navigator =
|
| @@ -109,6 +73,16 @@ class NavigatorTest
|
| static_cast<NavigatorImpl*>(node->navigator())->RequestNavigation(
|
| node, *entry, reload_type, base::TimeTicks::Now());
|
| }
|
| +
|
| + scoped_ptr<StreamHandle> MakeEmptyStream() {
|
| + GURL url(std::string(url::kBlobScheme) + "://" + base::GenerateGUID());
|
| + scoped_refptr<Stream> stream(new Stream(stream_registry_.get(), NULL, url));
|
| + stream->Finalize();
|
| + return stream->CreateHandle();
|
| + }
|
| +
|
| + private:
|
| + scoped_ptr<StreamRegistry> stream_registry_;
|
| };
|
|
|
| // PlzNavigate: Test that a proper NavigationRequest is created by
|
| @@ -172,8 +146,7 @@ TEST_F(NavigatorTest, BrowserSideNavigationRequestNavigationNoLiveRenderer) {
|
|
|
| // Now commit the same url.
|
| scoped_refptr<ResourceResponse> response(new ResourceResponse);
|
| - node->navigator()->CommitNavigation(
|
| - node, response.get(), scoped_ptr<StreamHandle>(new TestStreamHandle));
|
| + node->navigator()->CommitNavigation(node, response.get(), MakeEmptyStream());
|
| main_request = GetNavigationRequestForFrameTreeNode(node);
|
|
|
| // The main RFH should not have been changed, and the renderer should have
|
| @@ -208,8 +181,7 @@ TEST_F(NavigatorTest, BrowserSideNavigationNoContent) {
|
| const char kNoContentHeaders[] = "HTTP/1.1 204 No Content\0\0";
|
| response->head.headers = new net::HttpResponseHeaders(
|
| std::string(kNoContentHeaders, arraysize(kNoContentHeaders)));
|
| - node->navigator()->CommitNavigation(
|
| - node, response.get(), scoped_ptr<StreamHandle>(new TestStreamHandle));
|
| + node->navigator()->CommitNavigation(node, response.get(), MakeEmptyStream());
|
|
|
| // There should be no pending RenderFrameHost; the navigation was aborted.
|
| EXPECT_FALSE(GetNavigationRequestForFrameTreeNode(node));
|
| @@ -228,8 +200,7 @@ TEST_F(NavigatorTest, BrowserSideNavigationNoContent) {
|
| const char kResetContentHeaders[] = "HTTP/1.1 205 Reset Content\0\0";
|
| response->head.headers = new net::HttpResponseHeaders(
|
| std::string(kResetContentHeaders, arraysize(kResetContentHeaders)));
|
| - node->navigator()->CommitNavigation(
|
| - node, response.get(), scoped_ptr<StreamHandle>(new TestStreamHandle));
|
| + node->navigator()->CommitNavigation(node, response.get(), MakeEmptyStream());
|
|
|
| // There should be no pending RenderFrameHost; the navigation was aborted.
|
| EXPECT_FALSE(GetNavigationRequestForFrameTreeNode(node));
|
| @@ -256,8 +227,7 @@ TEST_F(NavigatorTest, BrowserSideNavigationCrossSiteNavigation) {
|
| ASSERT_TRUE(main_request);
|
|
|
| scoped_refptr<ResourceResponse> response(new ResourceResponse);
|
| - node->navigator()->CommitNavigation(
|
| - node, response.get(), scoped_ptr<StreamHandle>(new TestStreamHandle));
|
| + node->navigator()->CommitNavigation(node, response.get(), MakeEmptyStream());
|
| RenderFrameHostImpl* pending_rfh =
|
| node->render_manager()->pending_frame_host();
|
| ASSERT_TRUE(pending_rfh);
|
| @@ -298,8 +268,7 @@ TEST_F(NavigatorTest, BrowserSideNavigationReplacePendingNavigation) {
|
|
|
| // Confirm that the commit corresonds to the new request.
|
| scoped_refptr<ResourceResponse> response(new ResourceResponse);
|
| - node->navigator()->CommitNavigation(
|
| - node, response.get(), scoped_ptr<StreamHandle>(new TestStreamHandle));
|
| + node->navigator()->CommitNavigation(node, response.get(), MakeEmptyStream());
|
| RenderFrameHostImpl* pending_rfh =
|
| node->render_manager()->pending_frame_host();
|
| ASSERT_TRUE(pending_rfh);
|
|
|