Index: chrome/browser/importer/firefox_importer_browsertest.cc |
diff --git a/chrome/browser/importer/firefox_importer_browsertest.cc b/chrome/browser/importer/firefox_importer_browsertest.cc |
index 91fe71beb51102f8368b8373e3b3d267f51d7f6e..e5f321824cbb3f7703a40abfe2b2c9dfbf254b6b 100644 |
--- a/chrome/browser/importer/firefox_importer_browsertest.cc |
+++ b/chrome/browser/importer/firefox_importer_browsertest.cc |
@@ -66,33 +66,59 @@ const PasswordInfo kFirefoxPasswords[] = { |
"", "http", "", "Http1+1abcdefg", false}, |
}; |
+// These search engines are mentioned in both search.sqlite and search.json. |
+// These are required to test older versions of Firefox which use search.sqlite. |
const KeywordInfo kFirefoxKeywords[] = { |
- { L"amazon.com", |
- "http://www.amazon.com/exec/obidos/external-search/?field-keywords=" |
- "{searchTerms}&mode=blended" }, |
- { L"answers.com", |
- "http://www.answers.com/main/ntquery?s={searchTerms}&gwp=13" }, |
- { L"search.creativecommons.org", |
- "http://search.creativecommons.org/?q={searchTerms}" }, |
- { L"search.ebay.com", |
- "http://search.ebay.com/search/search.dll?query={searchTerms}&" |
- "MfcISAPICommand=GetResult&ht=1&ebaytag1=ebayreg&srchdesc=n&" |
- "maxRecordsReturned=300&maxRecordsPerPage=50&SortProperty=MetaEndSort" }, |
- { L"google.com", |
- "http://www.google.com/search?q={searchTerms}&ie=utf-8&oe=utf-8&aq=t" }, |
- { L"en.wikipedia.org", |
- "http://en.wikipedia.org/wiki/Special:Search?search={searchTerms}" }, |
- { L"search.yahoo.com", |
- "http://search.yahoo.com/search?p={searchTerms}&ei=UTF-8" }, |
- { L"flickr.com", |
- "http://www.flickr.com/photos/tags/?q={searchTerms}" }, |
- { L"imdb.com", |
- "http://www.imdb.com/find?q={searchTerms}" }, |
- { L"webster.com", |
- "http://www.webster.com/cgi-bin/dictionary?va={searchTerms}" }, |
- // Search keywords. |
- { L"\x4E2D\x6587", "http://www.google.com/" }, |
-}; |
+ {L"amazon.com", |
+ "http://www.amazon.com/exec/obidos/external-search/?field-keywords=" |
+ "{searchTerms}&mode=blended"}, |
+ {L"answers.com", |
+ "http://www.answers.com/main/ntquery?s={searchTerms}&gwp=13"}, |
+ {L"search.creativecommons.org", |
+ "http://search.creativecommons.org/?q={searchTerms}"}, |
+ {L"search.ebay.com", |
+ "http://search.ebay.com/search/search.dll?query={searchTerms}&" |
+ "MfcISAPICommand=GetResult&ht=1&ebaytag1=ebayreg&srchdesc=n&" |
+ "maxRecordsReturned=300&maxRecordsPerPage=50&SortProperty=MetaEndSort"}, |
+ {L"google.com", |
+ "http://www.google.com/search?q={searchTerms}&ie=utf-8&oe=utf-8&aq=t"}, |
+ {L"en.wikipedia.org", |
+ "http://en.wikipedia.org/wiki/Special:Search?search={searchTerms}"}, |
+ {L"search.yahoo.com", |
+ "http://search.yahoo.com/search?p={searchTerms}&ei=UTF-8"}, |
+ {L"flickr.com", "http://www.flickr.com/photos/tags/?q={searchTerms}"}, |
+ {L"imdb.com", "http://www.imdb.com/find?q={searchTerms}"}, |
+ {L"webster.com", |
+ "http://www.webster.com/cgi-bin/dictionary?va={searchTerms}"}, |
+ // Search keywords. |
+ {L"\x4E2D\x6587", "http://www.google.com/"}}; |
+ |
+// These use search-metadata.json for storing keywords. |
+const KeywordInfo kFirefoxSearchEnginesWithCustomKeywords[] = { |
Peter Kasting
2014/07/31 18:28:21
This looks like a duplicate of the list above plus
Nikhil
2014/08/04 12:15:11
I've now slightly changed the approach based on yo
|
+ {L"amazon.com", |
+ "http://www.amazon.com/exec/obidos/external-search/?field-keywords=" |
+ "{searchTerms}&mode=blended"}, |
+ {L"answers.com", |
+ "http://www.answers.com/main/ntquery?s={searchTerms}&gwp=13"}, |
+ {L"search.creativecommons.org", |
+ "http://search.creativecommons.org/?q={searchTerms}"}, |
+ {L"search.ebay.com", |
+ "http://search.ebay.com/search/search.dll?query={searchTerms}&" |
+ "MfcISAPICommand=GetResult&ht=1&ebaytag1=ebayreg&srchdesc=n&" |
+ "maxRecordsReturned=300&maxRecordsPerPage=50&SortProperty=MetaEndSort"}, |
+ {L"google.com", |
+ "http://www.google.com/search?q={searchTerms}&ie=utf-8&oe=utf-8&aq=t"}, |
+ {L"en.wikipedia.org", |
+ "http://en.wikipedia.org/wiki/Special:Search?search={searchTerms}"}, |
+ {L"search.yahoo.com", |
+ "http://search.yahoo.com/search?p={searchTerms}&ei=UTF-8"}, |
+ {L"flickr.com", "http://www.flickr.com/photos/tags/?q={searchTerms}"}, |
+ {L"imdb.com", "http://www.imdb.com/find?q={searchTerms}"}, |
+ {L"webster.com", |
+ "http://www.webster.com/cgi-bin/dictionary?va={searchTerms}"}, |
+ {L"\x4E2D\x6587", "http://www.google.com/"}, |
+ {L"tweet", |
+ "https://twitter.com/search?q={searchTerms}&source=desktop-search"}}; |
class FirefoxObserver : public ProfileWriter, |
public importer::ImporterProgressObserver { |
@@ -102,7 +128,8 @@ class FirefoxObserver : public ProfileWriter, |
bookmark_count_(0), |
history_count_(0), |
password_count_(0), |
- keyword_count_(0) {} |
+ keyword_count_(0), |
+ has_custom_keyword_(false) {} |
Peter Kasting
2014/07/31 18:28:21
This isn't a good variable name for this. This na
Nikhil
2014/08/04 12:15:11
Done.
|
// importer::ImporterProgressObserver: |
virtual void ImportStarted() OVERRIDE {} |
@@ -113,7 +140,12 @@ class FirefoxObserver : public ProfileWriter, |
EXPECT_EQ(arraysize(kFirefoxBookmarks), bookmark_count_); |
EXPECT_EQ(1U, history_count_); |
EXPECT_EQ(arraysize(kFirefoxPasswords), password_count_); |
- EXPECT_EQ(arraysize(kFirefoxKeywords), keyword_count_); |
+ if (!has_custom_keyword_) { |
+ EXPECT_EQ(arraysize(kFirefoxKeywords), keyword_count_); |
+ } else { |
+ EXPECT_EQ(arraysize(kFirefoxSearchEnginesWithCustomKeywords), |
+ keyword_count_); |
+ } |
} |
virtual bool BookmarkModelIsLoaded() const OVERRIDE { |
@@ -173,6 +205,7 @@ class FirefoxObserver : public ProfileWriter, |
// that template URL. |
bool found = false; |
const base::string16& keyword = template_urls[i]->keyword(); |
+ if (!has_custom_keyword_) { |
for (size_t j = 0; j < arraysize(kFirefoxKeywords); ++j) { |
Peter Kasting
2014/07/31 18:28:21
Indenting (unless Rietveld isn't properly showing
Nikhil
2014/08/04 12:15:11
Done.
|
if (keyword == base::WideToUTF16(kFirefoxKeywords[j].keyword)) { |
EXPECT_EQ(kFirefoxKeywords[j].url, template_urls[i]->url()); |
@@ -182,6 +215,22 @@ class FirefoxObserver : public ProfileWriter, |
} |
EXPECT_TRUE(found); |
++keyword_count_; |
+ } else { |
+ for (size_t j = 0; |
Peter Kasting
2014/07/31 18:28:21
Again, don't copy this code. Find a way to write
Nikhil
2014/08/04 12:15:11
Done.
|
+ j < arraysize(kFirefoxSearchEnginesWithCustomKeywords); |
+ ++j) { |
+ if (keyword == |
+ base::WideToUTF16( |
+ kFirefoxSearchEnginesWithCustomKeywords[j].keyword)) { |
+ EXPECT_EQ(kFirefoxSearchEnginesWithCustomKeywords[j].url, |
+ template_urls[i]->url()); |
+ found = true; |
+ break; |
+ } |
+ } |
+ EXPECT_TRUE(found); |
+ ++keyword_count_; |
+ } |
} |
} |
@@ -189,6 +238,10 @@ class FirefoxObserver : public ProfileWriter, |
const std::vector<ImportedFaviconUsage>& favicons) OVERRIDE { |
} |
+ void SetHasCustomKeyword(bool has_custom_keyword) { |
Peter Kasting
2014/07/31 18:28:21
Cheap inline accessors should be named unix_hacker
Nikhil
2014/08/04 12:15:11
Done.
|
+ has_custom_keyword_ = has_custom_keyword; |
+ } |
+ |
private: |
virtual ~FirefoxObserver() {} |
@@ -196,6 +249,9 @@ class FirefoxObserver : public ProfileWriter, |
size_t history_count_; |
size_t password_count_; |
size_t keyword_count_; |
+ |
+ // If true, we verify keyword based on search-metadata.json. |
+ bool has_custom_keyword_; |
}; |
} // namespace |
@@ -292,5 +348,13 @@ IN_PROC_BROWSER_TEST_F(FirefoxProfileImporterBrowserTest, |
IN_PROC_BROWSER_TEST_F(FirefoxProfileImporterBrowserTest, |
MAYBE_IMPORTER(FirefoxImporter)) { |
scoped_refptr<FirefoxObserver> observer(new FirefoxObserver()); |
+ observer->SetHasCustomKeyword(true); |
+ FirefoxImporterBrowserTest("firefox_profile", observer.get(), observer.get()); |
+} |
+ |
+IN_PROC_BROWSER_TEST_F(FirefoxProfileImporterBrowserTest, |
+ MAYBE_IMPORTER(ImportCustomKeywords)) { |
Peter Kasting
2014/07/31 18:28:21
It's not clear why you added a test that is identi
Nikhil
2014/08/04 12:15:11
Removed it.
|
+ scoped_refptr<FirefoxObserver> observer(new FirefoxObserver()); |
+ observer->SetHasCustomKeyword(true); |
FirefoxImporterBrowserTest("firefox_profile", observer.get(), observer.get()); |
} |