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

Side by Side Diff: content/browser/transition_request_manager_unittest.cc

Issue 387703004: Navigation transitions: Parse out transition-entering-stylesheet link headers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: nit fix Created 6 years, 5 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "content/browser/transition_request_manager.h"
6 #include "net/http/http_response_headers.h"
7 #include "net/http/http_util.h"
8 #include "testing/gtest/include/gtest/gtest.h"
9
10 namespace content {
11
12 class TransitionRequestManagerTest : public testing::Test {
13 public:
14 virtual ~TransitionRequestManagerTest() {}
15 };
16
17 TEST_F(TransitionRequestManagerTest,
18 ParseTransitionStylesheetsFromNullHeaders) {
19 const GURL url("http://www.test.com/");
20 std::vector<GURL> entering_stylesheets;
21 scoped_refptr<net::HttpResponseHeaders> headers;
22
23 TransitionRequestManager::ParseTransitionStylesheetsFromHeaders(
24 headers, entering_stylesheets, url);
25 ASSERT_TRUE(entering_stylesheets.empty());
26 }
27
28 TEST_F(TransitionRequestManagerTest,
29 ParseTransitionStylesheetsFromEmptyHeaders) {
30 const GURL url("http://www.test.com/");
31 std::vector<GURL> entering_stylesheets;
32
33 char headers_string[] = "";
34 scoped_refptr<net::HttpResponseHeaders> headers(
35 new net::HttpResponseHeaders(net::HttpUtil::AssembleRawHeaders(
36 headers_string, sizeof(headers_string))));
37
38 TransitionRequestManager::ParseTransitionStylesheetsFromHeaders(
39 headers, entering_stylesheets, url);
40 ASSERT_TRUE(entering_stylesheets.empty());
41 }
42
43 TEST_F(TransitionRequestManagerTest,
44 ParseTransitionStylesheetsFromHeadersForInvalidURL) {
45 const GURL url;
46 std::vector<GURL> entering_stylesheets;
47
48 char headers_string[] =
49 "HTTP/1.0 200 OK\r\n"
50 "link: <transition.css>;rel=transition-entering-stylesheet;scope=*\r\n"
51 "\r\n";
52 scoped_refptr<net::HttpResponseHeaders> headers(
53 new net::HttpResponseHeaders(net::HttpUtil::AssembleRawHeaders(
54 headers_string, sizeof(headers_string))));
55
56 TransitionRequestManager::ParseTransitionStylesheetsFromHeaders(
57 headers, entering_stylesheets, url);
58 ASSERT_TRUE(entering_stylesheets.empty());
59 }
60
61 TEST_F(TransitionRequestManagerTest, ParseTransitionStylesheetsFromHeaders) {
62 const GURL url("http://www.test.com/");
63 std::vector<GURL> entering_stylesheets;
64
65 char headers_string[] =
66 "HTTP/1.0 200 OK\r\n"
67 "link: <transition.css>;rel=transition-entering-stylesheet;scope=*\r\n"
68 "\r\n";
69 scoped_refptr<net::HttpResponseHeaders> headers(
70 new net::HttpResponseHeaders(net::HttpUtil::AssembleRawHeaders(
71 headers_string, sizeof(headers_string))));
72
73 TransitionRequestManager::ParseTransitionStylesheetsFromHeaders(
74 headers, entering_stylesheets, url);
75 ASSERT_TRUE(entering_stylesheets.size() == 1);
76 ASSERT_STREQ((url.spec() + "transition.css").c_str(),
77 entering_stylesheets[0].spec().c_str());
78 }
79
80 TEST_F(TransitionRequestManagerTest,
81 ParseMultipleTransitionStylesheetsFromHeaders) {
82 const GURL url("http://www.test.com/");
83 std::vector<GURL> entering_stylesheets;
84
85 char headers_string[] =
86 "HTTP/1.0 200 OK\r\n"
87 "link: <transition0.css>;rel=transition-entering-stylesheet;scope=*\r\n"
88 "link: <transition1.css>;rel=transition-entering-stylesheet;scope=*\r\n"
89 "link: <transition2.css>;rel=transition-entering-stylesheet;scope=*\r\n"
90 "\r\n";
91 scoped_refptr<net::HttpResponseHeaders> headers(
92 new net::HttpResponseHeaders(net::HttpUtil::AssembleRawHeaders(
93 headers_string, sizeof(headers_string))));
94
95 TransitionRequestManager::ParseTransitionStylesheetsFromHeaders(
96 headers, entering_stylesheets, url);
97 ASSERT_TRUE(entering_stylesheets.size() == 3);
98 ASSERT_STREQ((url.spec() + "transition0.css").c_str(),
99 entering_stylesheets[0].spec().c_str());
100 ASSERT_STREQ((url.spec() + "transition1.css").c_str(),
101 entering_stylesheets[1].spec().c_str());
102 ASSERT_STREQ((url.spec() + "transition2.css").c_str(),
103 entering_stylesheets[2].spec().c_str());
104 }
105
106 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/transition_request_manager.cc ('k') | content/browser/web_contents/web_contents_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698