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

Unified Diff: chrome/browser/ui/cocoa/keyword_editor_cocoa_controller_unittest.mm

Issue 6339002: [Mac] Consolidate all files relating to preferences in a subdir of c/b/ui/coc... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/cocoa/keyword_editor_cocoa_controller_unittest.mm
===================================================================
--- chrome/browser/ui/cocoa/keyword_editor_cocoa_controller_unittest.mm (revision 71447)
+++ chrome/browser/ui/cocoa/keyword_editor_cocoa_controller_unittest.mm (working copy)
@@ -1,226 +0,0 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/mac/scoped_nsautorelease_pool.h"
-#include "base/scoped_nsobject.h"
-#include "chrome/browser/search_engines/template_url.h"
-#include "chrome/browser/search_engines/template_url_model.h"
-#include "chrome/browser/ui/cocoa/browser_test_helper.h"
-#include "chrome/browser/ui/cocoa/cocoa_test_helper.h"
-#import "chrome/browser/ui/cocoa/keyword_editor_cocoa_controller.h"
-#include "chrome/test/testing_profile.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "testing/platform_test.h"
-
-@interface FakeKeywordEditorController : KeywordEditorCocoaController {
- @public
- BOOL modelChanged_;
-}
-- (void)modelChanged;
-- (BOOL)hasModelChanged;
-- (KeywordEditorModelObserver*)observer;
-@end
-
-@implementation FakeKeywordEditorController
-
-- (void)modelChanged {
- modelChanged_ = YES;
-}
-
-- (BOOL)hasModelChanged {
- return modelChanged_;
-}
-
-- (KeywordEditorModelObserver*)observer {
- return observer_.get();
-}
-
-- (NSTableView*)tableView {
- return tableView_;
-}
-
-@end
-
-// TODO(rsesek): Figure out a good way to test this class (crbug.com/21640).
-
-namespace {
-
-class KeywordEditorCocoaControllerTest : public CocoaTest {
- public:
- virtual void SetUp() {
- CocoaTest::SetUp();
- TestingProfile* profile =
- static_cast<TestingProfile*>(browser_helper_.profile());
- profile->CreateTemplateURLModel();
-
- controller_ =
- [[FakeKeywordEditorController alloc] initWithProfile:profile];
- }
-
- virtual void TearDown() {
- // Force the window to load so we hit |-awakeFromNib| to register as the
- // window's delegate so that the controller can clean itself up in
- // |-windowWillClose:|.
- ASSERT_TRUE([controller_ window]);
-
- [controller_ close];
- CocoaTest::TearDown();
- }
-
- // Helper to count the keyword editors.
- NSUInteger CountKeywordEditors() {
- base::mac::ScopedNSAutoreleasePool pool;
- NSUInteger count = 0;
- for (NSWindow* window in [NSApp windows]) {
- id controller = [window windowController];
- if ([controller isKindOfClass:[KeywordEditorCocoaController class]]) {
- ++count;
- }
- }
- return count;
- }
-
- BrowserTestHelper browser_helper_;
- FakeKeywordEditorController* controller_;
-};
-
-TEST_F(KeywordEditorCocoaControllerTest, TestModelChanged) {
- EXPECT_FALSE([controller_ hasModelChanged]);
- KeywordEditorModelObserver* observer = [controller_ observer];
- observer->OnTemplateURLModelChanged();
- EXPECT_TRUE([controller_ hasModelChanged]);
-}
-
-// Test that +showKeywordEditor brings up the existing editor and
-// creates one if needed.
-TEST_F(KeywordEditorCocoaControllerTest, ShowKeywordEditor) {
- // No outstanding editors.
- Profile* profile(browser_helper_.profile());
- KeywordEditorCocoaController* sharedInstance =
- [KeywordEditorCocoaController sharedInstanceForProfile:profile];
- EXPECT_TRUE(nil == sharedInstance);
- EXPECT_EQ(CountKeywordEditors(), 0U);
-
- const NSUInteger initial_window_count([[NSApp windows] count]);
-
- // The window unwinds using -autorelease, so we need to introduce an
- // autorelease pool to really test whether it went away or not.
- {
- base::mac::ScopedNSAutoreleasePool pool;
-
- // +showKeywordEditor: creates a new controller.
- [KeywordEditorCocoaController showKeywordEditor:profile];
- sharedInstance =
- [KeywordEditorCocoaController sharedInstanceForProfile:profile];
- EXPECT_TRUE(sharedInstance);
- EXPECT_EQ(CountKeywordEditors(), 1U);
-
- // Another call doesn't create another controller.
- [KeywordEditorCocoaController showKeywordEditor:profile];
- EXPECT_TRUE(sharedInstance ==
- [KeywordEditorCocoaController sharedInstanceForProfile:profile]);
- EXPECT_EQ(CountKeywordEditors(), 1U);
-
- [sharedInstance close];
- }
-
- // No outstanding editors.
- sharedInstance =
- [KeywordEditorCocoaController sharedInstanceForProfile:profile];
- EXPECT_TRUE(nil == sharedInstance);
- EXPECT_EQ(CountKeywordEditors(), 0U);
-
- // Windows we created should be gone.
- EXPECT_EQ([[NSApp windows] count], initial_window_count);
-
- // Get a new editor, should be different from the previous one.
- [KeywordEditorCocoaController showKeywordEditor:profile];
- KeywordEditorCocoaController* newSharedInstance =
- [KeywordEditorCocoaController sharedInstanceForProfile:profile];
- EXPECT_TRUE(sharedInstance != newSharedInstance);
- EXPECT_EQ(CountKeywordEditors(), 1U);
- [newSharedInstance close];
-}
-
-TEST_F(KeywordEditorCocoaControllerTest, IndexInModelForRowMixed) {
- [controller_ window]; // Force |-awakeFromNib|.
- TemplateURLModel* template_model = [controller_ controller]->url_model();
-
- // Add a default engine.
- TemplateURL* t_url = new TemplateURL();
- t_url->SetURL("http://test1/{searchTerms}", 0, 0);
- t_url->set_keyword(L"test1");
- t_url->set_short_name(L"Test1");
- t_url->set_show_in_default_list(true);
- template_model->Add(t_url);
-
- // Add a non-default engine.
- t_url = new TemplateURL();
- t_url->SetURL("http://test2/{searchTerms}", 0, 0);
- t_url->set_keyword(L"test2");
- t_url->set_short_name(L"Test2");
- t_url->set_show_in_default_list(false);
- template_model->Add(t_url);
-
- // Two headers with a single row underneath each.
- NSTableView* table = [controller_ tableView];
- [table reloadData];
- ASSERT_EQ(4, [[controller_ tableView] numberOfRows]);
-
- // Index 0 is the group header, index 1 should be the first engine.
- ASSERT_EQ(0, [controller_ indexInModelForRow:1]);
-
- // Index 2 should be the group header, so index 3 should be the non-default
- // engine.
- ASSERT_EQ(1, [controller_ indexInModelForRow:3]);
-
- ASSERT_TRUE([controller_ tableView:table isGroupRow:0]);
- ASSERT_FALSE([controller_ tableView:table isGroupRow:1]);
- ASSERT_TRUE([controller_ tableView:table isGroupRow:2]);
- ASSERT_FALSE([controller_ tableView:table isGroupRow:3]);
-
- ASSERT_FALSE([controller_ tableView:table shouldSelectRow:0]);
- ASSERT_TRUE([controller_ tableView:table shouldSelectRow:1]);
- ASSERT_FALSE([controller_ tableView:table shouldSelectRow:2]);
- ASSERT_TRUE([controller_ tableView:table shouldSelectRow:3]);
-}
-
-TEST_F(KeywordEditorCocoaControllerTest, IndexInModelForDefault) {
- [controller_ window]; // Force |-awakeFromNib|.
- TemplateURLModel* template_model = [controller_ controller]->url_model();
-
- // Add 2 default engines.
- TemplateURL* t_url = new TemplateURL();
- t_url->SetURL("http://test1/{searchTerms}", 0, 0);
- t_url->set_keyword(L"test1");
- t_url->set_short_name(L"Test1");
- t_url->set_show_in_default_list(true);
- template_model->Add(t_url);
-
- t_url = new TemplateURL();
- t_url->SetURL("http://test2/{searchTerms}", 0, 0);
- t_url->set_keyword(L"test2");
- t_url->set_short_name(L"Test2");
- t_url->set_show_in_default_list(true);
- template_model->Add(t_url);
-
- // One header and two rows.
- NSTableView* table = [controller_ tableView];
- [table reloadData];
- ASSERT_EQ(3, [[controller_ tableView] numberOfRows]);
-
- // Index 0 is the group header, index 1 should be the first engine.
- ASSERT_EQ(0, [controller_ indexInModelForRow:1]);
- ASSERT_EQ(1, [controller_ indexInModelForRow:2]);
-
- ASSERT_TRUE([controller_ tableView:table isGroupRow:0]);
- ASSERT_FALSE([controller_ tableView:table isGroupRow:1]);
- ASSERT_FALSE([controller_ tableView:table isGroupRow:2]);
-
- ASSERT_FALSE([controller_ tableView:table shouldSelectRow:0]);
- ASSERT_TRUE([controller_ tableView:table shouldSelectRow:1]);
- ASSERT_TRUE([controller_ tableView:table shouldSelectRow:2]);
-}
-
-} // namespace

Powered by Google App Engine
This is Rietveld 408576698