OLD | NEW |
| (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 | |
OLD | NEW |