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

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: Added support for legacy Lo-Fi path (without Lite-Page enabled). 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
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 "testing/gtest/include/gtest/gtest.h"
7
8 namespace content {
9
10 namespace {} // namespaces
11
12 TEST(PreviewsStateHelperTest, UpdatePreviewsStateNoTransformResponseHeaders) {
13 blink::WebURLResponse response_no_headers;
14 // Lite Page enabled but no CPCT nor page-polices => all cleared.
15 EXPECT_EQ(PREVIEWS_UNSPECIFIED,
16 UpdatePreviewsStateFromMainFrameResponse(
17 SERVER_LITE_PAGE_ON | SERVER_LOFI_ON | CLIENT_LOFI_ON,
18 response_no_headers));
19 EXPECT_EQ(PREVIEWS_UNSPECIFIED,
20 UpdatePreviewsStateFromMainFrameResponse(SERVER_LITE_PAGE_ON,
21 response_no_headers));
22 EXPECT_EQ(PREVIEWS_UNSPECIFIED,
23 UpdatePreviewsStateFromMainFrameResponse(
24 SERVER_LITE_PAGE_ON | CLIENT_LOFI_ON, response_no_headers));
25 EXPECT_EQ(PREVIEWS_UNSPECIFIED,
26 UpdatePreviewsStateFromMainFrameResponse(
27 SERVER_LITE_PAGE_ON | SERVER_LOFI_ON, response_no_headers));
28
29 // Legacy Lo-Fi path (Lite Pages not enabled but Server Lo-Fi is).
30 EXPECT_EQ(SERVER_LOFI_ON, UpdatePreviewsStateFromMainFrameResponse(
31 SERVER_LOFI_ON, response_no_headers));
32 EXPECT_EQ(SERVER_LOFI_ON | CLIENT_LOFI_ON,
33 UpdatePreviewsStateFromMainFrameResponse(
34 SERVER_LOFI_ON | CLIENT_LOFI_ON, response_no_headers));
35
36 // Client Lo-Fi should be cleared if no Server Lo-Fi nor Lite Page.
37 EXPECT_EQ(PREVIEWS_UNSPECIFIED, UpdatePreviewsStateFromMainFrameResponse(
38 CLIENT_LOFI_ON, response_no_headers));
39 }
40
41 TEST(PreviewsStateHelperTest, UpdatePreviewsStateLitePageTransform) {
42 blink::WebURLResponse response_with_lite_page;
43 response_with_lite_page.AddHTTPHeaderField("chrome-proxy-content-transform",
44 "lite-page");
45 EXPECT_EQ(SERVER_LITE_PAGE_ON,
46 UpdatePreviewsStateFromMainFrameResponse(SERVER_LITE_PAGE_ON,
47 response_with_lite_page));
48 EXPECT_EQ(SERVER_LITE_PAGE_ON,
49 UpdatePreviewsStateFromMainFrameResponse(
50 SERVER_LITE_PAGE_ON | SERVER_LOFI_ON | CLIENT_LOFI_ON,
51 response_with_lite_page));
52 EXPECT_EQ(SERVER_LITE_PAGE_ON,
53 UpdatePreviewsStateFromMainFrameResponse(
54 SERVER_LITE_PAGE_ON | CLIENT_LOFI_ON, response_with_lite_page));
55 EXPECT_EQ(SERVER_LITE_PAGE_ON,
56 UpdatePreviewsStateFromMainFrameResponse(
57 SERVER_LITE_PAGE_ON | SERVER_LOFI_ON, response_with_lite_page));
58 }
59
60 TEST(PreviewsStateHelperTest, UpdatePreviewsStateLoFiFallbackPagePolicy) {
61 blink::WebURLResponse response_with_page_policy;
62 response_with_page_policy.AddHTTPHeaderField("chrome-proxy", "SomeNoise");
63 response_with_page_policy.AddHTTPHeaderField("chrome-proxy",
64 "page-policies=empty-image");
65
66 // No fallbacks if Server Lo-Fi not enabled.
67 EXPECT_EQ(PREVIEWS_UNSPECIFIED,
68 UpdatePreviewsStateFromMainFrameResponse(
69 SERVER_LITE_PAGE_ON, response_with_page_policy));
70 EXPECT_EQ(PREVIEWS_UNSPECIFIED, UpdatePreviewsStateFromMainFrameResponse(
71 SERVER_LITE_PAGE_ON | CLIENT_LOFI_ON,
72 response_with_page_policy));
73
74 // Lo-Fi fallbacks if Server Lo-Fi enabled and get empty-image directive.
75 EXPECT_EQ(SERVER_LOFI_ON | CLIENT_LOFI_ON,
76 UpdatePreviewsStateFromMainFrameResponse(
77 SERVER_LITE_PAGE_ON | SERVER_LOFI_ON | CLIENT_LOFI_ON,
78 response_with_page_policy));
79 EXPECT_EQ(SERVER_LOFI_ON, UpdatePreviewsStateFromMainFrameResponse(
80 SERVER_LITE_PAGE_ON | SERVER_LOFI_ON,
81 response_with_page_policy));
82 }
83
84 TEST(PreviewsStateHelperTest, UpdatePreviewsStateLoFiFallbackAndOtherPolicies) {
85 blink::WebURLResponse response_with_page_policy;
86 response_with_page_policy.AddHTTPHeaderField("chrome-proxy", "Prefix=Noise");
87 response_with_page_policy.AddHTTPHeaderField(
88 "chrome-proxy", "page-policies=new-hotness|empty-image|newer-hotness");
89 response_with_page_policy.AddHTTPHeaderField("chrome-proxy",
90 "Suffix=More|Noise");
91
92 // Lo-Fi fallbacks if Server Lo-Fi enabled and get empty-image directive.
93 EXPECT_EQ(SERVER_LOFI_ON | CLIENT_LOFI_ON,
94 UpdatePreviewsStateFromMainFrameResponse(
95 SERVER_LITE_PAGE_ON | SERVER_LOFI_ON | CLIENT_LOFI_ON,
96 response_with_page_policy));
97 EXPECT_EQ(SERVER_LOFI_ON, UpdatePreviewsStateFromMainFrameResponse(
98 SERVER_LITE_PAGE_ON | SERVER_LOFI_ON,
99 response_with_page_policy));
100 }
101
102 TEST(PreviewsStateHelperTest, UpdatePreviewsStateNoKnownPolicies) {
103 blink::WebURLResponse response_with_page_policy;
104 response_with_page_policy.AddHTTPHeaderField("chrome-proxy", "Prefix=Noise");
105 response_with_page_policy.AddHTTPHeaderField(
106 "chrome-proxy",
107 "page-policies=new-hotness|new-empty-image|newer-hotness");
108 response_with_page_policy.AddHTTPHeaderField("chrome-proxy",
109 "Suffix=More|Noise");
110
111 // Lo-Fi fallbacks if Server Lo-Fi enabled and get empty-image directive.
112 EXPECT_EQ(PREVIEWS_UNSPECIFIED,
113 UpdatePreviewsStateFromMainFrameResponse(
114 SERVER_LITE_PAGE_ON | SERVER_LOFI_ON | CLIENT_LOFI_ON,
115 response_with_page_policy));
116 EXPECT_EQ(PREVIEWS_UNSPECIFIED, UpdatePreviewsStateFromMainFrameResponse(
117 SERVER_LITE_PAGE_ON | SERVER_LOFI_ON,
118 response_with_page_policy));
119 }
120
121 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698