summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjeanluc@google.com <jeanluc@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-19 08:47:41 +0000
committerjeanluc@google.com <jeanluc@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-19 08:47:41 +0000
commit0c0762cf753027e688d5fcfbebe26b26c5a2820b (patch)
treebbb1c80037ef0128a95b947b04bfba8f6dfa212c
parent5620f8ff00fca6644b68cdd3ccdae464068b8b6c (diff)
downloadchromium_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.h9
-rw-r--r--chrome/browser/cocoa/search_engine_list_model.mm14
-rw-r--r--chrome/browser/cocoa/search_engine_list_model_unittest.mm8
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);
}