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

Side by Side Diff: content/renderer/previews_state_helper_unittest.cc

Issue 2910783002: Adds Lo-Fi fallback support for new Data Reduction Proxy protocol. (Closed)
Patch Set: Renamed helper method from Update* to Get* Created 3 years, 6 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
« no previous file with comments | « content/renderer/previews_state_helper.cc ('k') | content/renderer/render_frame_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2017 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/renderer/previews_state_helper.h"
6 #include "content/public/common/previews_state.h"
7 #include "testing/gtest/include/gtest/gtest.h"
8 #include "third_party/WebKit/public/platform/WebURLResponse.h"
9
10 namespace content {
11
12 TEST(PreviewsStateHelperTest, GetPreviewsStateNoServerTransformRequested) {
13 blink::WebURLResponse response_no_headers;
14
15 // No transforms specified.
16 EXPECT_EQ(PREVIEWS_OFF, GetPreviewsStateFromMainFrameResponse(
17 PREVIEWS_UNSPECIFIED, response_no_headers));
18
19 // Client Lo-Fi preserved if no Server Lo-Fi nor Lite Page.
20 EXPECT_EQ(CLIENT_LOFI_ON, GetPreviewsStateFromMainFrameResponse(
21 CLIENT_LOFI_ON, response_no_headers));
22 }
23
24 TEST(PreviewsStateHelperTest, GetPreviewsStateNoTransformResponseHeaders) {
25 blink::WebURLResponse response_no_headers;
26 // Lite Page enabled but no CPCT nor page-polices => all cleared.
27 EXPECT_EQ(PREVIEWS_OFF,
28 GetPreviewsStateFromMainFrameResponse(
29 SERVER_LITE_PAGE_ON | SERVER_LOFI_ON | CLIENT_LOFI_ON,
30 response_no_headers));
31 EXPECT_EQ(PREVIEWS_OFF, GetPreviewsStateFromMainFrameResponse(
32 SERVER_LITE_PAGE_ON, response_no_headers));
33 EXPECT_EQ(PREVIEWS_OFF,
34 GetPreviewsStateFromMainFrameResponse(
35 SERVER_LITE_PAGE_ON | CLIENT_LOFI_ON, response_no_headers));
36 EXPECT_EQ(PREVIEWS_OFF,
37 GetPreviewsStateFromMainFrameResponse(
38 SERVER_LITE_PAGE_ON | SERVER_LOFI_ON, response_no_headers));
39
40 // Legacy Lo-Fi path (Lite Pages not enabled but Server Lo-Fi is).
41 EXPECT_EQ(SERVER_LOFI_ON, GetPreviewsStateFromMainFrameResponse(
42 SERVER_LOFI_ON, response_no_headers));
43 EXPECT_EQ(SERVER_LOFI_ON | CLIENT_LOFI_ON,
44 GetPreviewsStateFromMainFrameResponse(
45 SERVER_LOFI_ON | CLIENT_LOFI_ON, response_no_headers));
46 }
47
48 TEST(PreviewsStateHelperTest, GetPreviewsStateLitePageTransform) {
49 blink::WebURLResponse response_with_lite_page;
50 response_with_lite_page.AddHTTPHeaderField("chrome-proxy-content-transform",
51 "lite-page");
52 EXPECT_EQ(SERVER_LITE_PAGE_ON,
53 GetPreviewsStateFromMainFrameResponse(SERVER_LITE_PAGE_ON,
54 response_with_lite_page));
55 EXPECT_EQ(SERVER_LITE_PAGE_ON,
56 GetPreviewsStateFromMainFrameResponse(
57 SERVER_LITE_PAGE_ON | SERVER_LOFI_ON | CLIENT_LOFI_ON,
58 response_with_lite_page));
59 EXPECT_EQ(SERVER_LITE_PAGE_ON,
60 GetPreviewsStateFromMainFrameResponse(
61 SERVER_LITE_PAGE_ON | CLIENT_LOFI_ON, response_with_lite_page));
62 EXPECT_EQ(SERVER_LITE_PAGE_ON,
63 GetPreviewsStateFromMainFrameResponse(
64 SERVER_LITE_PAGE_ON | SERVER_LOFI_ON, response_with_lite_page));
65 }
66
67 TEST(PreviewsStateHelperTest, GetPreviewsStateLitePageAndLoFiTransforms) {
68 blink::WebURLResponse response_with_lite_page_and_page_policy;
69 response_with_lite_page_and_page_policy.AddHTTPHeaderField(
70 "chrome-proxy-content-transform", "lite-page");
71 response_with_lite_page_and_page_policy.AddHTTPHeaderField(
72 "Chrome-Proxy", "Page-Policies=Empty-Image");
73
74 response_with_lite_page_and_page_policy.AddHTTPHeaderField(
75 "Chrome-Proxy", "Page-Policies=Empty-Image");
76 EXPECT_EQ(SERVER_LITE_PAGE_ON | SERVER_LOFI_ON | CLIENT_LOFI_ON,
77 GetPreviewsStateFromMainFrameResponse(
78 SERVER_LITE_PAGE_ON | SERVER_LOFI_ON | CLIENT_LOFI_ON,
79 response_with_lite_page_and_page_policy));
80 EXPECT_EQ(SERVER_LITE_PAGE_ON | SERVER_LOFI_ON,
81 GetPreviewsStateFromMainFrameResponse(
82 SERVER_LITE_PAGE_ON | SERVER_LOFI_ON,
83 response_with_lite_page_and_page_policy));
84 }
85
86 TEST(PreviewsStateHelperTest, GetPreviewsStateLoFiFallbackPagePolicy) {
87 blink::WebURLResponse response_with_page_policy;
88 response_with_page_policy.AddHTTPHeaderField("Chrome-Proxy", "SomeNoise");
89 response_with_page_policy.AddHTTPHeaderField("Chrome-Proxy",
90 "Page-Policies=Empty-Image");
91
92 // No fallbacks if Server Lo-Fi not enabled.
93 EXPECT_EQ(PREVIEWS_OFF, GetPreviewsStateFromMainFrameResponse(
94 SERVER_LITE_PAGE_ON, response_with_page_policy));
95 EXPECT_EQ(PREVIEWS_OFF, GetPreviewsStateFromMainFrameResponse(
96 SERVER_LITE_PAGE_ON | CLIENT_LOFI_ON,
97 response_with_page_policy));
98
99 // Lo-Fi fallbacks if Server Lo-Fi enabled and get empty-image directive.
100 EXPECT_EQ(SERVER_LOFI_ON | CLIENT_LOFI_ON,
101 GetPreviewsStateFromMainFrameResponse(
102 SERVER_LITE_PAGE_ON | SERVER_LOFI_ON | CLIENT_LOFI_ON,
103 response_with_page_policy));
104 EXPECT_EQ(SERVER_LOFI_ON, GetPreviewsStateFromMainFrameResponse(
105 SERVER_LITE_PAGE_ON | SERVER_LOFI_ON,
106 response_with_page_policy));
107 }
108
109 TEST(PreviewsStateHelperTest, GetPreviewsStateLoFiFallbackAndOtherPolicies) {
110 blink::WebURLResponse response_with_page_policy;
111 response_with_page_policy.AddHTTPHeaderField("chrome-proxy", "Prefix=Noise");
112 response_with_page_policy.AddHTTPHeaderField(
113 "chrome-proxy", "page-policies=new-hotness|empty-image|newer-hotness");
114 response_with_page_policy.AddHTTPHeaderField("chrome-proxy",
115 "Suffix=More|Noise");
116
117 // Lo-Fi fallbacks if Server Lo-Fi enabled and get empty-image directive.
118 EXPECT_EQ(SERVER_LOFI_ON | CLIENT_LOFI_ON,
119 GetPreviewsStateFromMainFrameResponse(
120 SERVER_LITE_PAGE_ON | SERVER_LOFI_ON | CLIENT_LOFI_ON,
121 response_with_page_policy));
122 EXPECT_EQ(SERVER_LOFI_ON, GetPreviewsStateFromMainFrameResponse(
123 SERVER_LITE_PAGE_ON | SERVER_LOFI_ON,
124 response_with_page_policy));
125 }
126
127 TEST(PreviewsStateHelperTest, GetPreviewsStateNoKnownPolicies) {
128 blink::WebURLResponse response_with_page_policy;
129 response_with_page_policy.AddHTTPHeaderField("chrome-proxy", "Prefix=Noise");
130 response_with_page_policy.AddHTTPHeaderField(
131 "chrome-proxy",
132 "page-policies=new-hotness|new-empty-image|newer-hotness");
133 response_with_page_policy.AddHTTPHeaderField("chrome-proxy",
134 "Suffix=More|Noise");
135
136 // Lo-Fi fallbacks if Server Lo-Fi enabled and get empty-image directive.
137 EXPECT_EQ(PREVIEWS_OFF,
138 GetPreviewsStateFromMainFrameResponse(
139 SERVER_LITE_PAGE_ON | SERVER_LOFI_ON | CLIENT_LOFI_ON,
140 response_with_page_policy));
141 EXPECT_EQ(PREVIEWS_OFF, GetPreviewsStateFromMainFrameResponse(
142 SERVER_LITE_PAGE_ON | SERVER_LOFI_ON,
143 response_with_page_policy));
144 }
145
146 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/previews_state_helper.cc ('k') | content/renderer/render_frame_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698