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

Side by Side Diff: chrome/browser/sessions/chrome_serialized_navigation_driver_unittest.cc

Issue 2759333002: Move chrome-specific SerializedNavigation code to chrome/. (Closed)
Patch Set: bad export 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
(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 "chrome/browser/sessions/chrome_serialized_navigation_driver.h"
sky 2017/03/22 04:00:31 newline between 5 and 6.
Lei Zhang 2017/03/22 05:59:05 Done.
6 #include "components/sessions/core/serialized_navigation_entry_test_helper.h"
7 #include "content/public/common/page_state.h"
8 #include "testing/gtest/include/gtest/gtest.h"
9 #include "third_party/WebKit/public/platform/WebReferrerPolicy.h"
10 #include "ui/base/page_transition_types.h"
11
12 class ChromeSerializedNavigationDriverTest : public ::testing::Test {
13 public:
14 ChromeSerializedNavigationDriverTest() {}
15 ~ChromeSerializedNavigationDriverTest() override {}
16
17 void SetUp() override {
18 sessions::ContentSerializedNavigationDriver::SetInstance(
19 ChromeSerializedNavigationDriver::GetInstance());
20 }
21
22 void TearDown() override {
23 sessions::ContentSerializedNavigationDriver::SetInstance(nullptr);
24 }
25
26 private:
27 DISALLOW_COPY_AND_ASSIGN(ChromeSerializedNavigationDriverTest);
28 };
29
30 // Tests that the input data is left unsanitized when the referrer policy is
31 // Always.
32 TEST_F(ChromeSerializedNavigationDriverTest, SanitizeWithReferrerPolicyAlways) {
33 sessions::ContentSerializedNavigationDriver* driver =
34 sessions::ContentSerializedNavigationDriver::GetInstance();
35 sessions::SerializedNavigationEntry navigation =
36 sessions::SerializedNavigationEntryTestHelper::CreateNavigationForTest();
37 sessions::SerializedNavigationEntryTestHelper::SetReferrerPolicy(
38 blink::WebReferrerPolicyAlways, &navigation);
39
40 content::PageState page_state =
41 content::PageState::CreateFromURL(sessions::test_data::kVirtualURL);
42 sessions::SerializedNavigationEntryTestHelper::SetEncodedPageState(
43 page_state.ToEncodedData(), &navigation);
44
45 driver->Sanitize(&navigation);
46 EXPECT_EQ(sessions::test_data::kIndex, navigation.index());
47 EXPECT_EQ(sessions::test_data::kUniqueID, navigation.unique_id());
48 EXPECT_EQ(sessions::test_data::kReferrerURL, navigation.referrer_url());
49 EXPECT_EQ(blink::WebReferrerPolicyAlways, navigation.referrer_policy());
50 EXPECT_EQ(sessions::test_data::kVirtualURL, navigation.virtual_url());
51 EXPECT_EQ(sessions::test_data::kTitle, navigation.title());
52 EXPECT_EQ(page_state.ToEncodedData(), navigation.encoded_page_state());
53 EXPECT_TRUE(ui::PageTransitionTypeIncludingQualifiersIs(
54 navigation.transition_type(), sessions::test_data::kTransitionType));
55 EXPECT_EQ(sessions::test_data::kHasPostData, navigation.has_post_data());
56 EXPECT_EQ(sessions::test_data::kPostID, navigation.post_id());
57 EXPECT_EQ(sessions::test_data::kOriginalRequestURL,
58 navigation.original_request_url());
59 EXPECT_EQ(sessions::test_data::kIsOverridingUserAgent,
60 navigation.is_overriding_user_agent());
61 EXPECT_EQ(sessions::test_data::kTimestamp, navigation.timestamp());
62 EXPECT_EQ(sessions::test_data::kSearchTerms, navigation.search_terms());
63 EXPECT_EQ(sessions::test_data::kFaviconURL, navigation.favicon_url());
64 EXPECT_EQ(sessions::test_data::kHttpStatusCode,
65 navigation.http_status_code());
66 }
67
68 // Tests that the input data is properly sanitized when the referrer policy is
69 // Never.
70 TEST_F(ChromeSerializedNavigationDriverTest, SanitizeWithReferrerPolicyNever) {
71 sessions::ContentSerializedNavigationDriver* driver =
72 sessions::ContentSerializedNavigationDriver::GetInstance();
73 sessions::SerializedNavigationEntry navigation =
74 sessions::SerializedNavigationEntryTestHelper::CreateNavigationForTest();
75 sessions::SerializedNavigationEntryTestHelper::SetReferrerPolicy(
76 blink::WebReferrerPolicyNever, &navigation);
77
78 content::PageState page_state =
79 content::PageState::CreateFromURL(sessions::test_data::kVirtualURL);
80 sessions::SerializedNavigationEntryTestHelper::SetEncodedPageState(
81 page_state.ToEncodedData(), &navigation);
82
83 driver->Sanitize(&navigation);
84
85 // Fields that should remain untouched.
86 EXPECT_EQ(sessions::test_data::kIndex, navigation.index());
87 EXPECT_EQ(sessions::test_data::kUniqueID, navigation.unique_id());
88 EXPECT_EQ(sessions::test_data::kVirtualURL, navigation.virtual_url());
89 EXPECT_EQ(sessions::test_data::kTitle, navigation.title());
90 EXPECT_TRUE(ui::PageTransitionTypeIncludingQualifiersIs(
91 navigation.transition_type(), sessions::test_data::kTransitionType));
92 EXPECT_EQ(sessions::test_data::kHasPostData, navigation.has_post_data());
93 EXPECT_EQ(sessions::test_data::kPostID, navigation.post_id());
94 EXPECT_EQ(sessions::test_data::kOriginalRequestURL,
95 navigation.original_request_url());
96 EXPECT_EQ(sessions::test_data::kIsOverridingUserAgent,
97 navigation.is_overriding_user_agent());
98 EXPECT_EQ(sessions::test_data::kTimestamp, navigation.timestamp());
99 EXPECT_EQ(sessions::test_data::kSearchTerms, navigation.search_terms());
100 EXPECT_EQ(sessions::test_data::kFaviconURL, navigation.favicon_url());
101 EXPECT_EQ(sessions::test_data::kHttpStatusCode,
102 navigation.http_status_code());
103
104 // Fields that were sanitized.
105 EXPECT_EQ(GURL(), navigation.referrer_url());
106 EXPECT_EQ(blink::WebReferrerPolicyDefault, navigation.referrer_policy());
107 EXPECT_EQ(page_state.ToEncodedData(), navigation.encoded_page_state());
108 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698