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