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

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

Issue 6537015: Start moving core pieces of Chrome multi-process code to src\content. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 10 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) 2010 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 "chrome/browser/renderer_host/site_instance.h"
9 #include "chrome/browser/tab_contents/navigation_entry.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11
12 class NavigationEntryTest : public testing::Test {
13 public:
14 NavigationEntryTest() : instance_(NULL) {
15 }
16
17 virtual void SetUp() {
18 entry1_.reset(new NavigationEntry);
19
20 instance_ = SiteInstance::CreateSiteInstance(NULL);
21 entry2_.reset(new NavigationEntry(instance_, 3,
22 GURL("test:url"),
23 GURL("from"),
24 ASCIIToUTF16("title"),
25 PageTransition::TYPED));
26 }
27
28 virtual void TearDown() {
29 }
30
31 protected:
32 scoped_ptr<NavigationEntry> entry1_;
33 scoped_ptr<NavigationEntry> entry2_;
34 // SiteInstances are deleted when their NavigationEntries are gone.
35 SiteInstance* instance_;
36 };
37
38 // Test unique ID accessors
39 TEST_F(NavigationEntryTest, NavigationEntryUniqueIDs) {
40 // Two entries should have different IDs by default
41 EXPECT_NE(entry1_.get()->unique_id(), entry2_.get()->unique_id());
42
43 // Can set an entry to have the same ID as another
44 entry2_.get()->set_unique_id(entry1_.get()->unique_id());
45 EXPECT_EQ(entry1_.get()->unique_id(), entry2_.get()->unique_id());
46 }
47
48 // Test URL accessors
49 TEST_F(NavigationEntryTest, NavigationEntryURLs) {
50 // Start with no virtual_url (even if a url is set)
51 EXPECT_FALSE(entry1_.get()->has_virtual_url());
52 EXPECT_FALSE(entry2_.get()->has_virtual_url());
53
54 EXPECT_EQ(GURL(), entry1_.get()->url());
55 EXPECT_EQ(GURL(), entry1_.get()->virtual_url());
56 EXPECT_TRUE(entry1_.get()->GetTitleForDisplay("").empty());
57
58 // Setting URL affects virtual_url and GetTitleForDisplay
59 entry1_.get()->set_url(GURL("http://www.google.com"));
60 EXPECT_EQ(GURL("http://www.google.com"), entry1_.get()->url());
61 EXPECT_EQ(GURL("http://www.google.com"), entry1_.get()->virtual_url());
62 EXPECT_EQ(ASCIIToUTF16("www.google.com"),
63 entry1_.get()->GetTitleForDisplay(""));
64
65 // Title affects GetTitleForDisplay
66 entry1_.get()->set_title(ASCIIToUTF16("Google"));
67 EXPECT_EQ(ASCIIToUTF16("Google"), entry1_.get()->GetTitleForDisplay(""));
68
69 // Setting virtual_url doesn't affect URL
70 entry2_.get()->set_virtual_url(GURL("display:url"));
71 EXPECT_TRUE(entry2_.get()->has_virtual_url());
72 EXPECT_EQ(GURL("test:url"), entry2_.get()->url());
73 EXPECT_EQ(GURL("display:url"), entry2_.get()->virtual_url());
74
75 // Having a title set in constructor overrides virtual URL
76 EXPECT_EQ(ASCIIToUTF16("title"), entry2_.get()->GetTitleForDisplay(""));
77
78 // User typed URL is independent of the others
79 EXPECT_EQ(GURL(), entry1_.get()->user_typed_url());
80 EXPECT_EQ(GURL(), entry2_.get()->user_typed_url());
81 entry2_.get()->set_user_typed_url(GURL("typedurl"));
82 EXPECT_EQ(GURL("typedurl"), entry2_.get()->user_typed_url());
83 }
84
85 // Test Favicon inner class
86 TEST_F(NavigationEntryTest, NavigationEntryFavicons) {
87 EXPECT_EQ(GURL(), entry1_.get()->favicon().url());
88 entry1_.get()->favicon().set_url(GURL("icon"));
89 EXPECT_EQ(GURL("icon"), entry1_.get()->favicon().url());
90
91 // Validity not affected by setting URL
92 EXPECT_FALSE(entry1_.get()->favicon().is_valid());
93 entry1_.get()->favicon().set_is_valid(true);
94 EXPECT_TRUE(entry1_.get()->favicon().is_valid());
95 }
96
97 // Test SSLStatus inner class
98 TEST_F(NavigationEntryTest, NavigationEntrySSLStatus) {
99 // Default (unknown)
100 EXPECT_EQ(SECURITY_STYLE_UNKNOWN, entry1_.get()->ssl().security_style());
101 EXPECT_EQ(SECURITY_STYLE_UNKNOWN, entry2_.get()->ssl().security_style());
102 EXPECT_EQ(0, entry1_.get()->ssl().cert_id());
103 EXPECT_EQ(0, entry1_.get()->ssl().cert_status());
104 EXPECT_EQ(-1, entry1_.get()->ssl().security_bits());
105 EXPECT_FALSE(entry1_.get()->ssl().displayed_insecure_content());
106 EXPECT_FALSE(entry1_.get()->ssl().ran_insecure_content());
107
108 // Change from the defaults
109 entry2_.get()->ssl().set_security_style(SECURITY_STYLE_AUTHENTICATED);
110 entry2_.get()->ssl().set_cert_id(4);
111 entry2_.get()->ssl().set_cert_status(1);
112 entry2_.get()->ssl().set_security_bits(0);
113 entry2_.get()->ssl().set_displayed_insecure_content();
114 EXPECT_EQ(SECURITY_STYLE_AUTHENTICATED,
115 entry2_.get()->ssl().security_style());
116 EXPECT_EQ(4, entry2_.get()->ssl().cert_id());
117 EXPECT_EQ(1, entry2_.get()->ssl().cert_status());
118 EXPECT_EQ(0, entry2_.get()->ssl().security_bits());
119 EXPECT_TRUE(entry2_.get()->ssl().displayed_insecure_content());
120
121 entry2_.get()->ssl().set_security_style(SECURITY_STYLE_AUTHENTICATION_BROKEN);
122 entry2_.get()->ssl().set_ran_insecure_content();
123 EXPECT_EQ(SECURITY_STYLE_AUTHENTICATION_BROKEN,
124 entry2_.get()->ssl().security_style());
125 EXPECT_TRUE(entry2_.get()->ssl().ran_insecure_content());
126 }
127
128 // Test other basic accessors
129 TEST_F(NavigationEntryTest, NavigationEntryAccessors) {
130 // SiteInstance
131 EXPECT_TRUE(entry1_.get()->site_instance() == NULL);
132 EXPECT_EQ(instance_, entry2_.get()->site_instance());
133 entry1_.get()->set_site_instance(instance_);
134 EXPECT_EQ(instance_, entry1_.get()->site_instance());
135
136 // Page type
137 EXPECT_EQ(NORMAL_PAGE, entry1_.get()->page_type());
138 EXPECT_EQ(NORMAL_PAGE, entry2_.get()->page_type());
139 entry2_.get()->set_page_type(INTERSTITIAL_PAGE);
140 EXPECT_EQ(INTERSTITIAL_PAGE, entry2_.get()->page_type());
141
142 // Referrer
143 EXPECT_EQ(GURL(), entry1_.get()->referrer());
144 EXPECT_EQ(GURL("from"), entry2_.get()->referrer());
145 entry2_.get()->set_referrer(GURL("from2"));
146 EXPECT_EQ(GURL("from2"), entry2_.get()->referrer());
147
148 // Title
149 EXPECT_EQ(string16(), entry1_.get()->title());
150 EXPECT_EQ(ASCIIToUTF16("title"), entry2_.get()->title());
151 entry2_.get()->set_title(ASCIIToUTF16("title2"));
152 EXPECT_EQ(ASCIIToUTF16("title2"), entry2_.get()->title());
153
154 // State
155 EXPECT_EQ(std::string(), entry1_.get()->content_state());
156 EXPECT_EQ(std::string(), entry2_.get()->content_state());
157 entry2_.get()->set_content_state("state");
158 EXPECT_EQ("state", entry2_.get()->content_state());
159
160 // Page ID
161 EXPECT_EQ(-1, entry1_.get()->page_id());
162 EXPECT_EQ(3, entry2_.get()->page_id());
163 entry2_.get()->set_page_id(2);
164 EXPECT_EQ(2, entry2_.get()->page_id());
165
166 // Transition type
167 EXPECT_EQ(PageTransition::LINK, entry1_.get()->transition_type());
168 EXPECT_EQ(PageTransition::TYPED, entry2_.get()->transition_type());
169 entry2_.get()->set_transition_type(PageTransition::RELOAD);
170 EXPECT_EQ(PageTransition::RELOAD, entry2_.get()->transition_type());
171
172 // Post Data
173 EXPECT_FALSE(entry1_.get()->has_post_data());
174 EXPECT_FALSE(entry2_.get()->has_post_data());
175 entry2_.get()->set_has_post_data(true);
176 EXPECT_TRUE(entry2_.get()->has_post_data());
177
178 // Restored
179 EXPECT_EQ(NavigationEntry::RESTORE_NONE, entry1_->restore_type());
180 EXPECT_EQ(NavigationEntry::RESTORE_NONE, entry2_->restore_type());
181 entry2_->set_restore_type(NavigationEntry::RESTORE_LAST_SESSION);
182 EXPECT_EQ(NavigationEntry::RESTORE_LAST_SESSION, entry2_->restore_type());
183 }
OLDNEW
« no previous file with comments | « chrome/browser/tab_contents/navigation_entry.cc ('k') | chrome/browser/tab_contents/page_navigator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698