Chromium Code Reviews| 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..f1a69c8fbc1925a39e3a97e34cd726075fa5902d 100644 |
| --- a/chrome/browser/importer/firefox_importer_browsertest.cc |
| +++ b/chrome/browser/importer/firefox_importer_browsertest.cc |
| @@ -46,10 +46,15 @@ struct PasswordInfo { |
| }; |
| struct KeywordInfo { |
| - const wchar_t* keyword; |
| - const char* url; |
| + KeywordInfo(const char* keyword, const char* url) |
| + : keyword(keyword), url(url) {} |
| + KeywordInfo() {} |
| + std::string keyword; |
| + std::string url; |
| }; |
| +std::vector<KeywordInfo> search_list; |
| + |
| const BookmarkInfo kFirefoxBookmarks[] = { |
| {true, 1, {"Bookmarks Toolbar"}, |
| L"Toolbar", |
| @@ -66,34 +71,6 @@ const PasswordInfo kFirefoxPasswords[] = { |
| "", "http", "", "Http1+1abcdefg", false}, |
| }; |
| -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/" }, |
| -}; |
| - |
| class FirefoxObserver : public ProfileWriter, |
| public importer::ImporterProgressObserver { |
| public: |
| @@ -101,8 +78,7 @@ class FirefoxObserver : public ProfileWriter, |
| : ProfileWriter(NULL), |
| bookmark_count_(0), |
| history_count_(0), |
| - password_count_(0), |
| - keyword_count_(0) {} |
| + password_count_(0) {} |
| // importer::ImporterProgressObserver: |
| virtual void ImportStarted() OVERRIDE {} |
| @@ -113,7 +89,6 @@ 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_); |
| } |
| virtual bool BookmarkModelIsLoaded() const OVERRIDE { |
| @@ -169,19 +144,10 @@ class FirefoxObserver : public ProfileWriter, |
| virtual void AddKeywords(ScopedVector<TemplateURL> template_urls, |
| bool unique_on_host_and_path) OVERRIDE { |
| for (size_t i = 0; i < template_urls.size(); ++i) { |
|
Peter Kasting
2014/08/11 22:25:05
Nit: Prefer iterators to indexes when the actual i
Nikhil
2014/08/12 09:48:55
Done.
|
| - // The order might not be deterministic, look in the expected list for |
| - // that template URL. |
| - bool found = false; |
| - const base::string16& keyword = template_urls[i]->keyword(); |
| - for (size_t j = 0; j < arraysize(kFirefoxKeywords); ++j) { |
| - if (keyword == base::WideToUTF16(kFirefoxKeywords[j].keyword)) { |
| - EXPECT_EQ(kFirefoxKeywords[j].url, template_urls[i]->url()); |
| - found = true; |
| - break; |
| - } |
| - } |
| - EXPECT_TRUE(found); |
| - ++keyword_count_; |
| + KeywordInfo item; |
| + item.keyword = base::UTF16ToUTF8(template_urls[i]->keyword()); |
| + item.url = template_urls[i]->url(); |
|
Peter Kasting
2014/08/11 22:25:05
You added a 2-arg constructor for KeywordInfo, so
Nikhil
2014/08/12 09:48:55
Done.
|
| + search_list.push_back(item); |
| } |
| } |
| @@ -195,7 +161,6 @@ class FirefoxObserver : public ProfileWriter, |
| size_t bookmark_count_; |
| size_t history_count_; |
| size_t password_count_; |
| - size_t keyword_count_; |
| }; |
| } // namespace |
| @@ -219,6 +184,25 @@ class FirefoxProfileImporterBrowserTest : public InProcessBrowserTest { |
| InProcessBrowserTest::SetUp(); |
| } |
| + void VerifyImportedSearchEngines(std::vector<KeywordInfo*>& expected_data) { |
| + EXPECT_EQ(expected_data.size(), search_list.size()); |
| + |
| + for (size_t i = 0; i < expected_data.size(); ++i) { |
| + // The order might not be deterministic, look in the expected list for |
| + // that template URL. |
| + bool found = false; |
| + const std::string& keyword = expected_data[i]->keyword; |
| + for (size_t j = 0; j < search_list.size(); ++j) { |
| + if (keyword == search_list[j].keyword) { |
| + EXPECT_EQ(expected_data[i]->url, search_list[j].url); |
| + found = true; |
| + break; |
| + } |
| + } |
| + EXPECT_TRUE(found); |
| + } |
| + } |
| + |
| void FirefoxImporterBrowserTest(std::string profile_dir, |
| importer::ImporterProgressObserver* observer, |
| ProfileWriter* writer) { |
| @@ -292,5 +276,30 @@ IN_PROC_BROWSER_TEST_F(FirefoxProfileImporterBrowserTest, |
| IN_PROC_BROWSER_TEST_F(FirefoxProfileImporterBrowserTest, |
| MAYBE_IMPORTER(FirefoxImporter)) { |
| scoped_refptr<FirefoxObserver> observer(new FirefoxObserver()); |
| + |
| + // Expected data for search engine list and keywords. |
| + std::vector<KeywordInfo*> expected_data; |
|
Peter Kasting
2014/08/11 22:25:05
Why does this take objects by pointer instead of v
Nikhil
2014/08/12 09:48:54
Done.
|
| + expected_data.push_back( |
| + new KeywordInfo("amazon.com", |
| + "http://www.amazon.com/exec/obidos/external-search/" |
| + "?field-keywords={searchTerms}&mode=blended")); |
| + expected_data.push_back(new KeywordInfo( |
| + "google.com", |
| + "http://www.google.com/search?q={searchTerms}&ie=utf-8&oe=utf-8&aq=t")); |
| + expected_data.push_back(new KeywordInfo( |
| + "wiki", |
| + "http://en.wikipedia.org/wiki/Special:Search?search={searchTerms}")); |
| + expected_data.push_back(new KeywordInfo( |
| + "webster.com", |
| + "http://www.webster.com/cgi-bin/dictionary?va={searchTerms}")); |
| + expected_data.push_back(new KeywordInfo( |
| + base::WideToUTF8(L"\x4E2D\x6587").c_str(), "http://www.google.com/")); |
| + |
| + // Import search engines. |
| FirefoxImporterBrowserTest("firefox_profile", observer.get(), observer.get()); |
| + |
| + // Verify imported search engine list and keywords. |
| + VerifyImportedSearchEngines(expected_data); |
| + |
| + expected_data.clear(); |
|
Peter Kasting
2014/08/11 22:25:05
This statement isn't necessary.
Nikhil
2014/08/12 09:48:55
Done.
|
| } |