Index: chrome/browser/ui/cocoa/search_engine_list_model_unittest.mm |
=================================================================== |
--- chrome/browser/ui/cocoa/search_engine_list_model_unittest.mm (revision 71447) |
+++ chrome/browser/ui/cocoa/search_engine_list_model_unittest.mm (working copy) |
@@ -1,152 +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/scoped_nsobject.h" |
-#include "chrome/browser/profiles/profile.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" |
-#import "chrome/browser/ui/cocoa/search_engine_list_model.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
-#import "testing/gtest_mac.h" |
-#include "testing/platform_test.h" |
- |
-// A helper for NSNotifications. Makes a note that it's been called back. |
-@interface SearchEngineListHelper : NSObject { |
- @public |
- BOOL sawNotification_; |
-} |
-@end |
- |
-@implementation SearchEngineListHelper |
-- (void)entryChanged:(NSNotification*)notify { |
- sawNotification_ = YES; |
-} |
-@end |
- |
-class SearchEngineListModelTest : public PlatformTest { |
- public: |
- SearchEngineListModelTest() { |
- // Build a fake set of template urls. |
- template_model_.reset(new TemplateURLModel(helper_.profile())); |
- TemplateURL* t_url = new TemplateURL(); |
- t_url->SetURL("http://www.google.com/?q={searchTerms}", 0, 0); |
- t_url->set_keyword(L"keyword"); |
- t_url->set_short_name(L"google"); |
- t_url->set_show_in_default_list(true); |
- template_model_->Add(t_url); |
- t_url = new TemplateURL(); |
- t_url->SetURL("http://www.google2.com/?q={searchTerms}", 0, 0); |
- t_url->set_keyword(L"keyword2"); |
- t_url->set_short_name(L"google2"); |
- t_url->set_show_in_default_list(true); |
- template_model_->Add(t_url); |
- EXPECT_EQ(template_model_->GetTemplateURLs().size(), 2U); |
- |
- model_.reset([[SearchEngineListModel alloc] |
- initWithModel:template_model_.get()]); |
- notification_helper_.reset([[SearchEngineListHelper alloc] init]); |
- [[NSNotificationCenter defaultCenter] |
- addObserver:notification_helper_.get() |
- selector:@selector(entryChanged:) |
- name:kSearchEngineListModelChangedNotification |
- object:nil]; |
- } |
- ~SearchEngineListModelTest() { |
- [[NSNotificationCenter defaultCenter] |
- removeObserver:notification_helper_.get()]; |
- } |
- |
- BrowserTestHelper helper_; |
- scoped_ptr<TemplateURLModel> template_model_; |
- scoped_nsobject<SearchEngineListModel> model_; |
- scoped_nsobject<SearchEngineListHelper> notification_helper_; |
-}; |
- |
-TEST_F(SearchEngineListModelTest, Init) { |
- scoped_nsobject<SearchEngineListModel> model( |
- [[SearchEngineListModel alloc] initWithModel:template_model_.get()]); |
-} |
- |
-TEST_F(SearchEngineListModelTest, Engines) { |
- NSArray* engines = [model_ searchEngines]; |
- EXPECT_EQ([engines count], 2U); |
-} |
- |
-TEST_F(SearchEngineListModelTest, Default) { |
- EXPECT_EQ([model_ defaultIndex], -1); |
- |
- [model_ setDefaultIndex:1]; |
- EXPECT_EQ([model_ defaultIndex], 1); |
- |
- // Add two more URLs, neither of which are shown in the default list. |
- TemplateURL* t_url = new TemplateURL(); |
- t_url->SetURL("http://www.google3.com/?q={searchTerms}", 0, 0); |
- t_url->set_keyword(L"keyword3"); |
- t_url->set_short_name(L"google3 not eligible"); |
- t_url->set_show_in_default_list(false); |
- template_model_->Add(t_url); |
- t_url = new TemplateURL(); |
- t_url->SetURL("http://www.google4.com/?q={searchTerms}", 0, 0); |
- t_url->set_keyword(L"keyword4"); |
- t_url->set_short_name(L"google4"); |
- t_url->set_show_in_default_list(false); |
- template_model_->Add(t_url); |
- |
- // Still should only have 2 engines and not these newly added ones. |
- EXPECT_EQ([[model_ searchEngines] count], 2U); |
- |
- // Since keyword3 is not in the default list, the 2nd index in the default |
- // keyword list should be keyword4. Test for http://crbug.com/21898. |
- template_model_->SetDefaultSearchProvider(t_url); |
- EXPECT_EQ([[model_ searchEngines] count], 3U); |
- EXPECT_EQ([model_ defaultIndex], 2); |
- |
- NSString* defaultString = [[model_ searchEngines] objectAtIndex:2]; |
- EXPECT_NSEQ(@"google4", defaultString); |
-} |
- |
-TEST_F(SearchEngineListModelTest, DefaultChosenFromUI) { |
- EXPECT_EQ([model_ defaultIndex], -1); |
- |
- [model_ setDefaultIndex:1]; |
- EXPECT_EQ([model_ defaultIndex], 1); |
- |
- // Add two more URLs, the first one not shown in the default list. |
- TemplateURL* t_url = new TemplateURL(); |
- t_url->SetURL("http://www.google3.com/?q={searchTerms}", 0, 0); |
- t_url->set_keyword(L"keyword3"); |
- t_url->set_short_name(L"google3 not eligible"); |
- t_url->set_show_in_default_list(false); |
- template_model_->Add(t_url); |
- t_url = new TemplateURL(); |
- t_url->SetURL("http://www.google4.com/?q={searchTerms}", 0, 0); |
- t_url->set_keyword(L"keyword4"); |
- t_url->set_short_name(L"google4"); |
- t_url->set_show_in_default_list(true); |
- template_model_->Add(t_url); |
- |
- // We should have 3 engines. |
- EXPECT_EQ([[model_ searchEngines] count], 3U); |
- |
- // Simulate the UI setting the default to the third entry. |
- [model_ setDefaultIndex:2]; |
- EXPECT_EQ([model_ defaultIndex], 2); |
- |
- // The default search provider should be google4. |
- EXPECT_EQ(template_model_->GetDefaultSearchProvider(), t_url); |
-} |
- |
-// Make sure that when the back-end model changes that we get a notification. |
-TEST_F(SearchEngineListModelTest, Notification) { |
- // Add one more item to force a notification. |
- TemplateURL* t_url = new TemplateURL(); |
- t_url->SetURL("http://www.google3.com/foo/bar", 0, 0); |
- t_url->set_keyword(L"keyword3"); |
- t_url->set_short_name(L"google3"); |
- t_url->set_show_in_default_list(true); |
- template_model_->Add(t_url); |
- |
- EXPECT_TRUE(notification_helper_.get()->sawNotification_); |
-} |