Chromium Code Reviews| Index: chrome/utility/importer/bookmark_html_reader_unittest.cc |
| diff --git a/chrome/utility/importer/bookmark_html_reader_unittest.cc b/chrome/utility/importer/bookmark_html_reader_unittest.cc |
| index fd68f5470fafb05c2d629ca4c4c881baebb286f8..ac5fa86c488fdb4ee3ac042a3082099f91bcbbdc 100644 |
| --- a/chrome/utility/importer/bookmark_html_reader_unittest.cc |
| +++ b/chrome/utility/importer/bookmark_html_reader_unittest.cc |
| @@ -137,6 +137,35 @@ TEST(BookmarkHTMLReaderTest, ParseTests) { |
| EXPECT_EQ("http://www.google.com/", url.spec()); |
| } |
| +TEST(BookmarkHTMLReaderTest, CanImportURLAsSearchEngineTest) { |
| + struct TestCase { |
| + const std::string url; |
| + const bool can_be_imported_as_search_engine; |
| + } test_cases[] = { |
| + { "http://www.example.%s.com", true }, |
| + { "http://www.example.%S.com", true }, |
| + { "http://www.example.%x.com", false }, |
| + { "http://www.example.com", false }, |
| + { "http://%s.example.com", true }, |
| + { "http://www.example.%s.test.%s.com", true }, |
| + { "http://www.test&test.%s.com", true }, |
| + { "http://www.example.com?q=%s&foo=bar", true }, |
| + { "http://www.example.com/%s/?q=%s&foo=bar", true }, |
|
Peter Kasting
2014/12/09 23:10:19
I'm actually a bit surprised we allow importing th
Tapu Ghose
2014/12/10 04:41:55
I think it works fine. I conducted the following t
|
| + { "http//google.com", false }, |
| + { "path", false }, |
| + { "http:/path/%s/", true }, |
| + { "path", false }, |
| + { "", false }, |
| + }; |
| + |
| + std::string search_engine_url; |
| + for (size_t i = 0; i < arraysize(test_cases); ++i) { |
| + EXPECT_EQ(test_cases[i].can_be_imported_as_search_engine, |
| + CanImportURLAsSearchEngine(GURL(test_cases[i].url), |
| + &search_engine_url)); |
| + } |
| +} |
| + |
| namespace { |
| class BookmarkHTMLReaderTestWithData : public testing::Test { |
| @@ -152,6 +181,10 @@ class BookmarkHTMLReaderTestWithData : public testing::Test { |
| void ExpectFirstFirefox23Bookmark(const ImportedBookmarkEntry& entry); |
| void ExpectSecondFirefox23Bookmark(const ImportedBookmarkEntry& entry); |
| void ExpectThirdFirefox23Bookmark(const ImportedBookmarkEntry& entry); |
| + void ExpectFirstFirefoxBookmarkWithKeyword( |
| + const importer::SearchEngineInfo& info); |
| + void ExpectSecondFirefoxBookmarkWithKeyword( |
| + const importer::SearchEngineInfo& info); |
| base::FilePath test_data_path_; |
| }; |
| @@ -236,6 +269,20 @@ void BookmarkHTMLReaderTestWithData::ExpectThirdFirefox23Bookmark( |
| EXPECT_EQ("http://code.google.com/p/chromium/codesearch", entry.url.spec()); |
| } |
| +void BookmarkHTMLReaderTestWithData::ExpectFirstFirefoxBookmarkWithKeyword( |
| + const importer::SearchEngineInfo& info) { |
| + EXPECT_EQ(ASCIIToUTF16("http://example.{searchTerms}.com/"), info.url); |
| + EXPECT_EQ(ASCIIToUTF16("keyword"), info.keyword); |
| + EXPECT_EQ(ASCIIToUTF16("Bookmark Keyword"), info.display_name); |
| +} |
| + |
| +void BookmarkHTMLReaderTestWithData::ExpectSecondFirefoxBookmarkWithKeyword( |
| + const importer::SearchEngineInfo& info) { |
| + EXPECT_EQ(ASCIIToUTF16("http://example.com/?q={searchTerms}"), info.url); |
| + EXPECT_EQ(ASCIIToUTF16("keyword"), info.keyword); |
| + EXPECT_EQ(ASCIIToUTF16("BookmarkName"), info.display_name); |
| +} |
| + |
| } // namespace |
| TEST_F(BookmarkHTMLReaderTestWithData, Firefox2BookmarkFileImport) { |
| @@ -244,7 +291,7 @@ TEST_F(BookmarkHTMLReaderTestWithData, Firefox2BookmarkFileImport) { |
| std::vector<ImportedBookmarkEntry> bookmarks; |
| ImportBookmarksFile(base::Callback<bool(void)>(), |
| base::Callback<bool(const GURL&)>(), |
| - path, &bookmarks, NULL); |
| + path, &bookmarks, NULL, NULL); |
| ASSERT_EQ(3U, bookmarks.size()); |
| ExpectFirstFirefox2Bookmark(bookmarks[0]); |
| @@ -258,7 +305,7 @@ TEST_F(BookmarkHTMLReaderTestWithData, BookmarkFileWithHrTagImport) { |
| std::vector<ImportedBookmarkEntry> bookmarks; |
| ImportBookmarksFile(base::Callback<bool(void)>(), |
| base::Callback<bool(const GURL&)>(), |
| - path, &bookmarks, NULL); |
| + path, &bookmarks, NULL, NULL); |
| ASSERT_EQ(3U, bookmarks.size()); |
| ExpectFirstFirefox23Bookmark(bookmarks[0]); |
| @@ -272,13 +319,27 @@ TEST_F(BookmarkHTMLReaderTestWithData, EpiphanyBookmarkFileImport) { |
| std::vector<ImportedBookmarkEntry> bookmarks; |
| ImportBookmarksFile(base::Callback<bool(void)>(), |
| base::Callback<bool(const GURL&)>(), |
| - path, &bookmarks, NULL); |
| + path, &bookmarks, NULL, NULL); |
| ASSERT_EQ(2U, bookmarks.size()); |
| ExpectFirstEpiphanyBookmark(bookmarks[0]); |
| ExpectSecondEpiphanyBookmark(bookmarks[1]); |
| } |
| +TEST_F(BookmarkHTMLReaderTestWithData, FirefoxBookmarkFileWithKeywordImport) { |
| + base::FilePath path = test_data_path_.AppendASCII( |
| + "firefox_bookmark_keyword.html"); |
| + |
| + std::vector<importer::SearchEngineInfo> search_engines; |
| + ImportBookmarksFile(base::Callback<bool(void)>(), |
| + base::Callback<bool(const GURL&)>(), |
| + path, NULL, &search_engines, NULL); |
| + |
| + ASSERT_EQ(2U, search_engines.size()); |
| + ExpectFirstFirefoxBookmarkWithKeyword(search_engines[0]); |
| + ExpectSecondFirefoxBookmarkWithKeyword(search_engines[1]); |
| +} |
| + |
| namespace { |
| class CancelAfterFifteenCalls { |
| @@ -301,7 +362,7 @@ TEST_F(BookmarkHTMLReaderTestWithData, CancellationCallback) { |
| ImportBookmarksFile(base::Bind(&CancelAfterFifteenCalls::ShouldCancel, |
| base::Unretained(&cancel_fifteen)), |
| base::Callback<bool(const GURL&)>(), |
| - path, &bookmarks, NULL); |
| + path, &bookmarks, NULL, NULL); |
| // The cancellation callback is checked before each line is read, so fifteen |
| // lines are imported. The first fifteen lines of firefox2.html include only |
| @@ -326,7 +387,7 @@ TEST_F(BookmarkHTMLReaderTestWithData, ValidURLCallback) { |
| std::vector<ImportedBookmarkEntry> bookmarks; |
| ImportBookmarksFile(base::Callback<bool(void)>(), |
| base::Bind(&IsURLValid), |
| - path, &bookmarks, NULL); |
| + path, &bookmarks, NULL, NULL); |
| ASSERT_EQ(2U, bookmarks.size()); |
| ExpectFirstFirefox2Bookmark(bookmarks[0]); |