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

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

Issue 8956059: Rename NavigationController to NavigationControllerImpl and put it into the content namespace. Al... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 8 years, 11 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.h"
9 #include "content/browser/tab_contents/navigation_entry.h"
10 #include "content/public/browser/ssl_status.h"
11 #include "testing/gtest/include/gtest/gtest.h"
12
13 using content::SSLStatus;
14
15 class NavigationEntryTest : public testing::Test {
16 public:
17 NavigationEntryTest() : instance_(NULL) {
18 }
19
20 virtual void SetUp() {
21 entry1_.reset(new NavigationEntry);
22
23 instance_ = SiteInstance::CreateSiteInstance(NULL);
24 entry2_.reset(new NavigationEntry(
25 instance_, 3,
26 GURL("test:url"),
27 content::Referrer(GURL("from"), WebKit::WebReferrerPolicyDefault),
28 ASCIIToUTF16("title"),
29 content::PAGE_TRANSITION_TYPED,
30 false));
31 }
32
33 virtual void TearDown() {
34 }
35
36 protected:
37 scoped_ptr<NavigationEntry> entry1_;
38 scoped_ptr<NavigationEntry> entry2_;
39 // SiteInstances are deleted when their NavigationEntries are gone.
40 SiteInstance* 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(content::SECURITY_STYLE_UNKNOWN,
105 entry1_.get()->GetSSL().security_style);
106 EXPECT_EQ(content::SECURITY_STYLE_UNKNOWN,
107 entry2_.get()->GetSSL().security_style);
108 EXPECT_EQ(0, entry1_.get()->GetSSL().cert_id);
109 EXPECT_EQ(0U, entry1_.get()->GetSSL().cert_status);
110 EXPECT_EQ(-1, entry1_.get()->GetSSL().security_bits);
111 int content_status = entry1_.get()->GetSSL().content_status;
112 EXPECT_FALSE(!!(content_status & SSLStatus::DISPLAYED_INSECURE_CONTENT));
113 EXPECT_FALSE(!!(content_status & SSLStatus::RAN_INSECURE_CONTENT));
114 }
115
116 // Test other basic accessors
117 TEST_F(NavigationEntryTest, NavigationEntryAccessors) {
118 // SiteInstance
119 EXPECT_TRUE(entry1_.get()->site_instance() == NULL);
120 EXPECT_EQ(instance_, entry2_.get()->site_instance());
121 entry1_.get()->set_site_instance(instance_);
122 EXPECT_EQ(instance_, entry1_.get()->site_instance());
123
124 // Page type
125 EXPECT_EQ(content::PAGE_TYPE_NORMAL, entry1_.get()->GetPageType());
126 EXPECT_EQ(content::PAGE_TYPE_NORMAL, entry2_.get()->GetPageType());
127 entry2_.get()->set_page_type(content::PAGE_TYPE_INTERSTITIAL);
128 EXPECT_EQ(content::PAGE_TYPE_INTERSTITIAL, entry2_.get()->GetPageType());
129
130 // Referrer
131 EXPECT_EQ(GURL(), entry1_.get()->GetReferrer().url);
132 EXPECT_EQ(GURL("from"), entry2_.get()->GetReferrer().url);
133 entry2_.get()->SetReferrer(
134 content::Referrer(GURL("from2"), WebKit::WebReferrerPolicyDefault));
135 EXPECT_EQ(GURL("from2"), entry2_.get()->GetReferrer().url);
136
137 // Title
138 EXPECT_EQ(string16(), entry1_.get()->GetTitle());
139 EXPECT_EQ(ASCIIToUTF16("title"), entry2_.get()->GetTitle());
140 entry2_.get()->SetTitle(ASCIIToUTF16("title2"));
141 EXPECT_EQ(ASCIIToUTF16("title2"), entry2_.get()->GetTitle());
142
143 // State
144 EXPECT_EQ(std::string(), entry1_.get()->GetContentState());
145 EXPECT_EQ(std::string(), entry2_.get()->GetContentState());
146 entry2_.get()->SetContentState("state");
147 EXPECT_EQ("state", entry2_.get()->GetContentState());
148
149 // Page ID
150 EXPECT_EQ(-1, entry1_.get()->GetPageID());
151 EXPECT_EQ(3, entry2_.get()->GetPageID());
152 entry2_.get()->SetPageID(2);
153 EXPECT_EQ(2, entry2_.get()->GetPageID());
154
155 // Transition type
156 EXPECT_EQ(content::PAGE_TRANSITION_LINK, entry1_.get()->GetTransitionType());
157 EXPECT_EQ(content::PAGE_TRANSITION_TYPED, entry2_.get()->GetTransitionType());
158 entry2_.get()->SetTransitionType(content::PAGE_TRANSITION_RELOAD);
159 EXPECT_EQ(content::PAGE_TRANSITION_RELOAD,
160 entry2_.get()->GetTransitionType());
161
162 // Is renderer initiated
163 EXPECT_FALSE(entry1_.get()->is_renderer_initiated());
164 EXPECT_FALSE(entry2_.get()->is_renderer_initiated());
165 entry2_.get()->set_is_renderer_initiated(true);
166 EXPECT_TRUE(entry2_.get()->is_renderer_initiated());
167
168 // Post Data
169 EXPECT_FALSE(entry1_.get()->GetHasPostData());
170 EXPECT_FALSE(entry2_.get()->GetHasPostData());
171 entry2_.get()->SetHasPostData(true);
172 EXPECT_TRUE(entry2_.get()->GetHasPostData());
173
174 // Restored
175 EXPECT_EQ(NavigationEntry::RESTORE_NONE, entry1_->restore_type());
176 EXPECT_EQ(NavigationEntry::RESTORE_NONE, entry2_->restore_type());
177 entry2_->set_restore_type(NavigationEntry::RESTORE_LAST_SESSION);
178 EXPECT_EQ(NavigationEntry::RESTORE_LAST_SESSION, entry2_->restore_type());
179 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698