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

Unified Diff: chrome/browser/sessions/session_common_utils_unittest.cc

Issue 2759333002: Move chrome-specific SerializedNavigation code to chrome/. (Closed)
Patch Set: Rebase, 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/sessions/session_common_utils_unittest.cc
diff --git a/chrome/browser/sessions/session_common_utils_unittest.cc b/chrome/browser/sessions/session_common_utils_unittest.cc
index 94b2a0cc84972c0ae5c8162dd1f99d54db2cfd0a..d9a02ec4988478d86e9da9e62a6b446b1dcaa3ba 100644
--- a/chrome/browser/sessions/session_common_utils_unittest.cc
+++ b/chrome/browser/sessions/session_common_utils_unittest.cc
@@ -7,10 +7,15 @@
#include <memory>
#include "components/sessions/content/content_serialized_navigation_builder.h"
+#include "components/sessions/content/content_serialized_navigation_driver.h"
#include "components/sessions/core/serialized_navigation_entry.h"
+#include "components/sessions/core/serialized_navigation_entry_test_helper.h"
#include "components/sessions/core/session_types.h"
#include "content/public/browser/navigation_entry.h"
+#include "content/public/common/page_state.h"
#include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/WebKit/public/platform/WebReferrerPolicy.h"
+#include "ui/base/page_transition_types.h"
namespace {
@@ -22,6 +27,7 @@ void AppendNavigations(sessions::SessionTab* tab,
}
} // namespace
+
class SessionCommonUtilTest : public ::testing::Test {};
TEST_F(SessionCommonUtilTest, GetSelectedIndex) {
@@ -44,3 +50,87 @@ TEST_F(SessionCommonUtilTest, GetSelectedIndex) {
tab.current_navigation_index = 1;
ASSERT_EQ(0, GetNavigationIndexToSelect(tab));
}
+
+// Tests that the input data is left unsanitized when the referrer policy is
+// Always.
+TEST_F(SessionCommonUtilTest, SanitizeWithReferrerPolicyAlways) {
+ sessions::SerializedNavigationDriver::SetSanitizeCallback(
+ base::Bind(&SanitizeNavigation));
+ sessions::ContentSerializedNavigationDriver* driver =
+ sessions::ContentSerializedNavigationDriver::GetInstance();
+ sessions::SerializedNavigationEntry navigation =
+ sessions::SerializedNavigationEntryTestHelper::CreateNavigationForTest();
+ sessions::SerializedNavigationEntryTestHelper::SetReferrerPolicy(
+ blink::WebReferrerPolicyAlways, &navigation);
+
+ content::PageState page_state =
+ content::PageState::CreateFromURL(sessions::test_data::kVirtualURL);
+ sessions::SerializedNavigationEntryTestHelper::SetEncodedPageState(
+ page_state.ToEncodedData(), &navigation);
+
+ driver->Sanitize(&navigation);
+ EXPECT_EQ(sessions::test_data::kIndex, navigation.index());
+ EXPECT_EQ(sessions::test_data::kUniqueID, navigation.unique_id());
+ EXPECT_EQ(sessions::test_data::kReferrerURL, navigation.referrer_url());
+ EXPECT_EQ(blink::WebReferrerPolicyAlways, navigation.referrer_policy());
+ EXPECT_EQ(sessions::test_data::kVirtualURL, navigation.virtual_url());
+ EXPECT_EQ(sessions::test_data::kTitle, navigation.title());
+ EXPECT_EQ(page_state.ToEncodedData(), navigation.encoded_page_state());
+ EXPECT_TRUE(ui::PageTransitionTypeIncludingQualifiersIs(
+ navigation.transition_type(), sessions::test_data::kTransitionType));
+ EXPECT_EQ(sessions::test_data::kHasPostData, navigation.has_post_data());
+ EXPECT_EQ(sessions::test_data::kPostID, navigation.post_id());
+ EXPECT_EQ(sessions::test_data::kOriginalRequestURL,
+ navigation.original_request_url());
+ EXPECT_EQ(sessions::test_data::kIsOverridingUserAgent,
+ navigation.is_overriding_user_agent());
+ EXPECT_EQ(sessions::test_data::kTimestamp, navigation.timestamp());
+ EXPECT_EQ(sessions::test_data::kSearchTerms, navigation.search_terms());
+ EXPECT_EQ(sessions::test_data::kFaviconURL, navigation.favicon_url());
+ EXPECT_EQ(sessions::test_data::kHttpStatusCode,
+ navigation.http_status_code());
+}
+
+// Tests that the input data is properly sanitized when the referrer policy is
+// Never.
+TEST_F(SessionCommonUtilTest, SanitizeWithReferrerPolicyNever) {
+ sessions::SerializedNavigationDriver::SetSanitizeCallback(
+ base::Bind(&SanitizeNavigation));
+ sessions::ContentSerializedNavigationDriver* driver =
+ sessions::ContentSerializedNavigationDriver::GetInstance();
+ sessions::SerializedNavigationEntry navigation =
+ sessions::SerializedNavigationEntryTestHelper::CreateNavigationForTest();
+ sessions::SerializedNavigationEntryTestHelper::SetReferrerPolicy(
+ blink::WebReferrerPolicyNever, &navigation);
+
+ content::PageState page_state =
+ content::PageState::CreateFromURL(sessions::test_data::kVirtualURL);
+ sessions::SerializedNavigationEntryTestHelper::SetEncodedPageState(
+ page_state.ToEncodedData(), &navigation);
+
+ driver->Sanitize(&navigation);
+
+ // Fields that should remain untouched.
+ EXPECT_EQ(sessions::test_data::kIndex, navigation.index());
+ EXPECT_EQ(sessions::test_data::kUniqueID, navigation.unique_id());
+ EXPECT_EQ(sessions::test_data::kVirtualURL, navigation.virtual_url());
+ EXPECT_EQ(sessions::test_data::kTitle, navigation.title());
+ EXPECT_TRUE(ui::PageTransitionTypeIncludingQualifiersIs(
+ navigation.transition_type(), sessions::test_data::kTransitionType));
+ EXPECT_EQ(sessions::test_data::kHasPostData, navigation.has_post_data());
+ EXPECT_EQ(sessions::test_data::kPostID, navigation.post_id());
+ EXPECT_EQ(sessions::test_data::kOriginalRequestURL,
+ navigation.original_request_url());
+ EXPECT_EQ(sessions::test_data::kIsOverridingUserAgent,
+ navigation.is_overriding_user_agent());
+ EXPECT_EQ(sessions::test_data::kTimestamp, navigation.timestamp());
+ EXPECT_EQ(sessions::test_data::kSearchTerms, navigation.search_terms());
+ EXPECT_EQ(sessions::test_data::kFaviconURL, navigation.favicon_url());
+ EXPECT_EQ(sessions::test_data::kHttpStatusCode,
+ navigation.http_status_code());
+
+ // Fields that were sanitized.
+ EXPECT_EQ(GURL(), navigation.referrer_url());
+ EXPECT_EQ(blink::WebReferrerPolicyDefault, navigation.referrer_policy());
+ EXPECT_EQ(page_state.ToEncodedData(), navigation.encoded_page_state());
+}

Powered by Google App Engine
This is Rietveld 408576698