| Index: components/sessions/content/content_serialized_navigation_builder_unittest.cc
|
| diff --git a/components/sessions/content/content_serialized_navigation_builder_unittest.cc b/components/sessions/content/content_serialized_navigation_builder_unittest.cc
|
| index 54270250af811acff3a4d3c92bcd5901ca12c9cf..5f402982435e72c63e92c029be725b0a11911c3f 100644
|
| --- a/components/sessions/content/content_serialized_navigation_builder_unittest.cc
|
| +++ b/components/sessions/content/content_serialized_navigation_builder_unittest.cc
|
| @@ -4,7 +4,11 @@
|
|
|
| #include "components/sessions/content/content_serialized_navigation_builder.h"
|
|
|
| +#include "base/memory/ptr_util.h"
|
| +#include "base/strings/utf_string_conversions.h"
|
| #include "components/sessions/content/content_record_password_state.h"
|
| +#include "components/sessions/content/content_serialized_navigation_driver.h"
|
| +#include "components/sessions/content/extended_info_handler.h"
|
| #include "components/sessions/core/serialized_navigation_entry.h"
|
| #include "components/sessions/core/serialized_navigation_entry_test_helper.h"
|
| #include "content/public/browser/favicon_status.h"
|
| @@ -16,6 +20,35 @@
|
| namespace sessions {
|
|
|
| namespace {
|
| +
|
| +const char kExtendedInfoKey1[] = "Key 1";
|
| +const char kExtendedInfoValue1[] = "Value 1";
|
| +const char kExtendedInfoKey2[] = "Key 2";
|
| +const char kExtendedInfoValue2[] = "Value 2";
|
| +
|
| +class TestExtendedInfoHandler : public ExtendedInfoHandler {
|
| + public:
|
| + explicit TestExtendedInfoHandler(const std::string& key) : key_(key) {}
|
| + ~TestExtendedInfoHandler() override {}
|
| +
|
| + std::string GetExtendedInfo(
|
| + const content::NavigationEntry& entry) const override {
|
| + base::string16 data;
|
| + entry.GetExtraData(key_, &data);
|
| + return base::UTF16ToASCII(data);
|
| + }
|
| +
|
| + void RestoreExtendedInfo(const std::string& info,
|
| + content::NavigationEntry* entry) override {
|
| + entry->SetExtraData(key_, base::ASCIIToUTF16(info));
|
| + }
|
| +
|
| + private:
|
| + std::string key_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(TestExtendedInfoHandler);
|
| +};
|
| +
|
| // Create a NavigationEntry from the test_data constants in
|
| // serialized_navigation_entry_test_helper.h.
|
| std::unique_ptr<content::NavigationEntry> MakeNavigationEntryForTest() {
|
| @@ -49,6 +82,19 @@ std::unique_ptr<content::NavigationEntry> MakeNavigationEntryForTest() {
|
| return navigation_entry;
|
| }
|
|
|
| +void SetExtendedInfoForTest(content::NavigationEntry* entry) {
|
| + entry->SetExtraData(kExtendedInfoKey1,
|
| + base::ASCIIToUTF16(kExtendedInfoValue1));
|
| + entry->SetExtraData(kExtendedInfoKey2,
|
| + base::ASCIIToUTF16(kExtendedInfoValue2));
|
| + ContentSerializedNavigationDriver::GetInstance()->RegisterExtendedInfoHandler(
|
| + kExtendedInfoKey1, base::WrapUnique<ExtendedInfoHandler>(
|
| + new TestExtendedInfoHandler(kExtendedInfoKey1)));
|
| + ContentSerializedNavigationDriver::GetInstance()->RegisterExtendedInfoHandler(
|
| + kExtendedInfoKey2, base::WrapUnique<ExtendedInfoHandler>(
|
| + new TestExtendedInfoHandler(kExtendedInfoKey2)));
|
| +}
|
| +
|
| } // namespace
|
|
|
|
|
| @@ -57,6 +103,7 @@ std::unique_ptr<content::NavigationEntry> MakeNavigationEntryForTest() {
|
| TEST(ContentSerializedNavigationBuilderTest, FromNavigationEntry) {
|
| const std::unique_ptr<content::NavigationEntry> navigation_entry(
|
| MakeNavigationEntryForTest());
|
| + SetExtendedInfoForTest(navigation_entry.get());
|
|
|
| const SerializedNavigationEntry& navigation =
|
| ContentSerializedNavigationBuilder::FromNavigationEntry(
|
| @@ -85,6 +132,14 @@ TEST(ContentSerializedNavigationBuilderTest, FromNavigationEntry) {
|
| EXPECT_EQ(test_data::kRedirectURL1, navigation.redirect_chain()[1]);
|
| EXPECT_EQ(test_data::kVirtualURL, navigation.redirect_chain()[2]);
|
| EXPECT_EQ(test_data::kPasswordState, navigation.password_state());
|
| +
|
| + ASSERT_EQ(2U, navigation.extended_info_map().size());
|
| + ASSERT_EQ(1U, navigation.extended_info_map().count(kExtendedInfoKey1));
|
| + EXPECT_EQ(kExtendedInfoValue1,
|
| + navigation.extended_info_map().at(kExtendedInfoKey1));
|
| + ASSERT_EQ(1U, navigation.extended_info_map().count(kExtendedInfoKey2));
|
| + EXPECT_EQ(kExtendedInfoValue2,
|
| + navigation.extended_info_map().at(kExtendedInfoKey2));
|
| }
|
|
|
| // Create a NavigationEntry, then create another one by converting to
|
| @@ -94,6 +149,7 @@ TEST(ContentSerializedNavigationBuilderTest, FromNavigationEntry) {
|
| TEST(ContentSerializedNavigationBuilderTest, ToNavigationEntry) {
|
| const std::unique_ptr<content::NavigationEntry> old_navigation_entry(
|
| MakeNavigationEntryForTest());
|
| + SetExtendedInfoForTest(old_navigation_entry.get());
|
|
|
| const SerializedNavigationEntry& navigation =
|
| ContentSerializedNavigationBuilder::FromNavigationEntry(
|
| @@ -131,6 +187,14 @@ TEST(ContentSerializedNavigationBuilderTest, ToNavigationEntry) {
|
| new_navigation_entry->GetRedirectChain()[1]);
|
| EXPECT_EQ(test_data::kVirtualURL,
|
| new_navigation_entry->GetRedirectChain()[2]);
|
| +
|
| + base::string16 extra_data;
|
| + EXPECT_TRUE(
|
| + new_navigation_entry->GetExtraData(kExtendedInfoKey1, &extra_data));
|
| + EXPECT_EQ(kExtendedInfoValue1, base::UTF16ToASCII(extra_data));
|
| + EXPECT_TRUE(
|
| + new_navigation_entry->GetExtraData(kExtendedInfoKey2, &extra_data));
|
| + EXPECT_EQ(kExtendedInfoValue2, base::UTF16ToASCII(extra_data));
|
| }
|
|
|
| TEST(ContentSerializedNavigationBuilderTest, SetPasswordState) {
|
|
|