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

Side by Side Diff: components/sessions/content/content_serialized_navigation_driver_unittest.cc

Issue 2759333002: Move chrome-specific SerializedNavigation code to chrome/. (Closed)
Patch Set: Fix Android Created 3 years, 9 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
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/sessions/content/content_serialized_navigation_driver.h" 5 #include "components/sessions/content/content_serialized_navigation_driver.h"
6 6
7 #include "components/sessions/core/serialized_navigation_entry.h" 7 #include "components/sessions/core/serialized_navigation_entry.h"
8 #include "components/sessions/core/serialized_navigation_entry_test_helper.h" 8 #include "components/sessions/core/serialized_navigation_entry_test_helper.h"
9 #include "content/public/common/page_state.h"
10 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
11 #include "third_party/WebKit/public/platform/WebReferrerPolicy.h"
12 #include "ui/base/page_transition_types.h"
13 10
14 namespace sessions { 11 namespace sessions {
15 12
16 // Tests that PageState data is properly sanitized when post data is present. 13 // Tests that PageState data is properly sanitized when post data is present.
17 TEST(ContentSerializedNavigationDriverTest, PickleSanitizationWithPostData) { 14 TEST(ContentSerializedNavigationDriverTest, PickleSanitizationWithPostData) {
18 ContentSerializedNavigationDriver* driver = 15 ContentSerializedNavigationDriver* driver =
19 ContentSerializedNavigationDriver::GetInstance(); 16 ContentSerializedNavigationDriver::GetInstance();
20 SerializedNavigationEntry navigation = 17 SerializedNavigationEntry navigation =
21 SerializedNavigationEntryTestHelper::CreateNavigationForTest(); 18 SerializedNavigationEntryTestHelper::CreateNavigationForTest();
22 ASSERT_TRUE(navigation.has_post_data()); 19 ASSERT_TRUE(navigation.has_post_data());
(...skipping 11 matching lines...) Expand all
34 SerializedNavigationEntry navigation = 31 SerializedNavigationEntry navigation =
35 SerializedNavigationEntryTestHelper::CreateNavigationForTest(); 32 SerializedNavigationEntryTestHelper::CreateNavigationForTest();
36 SerializedNavigationEntryTestHelper::SetHasPostData(false, &navigation); 33 SerializedNavigationEntryTestHelper::SetHasPostData(false, &navigation);
37 ASSERT_FALSE(navigation.has_post_data()); 34 ASSERT_FALSE(navigation.has_post_data());
38 35
39 std::string sanitized_page_state = 36 std::string sanitized_page_state =
40 driver->GetSanitizedPageStateForPickle(&navigation); 37 driver->GetSanitizedPageStateForPickle(&navigation);
41 EXPECT_EQ(test_data::kEncodedPageState, sanitized_page_state); 38 EXPECT_EQ(test_data::kEncodedPageState, sanitized_page_state);
42 } 39 }
43 40
44 // Tests that the input data is left unsanitized when the referrer policy is
45 // Always.
46 TEST(ContentSerializedNavigationDriverTest, SanitizeWithReferrerPolicyAlways) {
47 ContentSerializedNavigationDriver* driver =
48 ContentSerializedNavigationDriver::GetInstance();
49 SerializedNavigationEntry navigation =
50 SerializedNavigationEntryTestHelper::CreateNavigationForTest();
51 SerializedNavigationEntryTestHelper::SetReferrerPolicy(
52 blink::WebReferrerPolicyAlways, &navigation);
53
54 content::PageState page_state =
55 content::PageState::CreateFromURL(test_data::kVirtualURL);
56 SerializedNavigationEntryTestHelper::SetEncodedPageState(
57 page_state.ToEncodedData(), &navigation);
58
59 driver->Sanitize(&navigation);
60 EXPECT_EQ(test_data::kIndex, navigation.index());
61 EXPECT_EQ(test_data::kUniqueID, navigation.unique_id());
62 EXPECT_EQ(test_data::kReferrerURL, navigation.referrer_url());
63 EXPECT_EQ(blink::WebReferrerPolicyAlways, navigation.referrer_policy());
64 EXPECT_EQ(test_data::kVirtualURL, navigation.virtual_url());
65 EXPECT_EQ(test_data::kTitle, navigation.title());
66 EXPECT_EQ(page_state.ToEncodedData(), navigation.encoded_page_state());
67 EXPECT_TRUE(ui::PageTransitionTypeIncludingQualifiersIs(
68 navigation.transition_type(), test_data::kTransitionType));
69 EXPECT_EQ(test_data::kHasPostData, navigation.has_post_data());
70 EXPECT_EQ(test_data::kPostID, navigation.post_id());
71 EXPECT_EQ(test_data::kOriginalRequestURL, navigation.original_request_url());
72 EXPECT_EQ(test_data::kIsOverridingUserAgent,
73 navigation.is_overriding_user_agent());
74 EXPECT_EQ(test_data::kTimestamp, navigation.timestamp());
75 EXPECT_EQ(test_data::kSearchTerms, navigation.search_terms());
76 EXPECT_EQ(test_data::kFaviconURL, navigation.favicon_url());
77 EXPECT_EQ(test_data::kHttpStatusCode, navigation.http_status_code());
78 }
79
80 // Tests that the input data is properly sanitized when the referrer policy is
81 // Never.
82 TEST(ContentSerializedNavigationDriverTest, SanitizeWithReferrerPolicyNever) {
83 ContentSerializedNavigationDriver* driver =
84 ContentSerializedNavigationDriver::GetInstance();
85 SerializedNavigationEntry navigation =
86 SerializedNavigationEntryTestHelper::CreateNavigationForTest();
87 SerializedNavigationEntryTestHelper::SetReferrerPolicy(
88 blink::WebReferrerPolicyNever, &navigation);
89
90 content::PageState page_state =
91 content::PageState::CreateFromURL(test_data::kVirtualURL);
92 SerializedNavigationEntryTestHelper::SetEncodedPageState(
93 page_state.ToEncodedData(), &navigation);
94
95 driver->Sanitize(&navigation);
96
97 // Fields that should remain untouched.
98 EXPECT_EQ(test_data::kIndex, navigation.index());
99 EXPECT_EQ(test_data::kUniqueID, navigation.unique_id());
100 EXPECT_EQ(test_data::kVirtualURL, navigation.virtual_url());
101 EXPECT_EQ(test_data::kTitle, navigation.title());
102 EXPECT_TRUE(ui::PageTransitionTypeIncludingQualifiersIs(
103 navigation.transition_type(), test_data::kTransitionType));
104 EXPECT_EQ(test_data::kHasPostData, navigation.has_post_data());
105 EXPECT_EQ(test_data::kPostID, navigation.post_id());
106 EXPECT_EQ(test_data::kOriginalRequestURL, navigation.original_request_url());
107 EXPECT_EQ(test_data::kIsOverridingUserAgent,
108 navigation.is_overriding_user_agent());
109 EXPECT_EQ(test_data::kTimestamp, navigation.timestamp());
110 EXPECT_EQ(test_data::kSearchTerms, navigation.search_terms());
111 EXPECT_EQ(test_data::kFaviconURL, navigation.favicon_url());
112 EXPECT_EQ(test_data::kHttpStatusCode, navigation.http_status_code());
113
114 // Fields that were sanitized.
115 EXPECT_EQ(GURL(), navigation.referrer_url());
116 EXPECT_EQ(blink::WebReferrerPolicyDefault, navigation.referrer_policy());
117 EXPECT_EQ(page_state.ToEncodedData(), navigation.encoded_page_state());
118 }
119
120 } // namespace sessions 41 } // namespace sessions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698