| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "base/string16.h" | 5 #include "base/string16.h" |
| 6 #include "base/string_util.h" | 6 #include "base/string_util.h" |
| 7 #include "base/utf_string_conversions.h" | 7 #include "base/utf_string_conversions.h" |
| 8 #include "content/browser/site_instance.h" | 8 #include "content/browser/site_instance.h" |
| 9 #include "content/browser/tab_contents/navigation_entry.h" | 9 #include "content/browser/tab_contents/navigation_entry.h" |
| 10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
| 11 | 11 |
| 12 class NavigationEntryTest : public testing::Test { | 12 class NavigationEntryTest : public testing::Test { |
| 13 public: | 13 public: |
| 14 NavigationEntryTest() : instance_(NULL) { | 14 NavigationEntryTest() : instance_(NULL) { |
| 15 } | 15 } |
| 16 | 16 |
| 17 virtual void SetUp() { | 17 virtual void SetUp() { |
| 18 entry1_.reset(new NavigationEntry); | 18 entry1_.reset(new NavigationEntry); |
| 19 | 19 |
| 20 instance_ = SiteInstance::CreateSiteInstance(NULL); | 20 instance_ = SiteInstance::CreateSiteInstance(NULL); |
| 21 entry2_.reset(new NavigationEntry( | 21 entry2_.reset(new NavigationEntry(instance_, 3, |
| 22 instance_, 3, | 22 GURL("test:url"), |
| 23 GURL("test:url"), | 23 GURL("from"), |
| 24 GURL("from"), | 24 ASCIIToUTF16("title"), |
| 25 base::i18n::String16WithDirection(ASCIIToUTF16("title"), | 25 PageTransition::TYPED)); |
| 26 base::i18n::LEFT_TO_RIGHT), | |
| 27 PageTransition::TYPED)); | |
| 28 } | 26 } |
| 29 | 27 |
| 30 virtual void TearDown() { | 28 virtual void TearDown() { |
| 31 } | 29 } |
| 32 | 30 |
| 33 protected: | 31 protected: |
| 34 scoped_ptr<NavigationEntry> entry1_; | 32 scoped_ptr<NavigationEntry> entry1_; |
| 35 scoped_ptr<NavigationEntry> entry2_; | 33 scoped_ptr<NavigationEntry> entry2_; |
| 36 // SiteInstances are deleted when their NavigationEntries are gone. | 34 // SiteInstances are deleted when their NavigationEntries are gone. |
| 37 SiteInstance* instance_; | 35 SiteInstance* instance_; |
| (...skipping 10 matching lines...) Expand all Loading... |
| 48 } | 46 } |
| 49 | 47 |
| 50 // Test URL accessors | 48 // Test URL accessors |
| 51 TEST_F(NavigationEntryTest, NavigationEntryURLs) { | 49 TEST_F(NavigationEntryTest, NavigationEntryURLs) { |
| 52 // Start with no virtual_url (even if a url is set) | 50 // Start with no virtual_url (even if a url is set) |
| 53 EXPECT_FALSE(entry1_.get()->has_virtual_url()); | 51 EXPECT_FALSE(entry1_.get()->has_virtual_url()); |
| 54 EXPECT_FALSE(entry2_.get()->has_virtual_url()); | 52 EXPECT_FALSE(entry2_.get()->has_virtual_url()); |
| 55 | 53 |
| 56 EXPECT_EQ(GURL(), entry1_.get()->url()); | 54 EXPECT_EQ(GURL(), entry1_.get()->url()); |
| 57 EXPECT_EQ(GURL(), entry1_.get()->virtual_url()); | 55 EXPECT_EQ(GURL(), entry1_.get()->virtual_url()); |
| 58 EXPECT_TRUE(entry1_.get()->GetTitleForDisplay("").is_empty()); | 56 EXPECT_TRUE(entry1_.get()->GetTitleForDisplay("").empty()); |
| 59 | 57 |
| 60 // Setting URL affects virtual_url and GetTitleForDisplay | 58 // Setting URL affects virtual_url and GetTitleForDisplay |
| 61 entry1_.get()->set_url(GURL("http://www.google.com")); | 59 entry1_.get()->set_url(GURL("http://www.google.com")); |
| 62 EXPECT_EQ(GURL("http://www.google.com"), entry1_.get()->url()); | 60 EXPECT_EQ(GURL("http://www.google.com"), entry1_.get()->url()); |
| 63 EXPECT_EQ(GURL("http://www.google.com"), entry1_.get()->virtual_url()); | 61 EXPECT_EQ(GURL("http://www.google.com"), entry1_.get()->virtual_url()); |
| 64 EXPECT_EQ(ASCIIToUTF16("www.google.com"), | 62 EXPECT_EQ(ASCIIToUTF16("www.google.com"), |
| 65 entry1_.get()->GetTitleForDisplay("").string()); | 63 entry1_.get()->GetTitleForDisplay("")); |
| 66 | 64 |
| 67 // file:/// URLs should only show the filename. | 65 // file:/// URLs should only show the filename. |
| 68 entry1_.get()->set_url(GURL("file:///foo/bar baz.txt")); | 66 entry1_.get()->set_url(GURL("file:///foo/bar baz.txt")); |
| 69 EXPECT_EQ(ASCIIToUTF16("bar baz.txt"), | 67 EXPECT_EQ(ASCIIToUTF16("bar baz.txt"), |
| 70 entry1_.get()->GetTitleForDisplay("").string()); | 68 entry1_.get()->GetTitleForDisplay("")); |
| 71 | 69 |
| 72 // Title affects GetTitleForDisplay | 70 // Title affects GetTitleForDisplay |
| 73 entry1_.get()->set_title( | 71 entry1_.get()->set_title(ASCIIToUTF16("Google")); |
| 74 base::i18n::String16WithDirection(ASCIIToUTF16("Google"), | 72 EXPECT_EQ(ASCIIToUTF16("Google"), entry1_.get()->GetTitleForDisplay("")); |
| 75 base::i18n::LEFT_TO_RIGHT)); | |
| 76 EXPECT_EQ(ASCIIToUTF16("Google"), | |
| 77 entry1_.get()->GetTitleForDisplay("").string()); | |
| 78 | 73 |
| 79 // Setting virtual_url doesn't affect URL | 74 // Setting virtual_url doesn't affect URL |
| 80 entry2_.get()->set_virtual_url(GURL("display:url")); | 75 entry2_.get()->set_virtual_url(GURL("display:url")); |
| 81 EXPECT_TRUE(entry2_.get()->has_virtual_url()); | 76 EXPECT_TRUE(entry2_.get()->has_virtual_url()); |
| 82 EXPECT_EQ(GURL("test:url"), entry2_.get()->url()); | 77 EXPECT_EQ(GURL("test:url"), entry2_.get()->url()); |
| 83 EXPECT_EQ(GURL("display:url"), entry2_.get()->virtual_url()); | 78 EXPECT_EQ(GURL("display:url"), entry2_.get()->virtual_url()); |
| 84 | 79 |
| 85 // Having a title set in constructor overrides virtual URL | 80 // Having a title set in constructor overrides virtual URL |
| 86 EXPECT_EQ(ASCIIToUTF16("title"), | 81 EXPECT_EQ(ASCIIToUTF16("title"), entry2_.get()->GetTitleForDisplay("")); |
| 87 entry2_.get()->GetTitleForDisplay("").string()); | |
| 88 | 82 |
| 89 // User typed URL is independent of the others | 83 // User typed URL is independent of the others |
| 90 EXPECT_EQ(GURL(), entry1_.get()->user_typed_url()); | 84 EXPECT_EQ(GURL(), entry1_.get()->user_typed_url()); |
| 91 EXPECT_EQ(GURL(), entry2_.get()->user_typed_url()); | 85 EXPECT_EQ(GURL(), entry2_.get()->user_typed_url()); |
| 92 entry2_.get()->set_user_typed_url(GURL("typedurl")); | 86 entry2_.get()->set_user_typed_url(GURL("typedurl")); |
| 93 EXPECT_EQ(GURL("typedurl"), entry2_.get()->user_typed_url()); | 87 EXPECT_EQ(GURL("typedurl"), entry2_.get()->user_typed_url()); |
| 94 } | 88 } |
| 95 | 89 |
| 96 // Test Favicon inner class | 90 // Test Favicon inner class |
| 97 TEST_F(NavigationEntryTest, NavigationEntryFavicons) { | 91 TEST_F(NavigationEntryTest, NavigationEntryFavicons) { |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 150 entry2_.get()->set_page_type(INTERSTITIAL_PAGE); | 144 entry2_.get()->set_page_type(INTERSTITIAL_PAGE); |
| 151 EXPECT_EQ(INTERSTITIAL_PAGE, entry2_.get()->page_type()); | 145 EXPECT_EQ(INTERSTITIAL_PAGE, entry2_.get()->page_type()); |
| 152 | 146 |
| 153 // Referrer | 147 // Referrer |
| 154 EXPECT_EQ(GURL(), entry1_.get()->referrer()); | 148 EXPECT_EQ(GURL(), entry1_.get()->referrer()); |
| 155 EXPECT_EQ(GURL("from"), entry2_.get()->referrer()); | 149 EXPECT_EQ(GURL("from"), entry2_.get()->referrer()); |
| 156 entry2_.get()->set_referrer(GURL("from2")); | 150 entry2_.get()->set_referrer(GURL("from2")); |
| 157 EXPECT_EQ(GURL("from2"), entry2_.get()->referrer()); | 151 EXPECT_EQ(GURL("from2"), entry2_.get()->referrer()); |
| 158 | 152 |
| 159 // Title | 153 // Title |
| 160 EXPECT_EQ(string16(), entry1_.get()->title().string()); | 154 EXPECT_EQ(string16(), entry1_.get()->title()); |
| 161 EXPECT_EQ(ASCIIToUTF16("title"), entry2_.get()->title().string()); | 155 EXPECT_EQ(ASCIIToUTF16("title"), entry2_.get()->title()); |
| 162 entry2_.get()->set_title( | 156 entry2_.get()->set_title(ASCIIToUTF16("title2")); |
| 163 base::i18n::String16WithDirection(ASCIIToUTF16("title2"), | 157 EXPECT_EQ(ASCIIToUTF16("title2"), entry2_.get()->title()); |
| 164 base::i18n::LEFT_TO_RIGHT)); | |
| 165 EXPECT_EQ(ASCIIToUTF16("title2"), entry2_.get()->title().string()); | |
| 166 | 158 |
| 167 // State | 159 // State |
| 168 EXPECT_EQ(std::string(), entry1_.get()->content_state()); | 160 EXPECT_EQ(std::string(), entry1_.get()->content_state()); |
| 169 EXPECT_EQ(std::string(), entry2_.get()->content_state()); | 161 EXPECT_EQ(std::string(), entry2_.get()->content_state()); |
| 170 entry2_.get()->set_content_state("state"); | 162 entry2_.get()->set_content_state("state"); |
| 171 EXPECT_EQ("state", entry2_.get()->content_state()); | 163 EXPECT_EQ("state", entry2_.get()->content_state()); |
| 172 | 164 |
| 173 // Page ID | 165 // Page ID |
| 174 EXPECT_EQ(-1, entry1_.get()->page_id()); | 166 EXPECT_EQ(-1, entry1_.get()->page_id()); |
| 175 EXPECT_EQ(3, entry2_.get()->page_id()); | 167 EXPECT_EQ(3, entry2_.get()->page_id()); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 187 EXPECT_FALSE(entry2_.get()->has_post_data()); | 179 EXPECT_FALSE(entry2_.get()->has_post_data()); |
| 188 entry2_.get()->set_has_post_data(true); | 180 entry2_.get()->set_has_post_data(true); |
| 189 EXPECT_TRUE(entry2_.get()->has_post_data()); | 181 EXPECT_TRUE(entry2_.get()->has_post_data()); |
| 190 | 182 |
| 191 // Restored | 183 // Restored |
| 192 EXPECT_EQ(NavigationEntry::RESTORE_NONE, entry1_->restore_type()); | 184 EXPECT_EQ(NavigationEntry::RESTORE_NONE, entry1_->restore_type()); |
| 193 EXPECT_EQ(NavigationEntry::RESTORE_NONE, entry2_->restore_type()); | 185 EXPECT_EQ(NavigationEntry::RESTORE_NONE, entry2_->restore_type()); |
| 194 entry2_->set_restore_type(NavigationEntry::RESTORE_LAST_SESSION); | 186 entry2_->set_restore_type(NavigationEntry::RESTORE_LAST_SESSION); |
| 195 EXPECT_EQ(NavigationEntry::RESTORE_LAST_SESSION, entry2_->restore_type()); | 187 EXPECT_EQ(NavigationEntry::RESTORE_LAST_SESSION, entry2_->restore_type()); |
| 196 } | 188 } |
| OLD | NEW |