| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_impl.h" | 8 #include "content/browser/site_instance_impl.h" |
| 9 #include "content/browser/web_contents/navigation_entry_impl.h" | 9 #include "content/browser/web_contents/navigation_entry_impl.h" |
| 10 #include "content/public/common/ssl_status.h" | 10 #include "content/public/common/ssl_status.h" |
| (...skipping 25 matching lines...) Expand all Loading... |
| 36 protected: | 36 protected: |
| 37 scoped_ptr<NavigationEntryImpl> entry1_; | 37 scoped_ptr<NavigationEntryImpl> entry1_; |
| 38 scoped_ptr<NavigationEntryImpl> entry2_; | 38 scoped_ptr<NavigationEntryImpl> entry2_; |
| 39 // SiteInstances are deleted when their NavigationEntries are gone. | 39 // SiteInstances are deleted when their NavigationEntries are gone. |
| 40 SiteInstanceImpl* instance_; | 40 SiteInstanceImpl* instance_; |
| 41 }; | 41 }; |
| 42 | 42 |
| 43 // Test unique ID accessors | 43 // Test unique ID accessors |
| 44 TEST_F(NavigationEntryTest, NavigationEntryUniqueIDs) { | 44 TEST_F(NavigationEntryTest, NavigationEntryUniqueIDs) { |
| 45 // Two entries should have different IDs by default | 45 // Two entries should have different IDs by default |
| 46 EXPECT_NE(entry1_.get()->GetUniqueID(), entry2_.get()->GetUniqueID()); | 46 EXPECT_NE(entry1_->GetUniqueID(), entry2_->GetUniqueID()); |
| 47 | 47 |
| 48 // Can set an entry to have the same ID as another | 48 // Can set an entry to have the same ID as another |
| 49 entry2_.get()->set_unique_id(entry1_.get()->GetUniqueID()); | 49 entry2_->set_unique_id(entry1_->GetUniqueID()); |
| 50 EXPECT_EQ(entry1_.get()->GetUniqueID(), entry2_.get()->GetUniqueID()); | 50 EXPECT_EQ(entry1_->GetUniqueID(), entry2_->GetUniqueID()); |
| 51 } | 51 } |
| 52 | 52 |
| 53 // Test URL accessors | 53 // Test URL accessors |
| 54 TEST_F(NavigationEntryTest, NavigationEntryURLs) { | 54 TEST_F(NavigationEntryTest, NavigationEntryURLs) { |
| 55 // Start with no virtual_url (even if a url is set) | 55 // Start with no virtual_url (even if a url is set) |
| 56 EXPECT_FALSE(entry1_.get()->has_virtual_url()); | 56 EXPECT_FALSE(entry1_->has_virtual_url()); |
| 57 EXPECT_FALSE(entry2_.get()->has_virtual_url()); | 57 EXPECT_FALSE(entry2_->has_virtual_url()); |
| 58 | 58 |
| 59 EXPECT_EQ(GURL(), entry1_.get()->GetURL()); | 59 EXPECT_EQ(GURL(), entry1_->GetURL()); |
| 60 EXPECT_EQ(GURL(), entry1_.get()->GetVirtualURL()); | 60 EXPECT_EQ(GURL(), entry1_->GetVirtualURL()); |
| 61 EXPECT_TRUE(entry1_.get()->GetTitleForDisplay("").empty()); | 61 EXPECT_TRUE(entry1_->GetTitleForDisplay("").empty()); |
| 62 | 62 |
| 63 // Setting URL affects virtual_url and GetTitleForDisplay | 63 // Setting URL affects virtual_url and GetTitleForDisplay |
| 64 entry1_.get()->SetURL(GURL("http://www.google.com")); | 64 entry1_->SetURL(GURL("http://www.google.com")); |
| 65 EXPECT_EQ(GURL("http://www.google.com"), entry1_.get()->GetURL()); | 65 EXPECT_EQ(GURL("http://www.google.com"), entry1_->GetURL()); |
| 66 EXPECT_EQ(GURL("http://www.google.com"), entry1_.get()->GetVirtualURL()); | 66 EXPECT_EQ(GURL("http://www.google.com"), entry1_->GetVirtualURL()); |
| 67 EXPECT_EQ(ASCIIToUTF16("www.google.com"), | 67 EXPECT_EQ(ASCIIToUTF16("www.google.com"), |
| 68 entry1_.get()->GetTitleForDisplay("")); | 68 entry1_->GetTitleForDisplay("")); |
| 69 | 69 |
| 70 // file:/// URLs should only show the filename. | 70 // file:/// URLs should only show the filename. |
| 71 entry1_.get()->SetURL(GURL("file:///foo/bar baz.txt")); | 71 entry1_->SetURL(GURL("file:///foo/bar baz.txt")); |
| 72 EXPECT_EQ(ASCIIToUTF16("bar baz.txt"), | 72 EXPECT_EQ(ASCIIToUTF16("bar baz.txt"), |
| 73 entry1_.get()->GetTitleForDisplay("")); | 73 entry1_->GetTitleForDisplay("")); |
| 74 | 74 |
| 75 // Title affects GetTitleForDisplay | 75 // Title affects GetTitleForDisplay |
| 76 entry1_.get()->SetTitle(ASCIIToUTF16("Google")); | 76 entry1_->SetTitle(ASCIIToUTF16("Google")); |
| 77 EXPECT_EQ(ASCIIToUTF16("Google"), entry1_.get()->GetTitleForDisplay("")); | 77 EXPECT_EQ(ASCIIToUTF16("Google"), entry1_->GetTitleForDisplay("")); |
| 78 | 78 |
| 79 // Setting virtual_url doesn't affect URL | 79 // Setting virtual_url doesn't affect URL |
| 80 entry2_.get()->SetVirtualURL(GURL("display:url")); | 80 entry2_->SetVirtualURL(GURL("display:url")); |
| 81 EXPECT_TRUE(entry2_.get()->has_virtual_url()); | 81 EXPECT_TRUE(entry2_->has_virtual_url()); |
| 82 EXPECT_EQ(GURL("test:url"), entry2_.get()->GetURL()); | 82 EXPECT_EQ(GURL("test:url"), entry2_->GetURL()); |
| 83 EXPECT_EQ(GURL("display:url"), entry2_.get()->GetVirtualURL()); | 83 EXPECT_EQ(GURL("display:url"), entry2_->GetVirtualURL()); |
| 84 | 84 |
| 85 // Having a title set in constructor overrides virtual URL | 85 // Having a title set in constructor overrides virtual URL |
| 86 EXPECT_EQ(ASCIIToUTF16("title"), entry2_.get()->GetTitleForDisplay("")); | 86 EXPECT_EQ(ASCIIToUTF16("title"), entry2_->GetTitleForDisplay("")); |
| 87 | 87 |
| 88 // User typed URL is independent of the others | 88 // User typed URL is independent of the others |
| 89 EXPECT_EQ(GURL(), entry1_.get()->GetUserTypedURL()); | 89 EXPECT_EQ(GURL(), entry1_->GetUserTypedURL()); |
| 90 EXPECT_EQ(GURL(), entry2_.get()->GetUserTypedURL()); | 90 EXPECT_EQ(GURL(), entry2_->GetUserTypedURL()); |
| 91 entry2_.get()->set_user_typed_url(GURL("typedurl")); | 91 entry2_->set_user_typed_url(GURL("typedurl")); |
| 92 EXPECT_EQ(GURL("typedurl"), entry2_.get()->GetUserTypedURL()); | 92 EXPECT_EQ(GURL("typedurl"), entry2_->GetUserTypedURL()); |
| 93 } | 93 } |
| 94 | 94 |
| 95 // Test Favicon inner class construction. | 95 // Test Favicon inner class construction. |
| 96 TEST_F(NavigationEntryTest, NavigationEntryFavicons) { | 96 TEST_F(NavigationEntryTest, NavigationEntryFavicons) { |
| 97 EXPECT_EQ(GURL(), entry1_.get()->GetFavicon().url); | 97 EXPECT_EQ(GURL(), entry1_->GetFavicon().url); |
| 98 EXPECT_FALSE(entry1_.get()->GetFavicon().valid); | 98 EXPECT_FALSE(entry1_->GetFavicon().valid); |
| 99 } | 99 } |
| 100 | 100 |
| 101 // Test SSLStatus inner class | 101 // Test SSLStatus inner class |
| 102 TEST_F(NavigationEntryTest, NavigationEntrySSLStatus) { | 102 TEST_F(NavigationEntryTest, NavigationEntrySSLStatus) { |
| 103 // Default (unknown) | 103 // Default (unknown) |
| 104 EXPECT_EQ(SECURITY_STYLE_UNKNOWN, entry1_.get()->GetSSL().security_style); | 104 EXPECT_EQ(SECURITY_STYLE_UNKNOWN, entry1_->GetSSL().security_style); |
| 105 EXPECT_EQ(SECURITY_STYLE_UNKNOWN, entry2_.get()->GetSSL().security_style); | 105 EXPECT_EQ(SECURITY_STYLE_UNKNOWN, entry2_->GetSSL().security_style); |
| 106 EXPECT_EQ(0, entry1_.get()->GetSSL().cert_id); | 106 EXPECT_EQ(0, entry1_->GetSSL().cert_id); |
| 107 EXPECT_EQ(0U, entry1_.get()->GetSSL().cert_status); | 107 EXPECT_EQ(0U, entry1_->GetSSL().cert_status); |
| 108 EXPECT_EQ(-1, entry1_.get()->GetSSL().security_bits); | 108 EXPECT_EQ(-1, entry1_->GetSSL().security_bits); |
| 109 int content_status = entry1_.get()->GetSSL().content_status; | 109 int content_status = entry1_->GetSSL().content_status; |
| 110 EXPECT_FALSE(!!(content_status & SSLStatus::DISPLAYED_INSECURE_CONTENT)); | 110 EXPECT_FALSE(!!(content_status & SSLStatus::DISPLAYED_INSECURE_CONTENT)); |
| 111 EXPECT_FALSE(!!(content_status & SSLStatus::RAN_INSECURE_CONTENT)); | 111 EXPECT_FALSE(!!(content_status & SSLStatus::RAN_INSECURE_CONTENT)); |
| 112 } | 112 } |
| 113 | 113 |
| 114 // Test other basic accessors | 114 // Test other basic accessors |
| 115 TEST_F(NavigationEntryTest, NavigationEntryAccessors) { | 115 TEST_F(NavigationEntryTest, NavigationEntryAccessors) { |
| 116 // SiteInstance | 116 // SiteInstance |
| 117 EXPECT_TRUE(entry1_.get()->site_instance() == NULL); | 117 EXPECT_TRUE(entry1_->site_instance() == NULL); |
| 118 EXPECT_EQ(instance_, entry2_.get()->site_instance()); | 118 EXPECT_EQ(instance_, entry2_->site_instance()); |
| 119 entry1_.get()->set_site_instance(instance_); | 119 entry1_->set_site_instance(instance_); |
| 120 EXPECT_EQ(instance_, entry1_.get()->site_instance()); | 120 EXPECT_EQ(instance_, entry1_->site_instance()); |
| 121 | 121 |
| 122 // Page type | 122 // Page type |
| 123 EXPECT_EQ(PAGE_TYPE_NORMAL, entry1_.get()->GetPageType()); | 123 EXPECT_EQ(PAGE_TYPE_NORMAL, entry1_->GetPageType()); |
| 124 EXPECT_EQ(PAGE_TYPE_NORMAL, entry2_.get()->GetPageType()); | 124 EXPECT_EQ(PAGE_TYPE_NORMAL, entry2_->GetPageType()); |
| 125 entry2_.get()->set_page_type(PAGE_TYPE_INTERSTITIAL); | 125 entry2_->set_page_type(PAGE_TYPE_INTERSTITIAL); |
| 126 EXPECT_EQ(PAGE_TYPE_INTERSTITIAL, entry2_.get()->GetPageType()); | 126 EXPECT_EQ(PAGE_TYPE_INTERSTITIAL, entry2_->GetPageType()); |
| 127 | 127 |
| 128 // Referrer | 128 // Referrer |
| 129 EXPECT_EQ(GURL(), entry1_.get()->GetReferrer().url); | 129 EXPECT_EQ(GURL(), entry1_->GetReferrer().url); |
| 130 EXPECT_EQ(GURL("from"), entry2_.get()->GetReferrer().url); | 130 EXPECT_EQ(GURL("from"), entry2_->GetReferrer().url); |
| 131 entry2_.get()->SetReferrer( | 131 entry2_->SetReferrer( |
| 132 Referrer(GURL("from2"), WebKit::WebReferrerPolicyDefault)); | 132 Referrer(GURL("from2"), WebKit::WebReferrerPolicyDefault)); |
| 133 EXPECT_EQ(GURL("from2"), entry2_.get()->GetReferrer().url); | 133 EXPECT_EQ(GURL("from2"), entry2_->GetReferrer().url); |
| 134 | 134 |
| 135 // Title | 135 // Title |
| 136 EXPECT_EQ(string16(), entry1_.get()->GetTitle()); | 136 EXPECT_EQ(string16(), entry1_->GetTitle()); |
| 137 EXPECT_EQ(ASCIIToUTF16("title"), entry2_.get()->GetTitle()); | 137 EXPECT_EQ(ASCIIToUTF16("title"), entry2_->GetTitle()); |
| 138 entry2_.get()->SetTitle(ASCIIToUTF16("title2")); | 138 entry2_->SetTitle(ASCIIToUTF16("title2")); |
| 139 EXPECT_EQ(ASCIIToUTF16("title2"), entry2_.get()->GetTitle()); | 139 EXPECT_EQ(ASCIIToUTF16("title2"), entry2_->GetTitle()); |
| 140 | 140 |
| 141 // State | 141 // State |
| 142 EXPECT_EQ(std::string(), entry1_.get()->GetContentState()); | 142 EXPECT_EQ(std::string(), entry1_->GetContentState()); |
| 143 EXPECT_EQ(std::string(), entry2_.get()->GetContentState()); | 143 EXPECT_EQ(std::string(), entry2_->GetContentState()); |
| 144 entry2_.get()->SetContentState("state"); | 144 entry2_->SetContentState("state"); |
| 145 EXPECT_EQ("state", entry2_.get()->GetContentState()); | 145 EXPECT_EQ("state", entry2_->GetContentState()); |
| 146 | 146 |
| 147 // Page ID | 147 // Page ID |
| 148 EXPECT_EQ(-1, entry1_.get()->GetPageID()); | 148 EXPECT_EQ(-1, entry1_->GetPageID()); |
| 149 EXPECT_EQ(3, entry2_.get()->GetPageID()); | 149 EXPECT_EQ(3, entry2_->GetPageID()); |
| 150 entry2_.get()->SetPageID(2); | 150 entry2_->SetPageID(2); |
| 151 EXPECT_EQ(2, entry2_.get()->GetPageID()); | 151 EXPECT_EQ(2, entry2_->GetPageID()); |
| 152 | 152 |
| 153 // Transition type | 153 // Transition type |
| 154 EXPECT_EQ(PAGE_TRANSITION_LINK, entry1_.get()->GetTransitionType()); | 154 EXPECT_EQ(PAGE_TRANSITION_LINK, entry1_->GetTransitionType()); |
| 155 EXPECT_EQ(PAGE_TRANSITION_TYPED, entry2_.get()->GetTransitionType()); | 155 EXPECT_EQ(PAGE_TRANSITION_TYPED, entry2_->GetTransitionType()); |
| 156 entry2_.get()->SetTransitionType(PAGE_TRANSITION_RELOAD); | 156 entry2_->SetTransitionType(PAGE_TRANSITION_RELOAD); |
| 157 EXPECT_EQ(PAGE_TRANSITION_RELOAD, entry2_.get()->GetTransitionType()); | 157 EXPECT_EQ(PAGE_TRANSITION_RELOAD, entry2_->GetTransitionType()); |
| 158 | 158 |
| 159 // Is renderer initiated | 159 // Is renderer initiated |
| 160 EXPECT_FALSE(entry1_.get()->is_renderer_initiated()); | 160 EXPECT_FALSE(entry1_->is_renderer_initiated()); |
| 161 EXPECT_FALSE(entry2_.get()->is_renderer_initiated()); | 161 EXPECT_FALSE(entry2_->is_renderer_initiated()); |
| 162 entry2_.get()->set_is_renderer_initiated(true); | 162 entry2_->set_is_renderer_initiated(true); |
| 163 EXPECT_TRUE(entry2_.get()->is_renderer_initiated()); | 163 EXPECT_TRUE(entry2_->is_renderer_initiated()); |
| 164 | 164 |
| 165 // Post Data | 165 // Post Data |
| 166 EXPECT_FALSE(entry1_.get()->GetHasPostData()); | 166 EXPECT_FALSE(entry1_->GetHasPostData()); |
| 167 EXPECT_FALSE(entry2_.get()->GetHasPostData()); | 167 EXPECT_FALSE(entry2_->GetHasPostData()); |
| 168 entry2_.get()->SetHasPostData(true); | 168 entry2_->SetHasPostData(true); |
| 169 EXPECT_TRUE(entry2_.get()->GetHasPostData()); | 169 EXPECT_TRUE(entry2_->GetHasPostData()); |
| 170 | 170 |
| 171 // Restored | 171 // Restored |
| 172 EXPECT_EQ(NavigationEntryImpl::RESTORE_NONE, entry1_->restore_type()); | 172 EXPECT_EQ(NavigationEntryImpl::RESTORE_NONE, entry1_->restore_type()); |
| 173 EXPECT_EQ(NavigationEntryImpl::RESTORE_NONE, entry2_->restore_type()); | 173 EXPECT_EQ(NavigationEntryImpl::RESTORE_NONE, entry2_->restore_type()); |
| 174 entry2_->set_restore_type(NavigationEntryImpl::RESTORE_LAST_SESSION); | 174 entry2_->set_restore_type(NavigationEntryImpl::RESTORE_LAST_SESSION); |
| 175 EXPECT_EQ(NavigationEntryImpl::RESTORE_LAST_SESSION, entry2_->restore_type()); | 175 EXPECT_EQ(NavigationEntryImpl::RESTORE_LAST_SESSION, entry2_->restore_type()); |
| 176 | 176 |
| 177 // Original URL | 177 // Original URL |
| 178 EXPECT_EQ(GURL(), entry1_.get()->GetOriginalRequestURL()); | 178 EXPECT_EQ(GURL(), entry1_->GetOriginalRequestURL()); |
| 179 EXPECT_EQ(GURL(), entry2_.get()->GetOriginalRequestURL()); | 179 EXPECT_EQ(GURL(), entry2_->GetOriginalRequestURL()); |
| 180 entry2_.get()->SetOriginalRequestURL(GURL("original_url")); | 180 entry2_->SetOriginalRequestURL(GURL("original_url")); |
| 181 EXPECT_EQ(GURL("original_url"), entry2_.get()->GetOriginalRequestURL()); | 181 EXPECT_EQ(GURL("original_url"), entry2_->GetOriginalRequestURL()); |
| 182 | 182 |
| 183 // User agent override | 183 // User agent override |
| 184 EXPECT_FALSE(entry1_.get()->GetIsOverridingUserAgent()); | 184 EXPECT_FALSE(entry1_->GetIsOverridingUserAgent()); |
| 185 EXPECT_FALSE(entry2_.get()->GetIsOverridingUserAgent()); | 185 EXPECT_FALSE(entry2_->GetIsOverridingUserAgent()); |
| 186 entry2_.get()->SetIsOverridingUserAgent(true); | 186 entry2_->SetIsOverridingUserAgent(true); |
| 187 EXPECT_TRUE(entry2_.get()->GetIsOverridingUserAgent()); | 187 EXPECT_TRUE(entry2_->GetIsOverridingUserAgent()); |
| 188 | 188 |
| 189 // Browser initiated post data | 189 // Browser initiated post data |
| 190 EXPECT_EQ(NULL, entry1_.get()->GetBrowserInitiatedPostData()); | 190 EXPECT_EQ(NULL, entry1_->GetBrowserInitiatedPostData()); |
| 191 EXPECT_EQ(NULL, entry2_.get()->GetBrowserInitiatedPostData()); | 191 EXPECT_EQ(NULL, entry2_->GetBrowserInitiatedPostData()); |
| 192 const int length = 11; | 192 const int length = 11; |
| 193 const unsigned char* raw_data = | 193 const unsigned char* raw_data = |
| 194 reinterpret_cast<const unsigned char*>("post\n\n\0data"); | 194 reinterpret_cast<const unsigned char*>("post\n\n\0data"); |
| 195 std::vector<unsigned char> post_data_vector(raw_data, raw_data+length); | 195 std::vector<unsigned char> post_data_vector(raw_data, raw_data+length); |
| 196 scoped_refptr<base::RefCountedBytes> post_data = | 196 scoped_refptr<base::RefCountedBytes> post_data = |
| 197 base::RefCountedBytes::TakeVector(&post_data_vector); | 197 base::RefCountedBytes::TakeVector(&post_data_vector); |
| 198 entry2_.get()->SetBrowserInitiatedPostData(post_data.get()); | 198 entry2_->SetBrowserInitiatedPostData(post_data.get()); |
| 199 EXPECT_EQ(post_data->front(), | 199 EXPECT_EQ(post_data->front(), |
| 200 entry2_.get()->GetBrowserInitiatedPostData()->front()); | 200 entry2_->GetBrowserInitiatedPostData()->front()); |
| 201 } | 201 } |
| 202 | 202 |
| 203 } // namespace content | 203 } // namespace content |
| OLD | NEW |