diff options
author | jeanluc@google.com <jeanluc@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-19 08:47:41 +0000 |
---|---|---|
committer | jeanluc@google.com <jeanluc@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-19 08:47:41 +0000 |
commit | 0c0762cf753027e688d5fcfbebe26b26c5a2820b (patch) | |
tree | bbb1c80037ef0128a95b947b04bfba8f6dfa212c | |
parent | 5620f8ff00fca6644b68cdd3ccdae464068b8b6c (diff) | |
download | chromium_src-0c0762cf753027e688d5fcfbebe26b26c5a2820b.zip chromium_src-0c0762cf753027e688d5fcfbebe26b26c5a2820b.tar.gz chromium_src-0c0762cf753027e688d5fcfbebe26b26c5a2820b.tar.bz2 |
For the Mac, if there is no default search provider, don't show a selection in the disabled drop down in the Preferences dialog box.
BUG=49306
TEST=SearchEngineListModelTest.Default
Review URL: http://codereview.chromium.org/3865001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63030 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/cocoa/search_engine_list_model.h | 9 | ||||
-rw-r--r-- | chrome/browser/cocoa/search_engine_list_model.mm | 14 | ||||
-rw-r--r-- | chrome/browser/cocoa/search_engine_list_model_unittest.mm | 8 |
3 files changed, 17 insertions, 14 deletions
diff --git a/chrome/browser/cocoa/search_engine_list_model.h b/chrome/browser/cocoa/search_engine_list_model.h index 6c59e3d..386a793 100644 --- a/chrome/browser/cocoa/search_engine_list_model.h +++ b/chrome/browser/cocoa/search_engine_list_model.h @@ -32,10 +32,11 @@ class SearchEngineObserver; // search engines. - (NSArray*)searchEngines; -// The index into |-searchEngines| of the current default search engine. The -// setter changes the back-end preference. -- (NSUInteger)defaultIndex; -- (void)setDefaultIndex:(NSUInteger)index; +// The index into |-searchEngines| of the current default search engine. If +// there is no default search engine, the value is -1. The setter changes the +// back-end preference. +- (NSInteger)defaultIndex; +- (void)setDefaultIndex:(NSInteger)index; // Return TRUE if the default is managed via policy. - (BOOL)isDefaultManaged; @end diff --git a/chrome/browser/cocoa/search_engine_list_model.mm b/chrome/browser/cocoa/search_engine_list_model.mm index 802a667..8a98d4a 100644 --- a/chrome/browser/cocoa/search_engine_list_model.mm +++ b/chrome/browser/cocoa/search_engine_list_model.mm @@ -86,10 +86,11 @@ class SearchEngineObserver : public TemplateURLModelObserver { } // The index into |-searchEngines| of the current default search engine. -- (NSUInteger)defaultIndex { - if (!model_) return 0; +// -1 if there is no default. +- (NSInteger)defaultIndex { + if (!model_) return -1; - NSUInteger index = 0; + NSInteger index = 0; const TemplateURL* defaultSearchProvider = model_->GetDefaultSearchProvider(); if (defaultSearchProvider) { typedef std::vector<const TemplateURL*> TemplateURLs; @@ -103,14 +104,15 @@ class SearchEngineObserver : public TemplateURLModelObserver { ++index; } } - return 0; + return -1; } -- (void)setDefaultIndex:(NSUInteger)index { +- (void)setDefaultIndex:(NSInteger)index { if (model_) { typedef std::vector<const TemplateURL*> TemplateURLs; TemplateURLs urls = model_->GetTemplateURLs(); - DCHECK(index < urls.size()); + DCHECK(index >= 0); + DCHECK(index < (NSInteger)urls.size()); model_->SetDefaultSearchProvider(urls[index]); } } diff --git a/chrome/browser/cocoa/search_engine_list_model_unittest.mm b/chrome/browser/cocoa/search_engine_list_model_unittest.mm index 683d454..a5a866f 100644 --- a/chrome/browser/cocoa/search_engine_list_model_unittest.mm +++ b/chrome/browser/cocoa/search_engine_list_model_unittest.mm @@ -75,10 +75,10 @@ TEST_F(SearchEngineListModelTest, Engines) { } TEST_F(SearchEngineListModelTest, Default) { - EXPECT_EQ([model_ defaultIndex], 0U); + EXPECT_EQ([model_ defaultIndex], -1); [model_ setDefaultIndex:1]; - EXPECT_EQ([model_ defaultIndex], 1U); + EXPECT_EQ([model_ defaultIndex], 1); // Add two more URLs, neither of which are shown in the default list. TemplateURL* t_url = new TemplateURL(); @@ -101,9 +101,9 @@ TEST_F(SearchEngineListModelTest, 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], 2U); + EXPECT_EQ([model_ defaultIndex], 2); - NSString* defaultString = [[model_ searchEngines] objectAtIndex:2]; + NSString* defaultString = [[model_ searchEngines] objectAtgIndex:2]; EXPECT_NSEQ(@"google4", defaultString); } |