| 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 <gtk/gtk.h> | 5 #include <gtk/gtk.h> |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/string_util.h" | 9 #include "base/string_util.h" |
| 10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 94 | 94 |
| 95 // Children of the synced node. | 95 // Children of the synced node. |
| 96 model_->AddURL(model_->synced_node(), 0, ASCIIToUTF16("sa"), | 96 model_->AddURL(model_->synced_node(), 0, ASCIIToUTF16("sa"), |
| 97 GURL(test_base + "sa")); | 97 GURL(test_base + "sa")); |
| 98 } | 98 } |
| 99 }; | 99 }; |
| 100 | 100 |
| 101 // Makes sure the tree model matches that of the bookmark bar model. | 101 // Makes sure the tree model matches that of the bookmark bar model. |
| 102 TEST_F(BookmarkEditorGtkTest, ModelsMatch) { | 102 TEST_F(BookmarkEditorGtkTest, ModelsMatch) { |
| 103 BookmarkEditorGtk editor(NULL, profile_.get(), NULL, | 103 BookmarkEditorGtk editor(NULL, profile_.get(), NULL, |
| 104 BookmarkEditor::EditDetails(), | 104 BookmarkEditor::EditDetails::AddNodeInFolder(NULL), |
| 105 BookmarkEditor::SHOW_TREE); | 105 BookmarkEditor::SHOW_TREE); |
| 106 | 106 |
| 107 // The root should have two or three children, one for the bookmark bar node, | 107 // The root should have two or three children, one for the bookmark bar node, |
| 108 // another for the 'other bookmarks' folder, and depending on the visib | 108 // another for the 'other bookmarks' folder, and depending on the visib |
| 109 GtkTreeModel* store = GTK_TREE_MODEL(editor.tree_store_); | 109 GtkTreeModel* store = GTK_TREE_MODEL(editor.tree_store_); |
| 110 GtkTreeIter toplevel; | 110 GtkTreeIter toplevel; |
| 111 ASSERT_TRUE(gtk_tree_model_get_iter_first(store, &toplevel)); | 111 ASSERT_TRUE(gtk_tree_model_get_iter_first(store, &toplevel)); |
| 112 GtkTreeIter bookmark_bar_node = toplevel; | 112 GtkTreeIter bookmark_bar_node = toplevel; |
| 113 ASSERT_TRUE(gtk_tree_model_iter_next(store, &toplevel)); | 113 ASSERT_TRUE(gtk_tree_model_iter_next(store, &toplevel)); |
| 114 GtkTreeIter other_node = toplevel; | 114 GtkTreeIter other_node = toplevel; |
| (...skipping 26 matching lines...) Expand all Loading... |
| 141 // Other node should have one child (OF1). | 141 // Other node should have one child (OF1). |
| 142 ASSERT_EQ(1, gtk_tree_model_iter_n_children(store, &other_node)); | 142 ASSERT_EQ(1, gtk_tree_model_iter_n_children(store, &other_node)); |
| 143 ASSERT_TRUE(gtk_tree_model_iter_children(store, &child, &other_node)); | 143 ASSERT_TRUE(gtk_tree_model_iter_children(store, &child, &other_node)); |
| 144 ASSERT_EQ("OF1", UTF16ToUTF8(GetTitleFromTreeIter(store, &child))); | 144 ASSERT_EQ("OF1", UTF16ToUTF8(GetTitleFromTreeIter(store, &child))); |
| 145 ASSERT_FALSE(gtk_tree_model_iter_next(store, &child)); | 145 ASSERT_FALSE(gtk_tree_model_iter_next(store, &child)); |
| 146 } | 146 } |
| 147 | 147 |
| 148 // Changes the title and makes sure parent/visual order doesn't change. | 148 // Changes the title and makes sure parent/visual order doesn't change. |
| 149 TEST_F(BookmarkEditorGtkTest, EditTitleKeepsPosition) { | 149 TEST_F(BookmarkEditorGtkTest, EditTitleKeepsPosition) { |
| 150 BookmarkEditorGtk editor(NULL, profile_.get(), NULL, | 150 BookmarkEditorGtk editor(NULL, profile_.get(), NULL, |
| 151 BookmarkEditor::EditDetails(GetNode("a")), | 151 BookmarkEditor::EditDetails::EditNode(GetNode("a")), |
| 152 BookmarkEditor::SHOW_TREE); | 152 BookmarkEditor::SHOW_TREE); |
| 153 gtk_entry_set_text(GTK_ENTRY(editor.name_entry_), "new_a"); | 153 gtk_entry_set_text(GTK_ENTRY(editor.name_entry_), "new_a"); |
| 154 | 154 |
| 155 GtkTreeIter bookmark_bar_node; | 155 GtkTreeIter bookmark_bar_node; |
| 156 GtkTreeModel* store = GTK_TREE_MODEL(editor.tree_store_); | 156 GtkTreeModel* store = GTK_TREE_MODEL(editor.tree_store_); |
| 157 ASSERT_TRUE(gtk_tree_model_get_iter_first(store, &bookmark_bar_node)); | 157 ASSERT_TRUE(gtk_tree_model_get_iter_first(store, &bookmark_bar_node)); |
| 158 editor.ApplyEdits(&bookmark_bar_node); | 158 editor.ApplyEdits(&bookmark_bar_node); |
| 159 | 159 |
| 160 const BookmarkNode* bb_node = | 160 const BookmarkNode* bb_node = |
| 161 profile_->GetBookmarkModel()->bookmark_bar_node(); | 161 profile_->GetBookmarkModel()->bookmark_bar_node(); |
| 162 ASSERT_EQ(ASCIIToUTF16("new_a"), bb_node->GetChild(0)->GetTitle()); | 162 ASSERT_EQ(ASCIIToUTF16("new_a"), bb_node->GetChild(0)->GetTitle()); |
| 163 // The URL shouldn't have changed. | 163 // The URL shouldn't have changed. |
| 164 ASSERT_TRUE(GURL(base_path() + "a") == bb_node->GetChild(0)->url()); | 164 ASSERT_TRUE(GURL(base_path() + "a") == bb_node->GetChild(0)->url()); |
| 165 } | 165 } |
| 166 | 166 |
| 167 // Changes the url and makes sure parent/visual order doesn't change. | 167 // Changes the url and makes sure parent/visual order doesn't change. |
| 168 TEST_F(BookmarkEditorGtkTest, EditURLKeepsPosition) { | 168 TEST_F(BookmarkEditorGtkTest, EditURLKeepsPosition) { |
| 169 Time node_time = GetNode("a")->date_added(); | 169 Time node_time = GetNode("a")->date_added(); |
| 170 BookmarkEditorGtk editor(NULL, profile_.get(), NULL, | 170 BookmarkEditorGtk editor(NULL, profile_.get(), NULL, |
| 171 BookmarkEditor::EditDetails(GetNode("a")), | 171 BookmarkEditor::EditDetails::EditNode(GetNode("a")), |
| 172 BookmarkEditor::SHOW_TREE); | 172 BookmarkEditor::SHOW_TREE); |
| 173 gtk_entry_set_text(GTK_ENTRY(editor.url_entry_), | 173 gtk_entry_set_text(GTK_ENTRY(editor.url_entry_), |
| 174 GURL(base_path() + "new_a").spec().c_str()); | 174 GURL(base_path() + "new_a").spec().c_str()); |
| 175 | 175 |
| 176 GtkTreeIter bookmark_bar_node; | 176 GtkTreeIter bookmark_bar_node; |
| 177 GtkTreeModel* store = GTK_TREE_MODEL(editor.tree_store_); | 177 GtkTreeModel* store = GTK_TREE_MODEL(editor.tree_store_); |
| 178 ASSERT_TRUE(gtk_tree_model_get_iter_first(store, &bookmark_bar_node)); | 178 ASSERT_TRUE(gtk_tree_model_get_iter_first(store, &bookmark_bar_node)); |
| 179 editor.ApplyEdits(&bookmark_bar_node); | 179 editor.ApplyEdits(&bookmark_bar_node); |
| 180 | 180 |
| 181 const BookmarkNode* bb_node = | 181 const BookmarkNode* bb_node = |
| 182 profile_->GetBookmarkModel()->bookmark_bar_node(); | 182 profile_->GetBookmarkModel()->bookmark_bar_node(); |
| 183 ASSERT_EQ(ASCIIToUTF16("a"), bb_node->GetChild(0)->GetTitle()); | 183 ASSERT_EQ(ASCIIToUTF16("a"), bb_node->GetChild(0)->GetTitle()); |
| 184 // The URL should have changed. | 184 // The URL should have changed. |
| 185 ASSERT_TRUE(GURL(base_path() + "new_a") == bb_node->GetChild(0)->url()); | 185 ASSERT_TRUE(GURL(base_path() + "new_a") == bb_node->GetChild(0)->url()); |
| 186 ASSERT_TRUE(node_time == bb_node->GetChild(0)->date_added()); | 186 ASSERT_TRUE(node_time == bb_node->GetChild(0)->date_added()); |
| 187 } | 187 } |
| 188 | 188 |
| 189 // Moves 'a' to be a child of the other node. | 189 // Moves 'a' to be a child of the other node. |
| 190 TEST_F(BookmarkEditorGtkTest, ChangeParent) { | 190 TEST_F(BookmarkEditorGtkTest, ChangeParent) { |
| 191 BookmarkEditorGtk editor(NULL, profile_.get(), NULL, | 191 BookmarkEditorGtk editor(NULL, profile_.get(), NULL, |
| 192 BookmarkEditor::EditDetails(GetNode("a")), | 192 BookmarkEditor::EditDetails::EditNode(GetNode("a")), |
| 193 BookmarkEditor::SHOW_TREE); | 193 BookmarkEditor::SHOW_TREE); |
| 194 | 194 |
| 195 GtkTreeModel* store = GTK_TREE_MODEL(editor.tree_store_); | 195 GtkTreeModel* store = GTK_TREE_MODEL(editor.tree_store_); |
| 196 GtkTreeIter gtk_other_node; | 196 GtkTreeIter gtk_other_node; |
| 197 ASSERT_TRUE(gtk_tree_model_get_iter_first(store, >k_other_node)); | 197 ASSERT_TRUE(gtk_tree_model_get_iter_first(store, >k_other_node)); |
| 198 ASSERT_TRUE(gtk_tree_model_iter_next(store, >k_other_node)); | 198 ASSERT_TRUE(gtk_tree_model_iter_next(store, >k_other_node)); |
| 199 editor.ApplyEdits(>k_other_node); | 199 editor.ApplyEdits(>k_other_node); |
| 200 | 200 |
| 201 const BookmarkNode* other_node = profile_->GetBookmarkModel()->other_node(); | 201 const BookmarkNode* other_node = profile_->GetBookmarkModel()->other_node(); |
| 202 ASSERT_EQ(ASCIIToUTF16("a"), other_node->GetChild(2)->GetTitle()); | 202 ASSERT_EQ(ASCIIToUTF16("a"), other_node->GetChild(2)->GetTitle()); |
| 203 ASSERT_TRUE(GURL(base_path() + "a") == other_node->GetChild(2)->url()); | 203 ASSERT_TRUE(GURL(base_path() + "a") == other_node->GetChild(2)->url()); |
| 204 } | 204 } |
| 205 | 205 |
| 206 // Moves 'a' to be a child of the other node. | 206 // Moves 'a' to be a child of the other node. |
| 207 // Moves 'a' to be a child of the other node and changes its url to new_a. | 207 // Moves 'a' to be a child of the other node and changes its url to new_a. |
| 208 TEST_F(BookmarkEditorGtkTest, ChangeParentAndURL) { | 208 TEST_F(BookmarkEditorGtkTest, ChangeParentAndURL) { |
| 209 Time node_time = GetNode("a")->date_added(); | 209 Time node_time = GetNode("a")->date_added(); |
| 210 BookmarkEditorGtk editor(NULL, profile_.get(), NULL, | 210 BookmarkEditorGtk editor(NULL, profile_.get(), NULL, |
| 211 BookmarkEditor::EditDetails(GetNode("a")), | 211 BookmarkEditor::EditDetails::EditNode(GetNode("a")), |
| 212 BookmarkEditor::SHOW_TREE); | 212 BookmarkEditor::SHOW_TREE); |
| 213 | 213 |
| 214 gtk_entry_set_text(GTK_ENTRY(editor.url_entry_), | 214 gtk_entry_set_text(GTK_ENTRY(editor.url_entry_), |
| 215 GURL(base_path() + "new_a").spec().c_str()); | 215 GURL(base_path() + "new_a").spec().c_str()); |
| 216 | 216 |
| 217 GtkTreeModel* store = GTK_TREE_MODEL(editor.tree_store_); | 217 GtkTreeModel* store = GTK_TREE_MODEL(editor.tree_store_); |
| 218 GtkTreeIter gtk_other_node; | 218 GtkTreeIter gtk_other_node; |
| 219 ASSERT_TRUE(gtk_tree_model_get_iter_first(store, >k_other_node)); | 219 ASSERT_TRUE(gtk_tree_model_get_iter_first(store, >k_other_node)); |
| 220 ASSERT_TRUE(gtk_tree_model_iter_next(store, >k_other_node)); | 220 ASSERT_TRUE(gtk_tree_model_iter_next(store, >k_other_node)); |
| 221 editor.ApplyEdits(>k_other_node); | 221 editor.ApplyEdits(>k_other_node); |
| 222 | 222 |
| 223 const BookmarkNode* other_node = profile_->GetBookmarkModel()->other_node(); | 223 const BookmarkNode* other_node = profile_->GetBookmarkModel()->other_node(); |
| 224 ASSERT_EQ(ASCIIToUTF16("a"), other_node->GetChild(2)->GetTitle()); | 224 ASSERT_EQ(ASCIIToUTF16("a"), other_node->GetChild(2)->GetTitle()); |
| 225 ASSERT_TRUE(GURL(base_path() + "new_a") == other_node->GetChild(2)->url()); | 225 ASSERT_TRUE(GURL(base_path() + "new_a") == other_node->GetChild(2)->url()); |
| 226 ASSERT_TRUE(node_time == other_node->GetChild(2)->date_added()); | 226 ASSERT_TRUE(node_time == other_node->GetChild(2)->date_added()); |
| 227 } | 227 } |
| 228 | 228 |
| 229 // Creates a new folder and moves a node to it. | 229 // Creates a new folder and moves a node to it. |
| 230 TEST_F(BookmarkEditorGtkTest, MoveToNewParent) { | 230 TEST_F(BookmarkEditorGtkTest, MoveToNewParent) { |
| 231 BookmarkEditorGtk editor(NULL, profile_.get(), NULL, | 231 BookmarkEditorGtk editor(NULL, profile_.get(), NULL, |
| 232 BookmarkEditor::EditDetails(GetNode("a")), | 232 BookmarkEditor::EditDetails::EditNode(GetNode("a")), |
| 233 BookmarkEditor::SHOW_TREE); | 233 BookmarkEditor::SHOW_TREE); |
| 234 | 234 |
| 235 GtkTreeIter bookmark_bar_node; | 235 GtkTreeIter bookmark_bar_node; |
| 236 GtkTreeModel* store = GTK_TREE_MODEL(editor.tree_store_); | 236 GtkTreeModel* store = GTK_TREE_MODEL(editor.tree_store_); |
| 237 ASSERT_TRUE(gtk_tree_model_get_iter_first(store, &bookmark_bar_node)); | 237 ASSERT_TRUE(gtk_tree_model_get_iter_first(store, &bookmark_bar_node)); |
| 238 | 238 |
| 239 // The bookmark bar should have 2 nodes: folder F1 and F2. | 239 // The bookmark bar should have 2 nodes: folder F1 and F2. |
| 240 GtkTreeIter f2_iter; | 240 GtkTreeIter f2_iter; |
| 241 ASSERT_EQ(2, gtk_tree_model_iter_n_children(store, &bookmark_bar_node)); | 241 ASSERT_EQ(2, gtk_tree_model_iter_n_children(store, &bookmark_bar_node)); |
| 242 ASSERT_TRUE(gtk_tree_model_iter_children(store, &f2_iter, | 242 ASSERT_TRUE(gtk_tree_model_iter_children(store, &f2_iter, |
| (...skipping 27 matching lines...) Expand all Loading... |
| 270 | 270 |
| 271 // F21 should have one child, F211. | 271 // F21 should have one child, F211. |
| 272 const BookmarkNode* mf21 = mf2->GetChild(0); | 272 const BookmarkNode* mf21 = mf2->GetChild(0); |
| 273 ASSERT_EQ(1, mf21->child_count()); | 273 ASSERT_EQ(1, mf21->child_count()); |
| 274 ASSERT_EQ(ASCIIToUTF16("F211"), mf21->GetChild(0)->GetTitle()); | 274 ASSERT_EQ(ASCIIToUTF16("F211"), mf21->GetChild(0)->GetTitle()); |
| 275 } | 275 } |
| 276 | 276 |
| 277 // Brings up the editor, creating a new URL on the bookmark bar. | 277 // Brings up the editor, creating a new URL on the bookmark bar. |
| 278 TEST_F(BookmarkEditorGtkTest, NewURL) { | 278 TEST_F(BookmarkEditorGtkTest, NewURL) { |
| 279 BookmarkEditorGtk editor(NULL, profile_.get(), NULL, | 279 BookmarkEditorGtk editor(NULL, profile_.get(), NULL, |
| 280 BookmarkEditor::EditDetails(), | 280 BookmarkEditor::EditDetails::AddNodeInFolder(NULL), |
| 281 BookmarkEditor::SHOW_TREE); | 281 BookmarkEditor::SHOW_TREE); |
| 282 | 282 |
| 283 gtk_entry_set_text(GTK_ENTRY(editor.url_entry_), | 283 gtk_entry_set_text(GTK_ENTRY(editor.url_entry_), |
| 284 GURL(base_path() + "a").spec().c_str()); | 284 GURL(base_path() + "a").spec().c_str()); |
| 285 gtk_entry_set_text(GTK_ENTRY(editor.name_entry_), "new_a"); | 285 gtk_entry_set_text(GTK_ENTRY(editor.name_entry_), "new_a"); |
| 286 | 286 |
| 287 GtkTreeIter bookmark_bar_node; | 287 GtkTreeIter bookmark_bar_node; |
| 288 GtkTreeModel* store = GTK_TREE_MODEL(editor.tree_store_); | 288 GtkTreeModel* store = GTK_TREE_MODEL(editor.tree_store_); |
| 289 ASSERT_TRUE(gtk_tree_model_get_iter_first(store, &bookmark_bar_node)); | 289 ASSERT_TRUE(gtk_tree_model_get_iter_first(store, &bookmark_bar_node)); |
| 290 editor.ApplyEdits(&bookmark_bar_node); | 290 editor.ApplyEdits(&bookmark_bar_node); |
| 291 | 291 |
| 292 const BookmarkNode* bb_node = | 292 const BookmarkNode* bb_node = |
| 293 profile_->GetBookmarkModel()->bookmark_bar_node(); | 293 profile_->GetBookmarkModel()->bookmark_bar_node(); |
| 294 ASSERT_EQ(4, bb_node->child_count()); | 294 ASSERT_EQ(4, bb_node->child_count()); |
| 295 | 295 |
| 296 const BookmarkNode* new_node = bb_node->GetChild(3); | 296 const BookmarkNode* new_node = bb_node->GetChild(3); |
| 297 EXPECT_EQ(ASCIIToUTF16("new_a"), new_node->GetTitle()); | 297 EXPECT_EQ(ASCIIToUTF16("new_a"), new_node->GetTitle()); |
| 298 EXPECT_TRUE(GURL(base_path() + "a") == new_node->url()); | 298 EXPECT_TRUE(GURL(base_path() + "a") == new_node->url()); |
| 299 } | 299 } |
| 300 | 300 |
| 301 // Brings up the editor with no tree and modifies the url. | 301 // Brings up the editor with no tree and modifies the url. |
| 302 TEST_F(BookmarkEditorGtkTest, ChangeURLNoTree) { | 302 TEST_F(BookmarkEditorGtkTest, ChangeURLNoTree) { |
| 303 BookmarkEditorGtk editor(NULL, profile_.get(), NULL, | 303 BookmarkEditorGtk editor(NULL, profile_.get(), NULL, |
| 304 BookmarkEditor::EditDetails( | 304 BookmarkEditor::EditDetails::EditNode( |
| 305 model_->other_node()->GetChild(0)), | 305 model_->other_node()->GetChild(0)), |
| 306 BookmarkEditor::NO_TREE); | 306 BookmarkEditor::NO_TREE); |
| 307 | 307 |
| 308 gtk_entry_set_text(GTK_ENTRY(editor.url_entry_), | 308 gtk_entry_set_text(GTK_ENTRY(editor.url_entry_), |
| 309 GURL(base_path() + "a").spec().c_str()); | 309 GURL(base_path() + "a").spec().c_str()); |
| 310 gtk_entry_set_text(GTK_ENTRY(editor.name_entry_), "new_a"); | 310 gtk_entry_set_text(GTK_ENTRY(editor.name_entry_), "new_a"); |
| 311 | 311 |
| 312 editor.ApplyEdits(NULL); | 312 editor.ApplyEdits(NULL); |
| 313 | 313 |
| 314 const BookmarkNode* other_node = profile_->GetBookmarkModel()->other_node(); | 314 const BookmarkNode* other_node = profile_->GetBookmarkModel()->other_node(); |
| 315 ASSERT_EQ(2, other_node->child_count()); | 315 ASSERT_EQ(2, other_node->child_count()); |
| 316 | 316 |
| 317 const BookmarkNode* new_node = other_node->GetChild(0); | 317 const BookmarkNode* new_node = other_node->GetChild(0); |
| 318 | 318 |
| 319 EXPECT_EQ(ASCIIToUTF16("new_a"), new_node->GetTitle()); | 319 EXPECT_EQ(ASCIIToUTF16("new_a"), new_node->GetTitle()); |
| 320 EXPECT_TRUE(GURL(base_path() + "a") == new_node->url()); | 320 EXPECT_TRUE(GURL(base_path() + "a") == new_node->url()); |
| 321 } | 321 } |
| 322 | 322 |
| 323 // Brings up the editor with no tree and modifies only the title. | 323 // Brings up the editor with no tree and modifies only the title. |
| 324 TEST_F(BookmarkEditorGtkTest, ChangeTitleNoTree) { | 324 TEST_F(BookmarkEditorGtkTest, ChangeTitleNoTree) { |
| 325 BookmarkEditorGtk editor(NULL, profile_.get(), NULL, | 325 BookmarkEditorGtk editor(NULL, profile_.get(), NULL, |
| 326 BookmarkEditor::EditDetails( | 326 BookmarkEditor::EditDetails::EditNode( |
| 327 model_->other_node()->GetChild(0)), | 327 model_->other_node()->GetChild(0)), |
| 328 BookmarkEditor::NO_TREE); | 328 BookmarkEditor::NO_TREE); |
| 329 gtk_entry_set_text(GTK_ENTRY(editor.name_entry_), "new_a"); | 329 gtk_entry_set_text(GTK_ENTRY(editor.name_entry_), "new_a"); |
| 330 | 330 |
| 331 editor.ApplyEdits(); | 331 editor.ApplyEdits(); |
| 332 | 332 |
| 333 const BookmarkNode* other_node = profile_->GetBookmarkModel()->other_node(); | 333 const BookmarkNode* other_node = profile_->GetBookmarkModel()->other_node(); |
| 334 ASSERT_EQ(2, other_node->child_count()); | 334 ASSERT_EQ(2, other_node->child_count()); |
| 335 | 335 |
| 336 const BookmarkNode* new_node = other_node->GetChild(0); | 336 const BookmarkNode* new_node = other_node->GetChild(0); |
| 337 EXPECT_EQ(ASCIIToUTF16("new_a"), new_node->GetTitle()); | 337 EXPECT_EQ(ASCIIToUTF16("new_a"), new_node->GetTitle()); |
| 338 } | 338 } |
| OLD | NEW |