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

Side by Side Diff: content/browser/tab_contents/navigation_entry_impl_unittest.cc

Issue 9960071: TabContents -> WebContentsImpl, part 3. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 8 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 | Annotate | Revision Log
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "base/string16.h"
6 #include "base/string_util.h"
7 #include "base/utf_string_conversions.h"
8 #include "content/browser/site_instance_impl.h"
9 #include "content/browser/tab_contents/navigation_entry_impl.h"
10 #include "content/public/common/ssl_status.h"
11 #include "testing/gtest/include/gtest/gtest.h"
12
13 namespace content {
14
15 class NavigationEntryTest : public testing::Test {
16 public:
17 NavigationEntryTest() : instance_(NULL) {
18 }
19
20 virtual void SetUp() {
21 entry1_.reset(new NavigationEntryImpl);
22
23 instance_ = static_cast<SiteInstanceImpl*>(SiteInstance::Create(NULL));
24 entry2_.reset(new NavigationEntryImpl(
25 instance_, 3,
26 GURL("test:url"),
27 Referrer(GURL("from"), WebKit::WebReferrerPolicyDefault),
28 ASCIIToUTF16("title"),
29 PAGE_TRANSITION_TYPED,
30 false));
31 }
32
33 virtual void TearDown() {
34 }
35
36 protected:
37 scoped_ptr<NavigationEntryImpl> entry1_;
38 scoped_ptr<NavigationEntryImpl> entry2_;
39 // SiteInstances are deleted when their NavigationEntries are gone.
40 SiteInstanceImpl* instance_;
41 };
42
43 // Test unique ID accessors
44 TEST_F(NavigationEntryTest, NavigationEntryUniqueIDs) {
45 // Two entries should have different IDs by default
46 EXPECT_NE(entry1_.get()->GetUniqueID(), entry2_.get()->GetUniqueID());
47
48 // Can set an entry to have the same ID as another
49 entry2_.get()->set_unique_id(entry1_.get()->GetUniqueID());
50 EXPECT_EQ(entry1_.get()->GetUniqueID(), entry2_.get()->GetUniqueID());
51 }
52
53 // Test URL accessors
54 TEST_F(NavigationEntryTest, NavigationEntryURLs) {
55 // Start with no virtual_url (even if a url is set)
56 EXPECT_FALSE(entry1_.get()->has_virtual_url());
57 EXPECT_FALSE(entry2_.get()->has_virtual_url());
58
59 EXPECT_EQ(GURL(), entry1_.get()->GetURL());
60 EXPECT_EQ(GURL(), entry1_.get()->GetVirtualURL());
61 EXPECT_TRUE(entry1_.get()->GetTitleForDisplay("").empty());
62
63 // Setting URL affects virtual_url and GetTitleForDisplay
64 entry1_.get()->SetURL(GURL("http://www.google.com"));
65 EXPECT_EQ(GURL("http://www.google.com"), entry1_.get()->GetURL());
66 EXPECT_EQ(GURL("http://www.google.com"), entry1_.get()->GetVirtualURL());
67 EXPECT_EQ(ASCIIToUTF16("www.google.com"),
68 entry1_.get()->GetTitleForDisplay(""));
69
70 // file:/// URLs should only show the filename.
71 entry1_.get()->SetURL(GURL("file:///foo/bar baz.txt"));
72 EXPECT_EQ(ASCIIToUTF16("bar baz.txt"),
73 entry1_.get()->GetTitleForDisplay(""));
74
75 // Title affects GetTitleForDisplay
76 entry1_.get()->SetTitle(ASCIIToUTF16("Google"));
77 EXPECT_EQ(ASCIIToUTF16("Google"), entry1_.get()->GetTitleForDisplay(""));
78
79 // Setting virtual_url doesn't affect URL
80 entry2_.get()->SetVirtualURL(GURL("display:url"));
81 EXPECT_TRUE(entry2_.get()->has_virtual_url());
82 EXPECT_EQ(GURL("test:url"), entry2_.get()->GetURL());
83 EXPECT_EQ(GURL("display:url"), entry2_.get()->GetVirtualURL());
84
85 // Having a title set in constructor overrides virtual URL
86 EXPECT_EQ(ASCIIToUTF16("title"), entry2_.get()->GetTitleForDisplay(""));
87
88 // User typed URL is independent of the others
89 EXPECT_EQ(GURL(), entry1_.get()->GetUserTypedURL());
90 EXPECT_EQ(GURL(), entry2_.get()->GetUserTypedURL());
91 entry2_.get()->set_user_typed_url(GURL("typedurl"));
92 EXPECT_EQ(GURL("typedurl"), entry2_.get()->GetUserTypedURL());
93 }
94
95 // Test Favicon inner class construction.
96 TEST_F(NavigationEntryTest, NavigationEntryFavicons) {
97 EXPECT_EQ(GURL(), entry1_.get()->GetFavicon().url);
98 EXPECT_FALSE(entry1_.get()->GetFavicon().valid);
99 }
100
101 // Test SSLStatus inner class
102 TEST_F(NavigationEntryTest, NavigationEntrySSLStatus) {
103 // Default (unknown)
104 EXPECT_EQ(SECURITY_STYLE_UNKNOWN, entry1_.get()->GetSSL().security_style);
105 EXPECT_EQ(SECURITY_STYLE_UNKNOWN, entry2_.get()->GetSSL().security_style);
106 EXPECT_EQ(0, entry1_.get()->GetSSL().cert_id);
107 EXPECT_EQ(0U, entry1_.get()->GetSSL().cert_status);
108 EXPECT_EQ(-1, entry1_.get()->GetSSL().security_bits);
109 int content_status = entry1_.get()->GetSSL().content_status;
110 EXPECT_FALSE(!!(content_status & SSLStatus::DISPLAYED_INSECURE_CONTENT));
111 EXPECT_FALSE(!!(content_status & SSLStatus::RAN_INSECURE_CONTENT));
112 }
113
114 // Test other basic accessors
115 TEST_F(NavigationEntryTest, NavigationEntryAccessors) {
116 // SiteInstance
117 EXPECT_TRUE(entry1_.get()->site_instance() == NULL);
118 EXPECT_EQ(instance_, entry2_.get()->site_instance());
119 entry1_.get()->set_site_instance(instance_);
120 EXPECT_EQ(instance_, entry1_.get()->site_instance());
121
122 // Page type
123 EXPECT_EQ(PAGE_TYPE_NORMAL, entry1_.get()->GetPageType());
124 EXPECT_EQ(PAGE_TYPE_NORMAL, entry2_.get()->GetPageType());
125 entry2_.get()->set_page_type(PAGE_TYPE_INTERSTITIAL);
126 EXPECT_EQ(PAGE_TYPE_INTERSTITIAL, entry2_.get()->GetPageType());
127
128 // Referrer
129 EXPECT_EQ(GURL(), entry1_.get()->GetReferrer().url);
130 EXPECT_EQ(GURL("from"), entry2_.get()->GetReferrer().url);
131 entry2_.get()->SetReferrer(
132 Referrer(GURL("from2"), WebKit::WebReferrerPolicyDefault));
133 EXPECT_EQ(GURL("from2"), entry2_.get()->GetReferrer().url);
134
135 // Title
136 EXPECT_EQ(string16(), entry1_.get()->GetTitle());
137 EXPECT_EQ(ASCIIToUTF16("title"), entry2_.get()->GetTitle());
138 entry2_.get()->SetTitle(ASCIIToUTF16("title2"));
139 EXPECT_EQ(ASCIIToUTF16("title2"), entry2_.get()->GetTitle());
140
141 // State
142 EXPECT_EQ(std::string(), entry1_.get()->GetContentState());
143 EXPECT_EQ(std::string(), entry2_.get()->GetContentState());
144 entry2_.get()->SetContentState("state");
145 EXPECT_EQ("state", entry2_.get()->GetContentState());
146
147 // Page ID
148 EXPECT_EQ(-1, entry1_.get()->GetPageID());
149 EXPECT_EQ(3, entry2_.get()->GetPageID());
150 entry2_.get()->SetPageID(2);
151 EXPECT_EQ(2, entry2_.get()->GetPageID());
152
153 // Transition type
154 EXPECT_EQ(PAGE_TRANSITION_LINK, entry1_.get()->GetTransitionType());
155 EXPECT_EQ(PAGE_TRANSITION_TYPED, entry2_.get()->GetTransitionType());
156 entry2_.get()->SetTransitionType(PAGE_TRANSITION_RELOAD);
157 EXPECT_EQ(PAGE_TRANSITION_RELOAD, entry2_.get()->GetTransitionType());
158
159 // Is renderer initiated
160 EXPECT_FALSE(entry1_.get()->is_renderer_initiated());
161 EXPECT_FALSE(entry2_.get()->is_renderer_initiated());
162 entry2_.get()->set_is_renderer_initiated(true);
163 EXPECT_TRUE(entry2_.get()->is_renderer_initiated());
164
165 // Post Data
166 EXPECT_FALSE(entry1_.get()->GetHasPostData());
167 EXPECT_FALSE(entry2_.get()->GetHasPostData());
168 entry2_.get()->SetHasPostData(true);
169 EXPECT_TRUE(entry2_.get()->GetHasPostData());
170
171 // Restored
172 EXPECT_EQ(NavigationEntryImpl::RESTORE_NONE, entry1_->restore_type());
173 EXPECT_EQ(NavigationEntryImpl::RESTORE_NONE, entry2_->restore_type());
174 entry2_->set_restore_type(NavigationEntryImpl::RESTORE_LAST_SESSION);
175 EXPECT_EQ(NavigationEntryImpl::RESTORE_LAST_SESSION, entry2_->restore_type());
176 }
177
178 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/tab_contents/navigation_entry_impl.cc ('k') | content/browser/tab_contents/render_view_host_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698