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

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: Makes SlowConnection integration test more permissive in which type of server optimization response… 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 "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, UpdatePreviewsStateNoServerTransformRequested) {
13 blink::WebURLResponse response_no_headers;
14
15 // No transforms specified.
16 EXPECT_EQ(PREVIEWS_OFF, UpdatePreviewsStateFromMainFrameResponse(
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, UpdatePreviewsStateFromMainFrameResponse(
21 CLIENT_LOFI_ON, response_no_headers));
22 }
23
24 TEST(PreviewsStateHelperTest, UpdatePreviewsStateNoTransformResponseHeaders) {
25 blink::WebURLResponse response_no_headers;
26 // Lite Page enabled but no CPCT nor page-polices => all cleared.
27 EXPECT_EQ(PREVIEWS_OFF,
28 UpdatePreviewsStateFromMainFrameResponse(
29 SERVER_LITE_PAGE_ON | SERVER_LOFI_ON | CLIENT_LOFI_ON,
30 response_no_headers));
31 EXPECT_EQ(PREVIEWS_OFF, UpdatePreviewsStateFromMainFrameResponse(
32 SERVER_LITE_PAGE_ON, response_no_headers));
33 EXPECT_EQ(PREVIEWS_OFF,
34 UpdatePreviewsStateFromMainFrameResponse(
35 SERVER_LITE_PAGE_ON | CLIENT_LOFI_ON, response_no_headers));
36 EXPECT_EQ(PREVIEWS_OFF,
37 UpdatePreviewsStateFromMainFrameResponse(
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, UpdatePreviewsStateFromMainFrameResponse(
42 SERVER_LOFI_ON, response_no_headers));
43 EXPECT_EQ(SERVER_LOFI_ON | CLIENT_LOFI_ON,
44 UpdatePreviewsStateFromMainFrameResponse(
45 SERVER_LOFI_ON | CLIENT_LOFI_ON, response_no_headers));
46 }
47
48 TEST(PreviewsStateHelperTest, UpdatePreviewsStateLitePageTransform) {
megjablon 2017/06/09 19:42:19 Add a test for a lite page transform that has lo-f
dougarnett 2017/06/09 20:09:18 Done.
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 UpdatePreviewsStateFromMainFrameResponse(SERVER_LITE_PAGE_ON,
54 response_with_lite_page));
55 EXPECT_EQ(SERVER_LITE_PAGE_ON,
56 UpdatePreviewsStateFromMainFrameResponse(
57 SERVER_LITE_PAGE_ON | SERVER_LOFI_ON | CLIENT_LOFI_ON,
58 response_with_lite_page));
59 EXPECT_EQ(SERVER_LITE_PAGE_ON,
60 UpdatePreviewsStateFromMainFrameResponse(
61 SERVER_LITE_PAGE_ON | CLIENT_LOFI_ON, response_with_lite_page));
62 EXPECT_EQ(SERVER_LITE_PAGE_ON,
63 UpdatePreviewsStateFromMainFrameResponse(
64 SERVER_LITE_PAGE_ON | SERVER_LOFI_ON, response_with_lite_page));
65 }
66
67 TEST(PreviewsStateHelperTest, UpdatePreviewsStateLoFiFallbackPagePolicy) {
68 blink::WebURLResponse response_with_page_policy;
69 response_with_page_policy.AddHTTPHeaderField("Chrome-Proxy", "SomeNoise");
70 response_with_page_policy.AddHTTPHeaderField("Chrome-Proxy",
71 "Page-Policies=Empty-Image");
72
73 // No fallbacks if Server Lo-Fi not enabled.
74 EXPECT_EQ(PREVIEWS_OFF, UpdatePreviewsStateFromMainFrameResponse(
75 SERVER_LITE_PAGE_ON, response_with_page_policy));
76 EXPECT_EQ(PREVIEWS_OFF, UpdatePreviewsStateFromMainFrameResponse(
77 SERVER_LITE_PAGE_ON | CLIENT_LOFI_ON,
78 response_with_page_policy));
79
80 // Lo-Fi fallbacks if Server Lo-Fi enabled and get empty-image directive.
81 EXPECT_EQ(SERVER_LOFI_ON | CLIENT_LOFI_ON,
82 UpdatePreviewsStateFromMainFrameResponse(
83 SERVER_LITE_PAGE_ON | SERVER_LOFI_ON | CLIENT_LOFI_ON,
84 response_with_page_policy));
85 EXPECT_EQ(SERVER_LOFI_ON, UpdatePreviewsStateFromMainFrameResponse(
86 SERVER_LITE_PAGE_ON | SERVER_LOFI_ON,
87 response_with_page_policy));
88 }
89
90 TEST(PreviewsStateHelperTest, UpdatePreviewsStateLoFiFallbackAndOtherPolicies) {
91 blink::WebURLResponse response_with_page_policy;
92 response_with_page_policy.AddHTTPHeaderField("chrome-proxy", "Prefix=Noise");
93 response_with_page_policy.AddHTTPHeaderField(
94 "chrome-proxy", "page-policies=new-hotness|empty-image|newer-hotness");
95 response_with_page_policy.AddHTTPHeaderField("chrome-proxy",
96 "Suffix=More|Noise");
97
98 // Lo-Fi fallbacks if Server Lo-Fi enabled and get empty-image directive.
99 EXPECT_EQ(SERVER_LOFI_ON | CLIENT_LOFI_ON,
100 UpdatePreviewsStateFromMainFrameResponse(
101 SERVER_LITE_PAGE_ON | SERVER_LOFI_ON | CLIENT_LOFI_ON,
102 response_with_page_policy));
103 EXPECT_EQ(SERVER_LOFI_ON, UpdatePreviewsStateFromMainFrameResponse(
104 SERVER_LITE_PAGE_ON | SERVER_LOFI_ON,
105 response_with_page_policy));
106 }
107
108 TEST(PreviewsStateHelperTest, UpdatePreviewsStateNoKnownPolicies) {
109 blink::WebURLResponse response_with_page_policy;
110 response_with_page_policy.AddHTTPHeaderField("chrome-proxy", "Prefix=Noise");
111 response_with_page_policy.AddHTTPHeaderField(
112 "chrome-proxy",
113 "page-policies=new-hotness|new-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(PREVIEWS_OFF,
119 UpdatePreviewsStateFromMainFrameResponse(
120 SERVER_LITE_PAGE_ON | SERVER_LOFI_ON | CLIENT_LOFI_ON,
121 response_with_page_policy));
122 EXPECT_EQ(PREVIEWS_OFF, UpdatePreviewsStateFromMainFrameResponse(
123 SERVER_LITE_PAGE_ON | SERVER_LOFI_ON,
124 response_with_page_policy));
125 }
126
127 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698