Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(815)

Side by Side Diff: chrome/browser/importer/firefox_importer_unittest.cc

Issue 13954013: Port some importer unit tests to browser tests to be able to fully exercise the ExternalProcessImpo… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix includes post-merge Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "testing/gtest/include/gtest/gtest.h" 5 #include "testing/gtest/include/gtest/gtest.h"
6 6
7 #include "base/bind.h"
8 #include "base/file_util.h"
9 #include "base/files/file_path.h" 7 #include "base/files/file_path.h"
10 #include "base/path_service.h" 8 #include "base/path_service.h"
11 #include "base/stl_util.h"
12 #include "base/string16.h" 9 #include "base/string16.h"
13 #include "base/string_util.h" 10 #include "base/string_util.h"
14 #include "base/utf_string_conversions.h" 11 #include "base/utf_string_conversions.h"
15 #include "chrome/browser/history/history_types.h" 12 #include "chrome/browser/history/history_types.h"
16 #include "chrome/browser/importer/firefox2_importer.h" 13 #include "chrome/browser/importer/firefox2_importer.h"
17 #include "chrome/browser/importer/firefox_importer_unittest_utils.h" 14 #include "chrome/browser/importer/firefox_importer_unittest_utils.h"
18 #include "chrome/browser/importer/firefox_importer_utils.h"
19 #include "chrome/browser/importer/importer_bridge.h"
20 #include "chrome/browser/importer/importer_data_types.h"
21 #include "chrome/browser/importer/importer_host.h"
22 #include "chrome/browser/importer/importer_progress_observer.h"
23 #include "chrome/browser/importer/importer_unittest_utils.h"
24 #include "chrome/browser/importer/nss_decryptor.h" 15 #include "chrome/browser/importer/nss_decryptor.h"
25 #include "chrome/browser/search_engines/template_url.h"
26 #include "chrome/common/chrome_paths.h" 16 #include "chrome/common/chrome_paths.h"
27 #include "chrome/test/base/testing_profile.h"
28 #include "content/public/common/password_form.h"
29
30 // TODO(estade): some of these are disabled on mac. http://crbug.com/48007
31 // TODO(jschuh): Disabled on Win64 build. http://crbug.com/179688
32 #if defined(OS_MACOSX) || (defined(OS_WIN) && defined(ARCH_CPU_X86_64))
33 #define MAYBE_IMPORTER(x) DISABLED_##x
34 #else
35 #define MAYBE_IMPORTER(x) x
36 #endif
37 17
38 // TODO(jschuh): Disabled on Win64 build. http://crbug.com/179688 18 // TODO(jschuh): Disabled on Win64 build. http://crbug.com/179688
39 #if defined(OS_WIN) && defined(ARCH_CPU_X86_64) 19 #if defined(OS_WIN) && defined(ARCH_CPU_X86_64)
40 #define MAYBE_NSS(x) DISABLED_##x 20 #define MAYBE_NSS(x) DISABLED_##x
41 #else 21 #else
42 #define MAYBE_NSS(x) x 22 #define MAYBE_NSS(x) x
43 #endif 23 #endif
44 24
45 namespace {
46
47 const BookmarkInfo kFirefox2Bookmarks[] = {
48 {true, 2, {L"Bookmarks Toolbar Folder", L"Folder"},
49 L"On Toolbar's Subfolder",
50 "http://on.toolbar/bookmark/folder"},
51 {true, 1, {L"Bookmarks Toolbar Folder"},
52 L"On Bookmark Toolbar",
53 "http://on.toolbar/bookmark"},
54 {false, 1, {L"Folder"},
55 L"New Bookmark",
56 "http://domain/"},
57 {false, 0, {},
58 L"<Name>",
59 "http://domain.com/q?a=%22er%22&b=%3C%20%20%3E"},
60 {false, 0, {},
61 L"Google Home Page",
62 "http://www.google.com/"},
63 {false, 0, {},
64 L"\x4E2D\x6587",
65 "http://chinese.site.cn/path?query=1#ref"},
66 {false, 0, {},
67 L"mail",
68 "mailto:username@host"},
69 };
70
71 struct PasswordInfo {
72 const char* origin;
73 const char* action;
74 const char* realm;
75 const wchar_t* username_element;
76 const wchar_t* username;
77 const wchar_t* password_element;
78 const wchar_t* password;
79 bool blacklisted;
80 };
81
82 const PasswordInfo kFirefox2Passwords[] = {
83 {"https://www.google.com/", "", "https://www.google.com/",
84 L"", L"", L"", L"", true},
85 {"http://localhost:8080/", "", "http://localhost:8080/corp.google.com",
86 L"", L"http", L"", L"Http1+1abcdefg", false},
87 {"http://localhost:8080/", "http://localhost:8080/", "http://localhost:8080/",
88 L"loginuser", L"usr", L"loginpass", L"pwd", false},
89 {"http://localhost:8080/", "http://localhost:8080/", "http://localhost:8080/",
90 L"loginuser", L"firefox", L"loginpass", L"firefox", false},
91 {"http://localhost/", "", "http://localhost/",
92 L"loginuser", L"hello", L"", L"world", false},
93 };
94
95 struct KeywordInfo {
96 const wchar_t* keyword;
97 const char* url;
98 };
99
100 const KeywordInfo kFirefox2Keywords[] = {
101 // Searh plugins
102 { L"amazon.com",
103 "http://www.amazon.com/exec/obidos/external-search/?field-keywords="
104 "{searchTerms}&mode=blended" },
105 { L"answers.com",
106 "http://www.answers.com/main/ntquery?s={searchTerms}&gwp=13" },
107 { L"search.creativecommons.org",
108 "http://search.creativecommons.org/?q={searchTerms}" },
109 { L"search.ebay.com",
110 "http://search.ebay.com/search/search.dll?query={searchTerms}&"
111 "MfcISAPICommand=GetResult&ht=1&ebaytag1=ebayreg&srchdesc=n&"
112 "maxRecordsReturned=300&maxRecordsPerPage=50&SortProperty=MetaEndSort" },
113 { L"google.com",
114 "http://www.google.com/search?q={searchTerms}&ie=utf-8&oe=utf-8&aq=t" },
115 { L"search.yahoo.com",
116 "http://search.yahoo.com/search?p={searchTerms}&ei=UTF-8" },
117 { L"flickr.com",
118 "http://www.flickr.com/photos/tags/?q={searchTerms}" },
119 { L"imdb.com",
120 "http://www.imdb.com/find?q={searchTerms}" },
121 { L"webster.com",
122 "http://www.webster.com/cgi-bin/dictionary?va={searchTerms}" },
123 // Search keywords.
124 { L"google", "http://www.google.com/" },
125 { L"< > & \" ' \\ /", "http://g.cn/"},
126 };
127
128 const int kDefaultFirefox2KeywordIndex = 8;
129
130 class FirefoxObserver : public ProfileWriter,
131 public importer::ImporterProgressObserver {
132 public:
133 FirefoxObserver() : ProfileWriter(NULL) {
134 bookmark_count_ = 0;
135 history_count_ = 0;
136 password_count_ = 0;
137 keyword_count_ = 0;
138 }
139
140 // importer::ImporterProgressObserver:
141 virtual void ImportStarted() OVERRIDE {}
142 virtual void ImportItemStarted(importer::ImportItem item) OVERRIDE {}
143 virtual void ImportItemEnded(importer::ImportItem item) OVERRIDE {}
144 virtual void ImportEnded() OVERRIDE {
145 MessageLoop::current()->Quit();
146 EXPECT_EQ(arraysize(kFirefox2Bookmarks), bookmark_count_);
147 EXPECT_EQ(1U, history_count_);
148 EXPECT_EQ(arraysize(kFirefox2Passwords), password_count_);
149 EXPECT_EQ(arraysize(kFirefox2Keywords), keyword_count_);
150 }
151
152 virtual bool BookmarkModelIsLoaded() const OVERRIDE {
153 // Profile is ready for writing.
154 return true;
155 }
156
157 virtual bool TemplateURLServiceIsLoaded() const OVERRIDE {
158 return true;
159 }
160
161 virtual void AddPasswordForm(const content::PasswordForm& form) OVERRIDE {
162 PasswordInfo p = kFirefox2Passwords[password_count_];
163 EXPECT_EQ(p.origin, form.origin.spec());
164 EXPECT_EQ(p.realm, form.signon_realm);
165 EXPECT_EQ(p.action, form.action.spec());
166 EXPECT_EQ(WideToUTF16(p.username_element), form.username_element);
167 EXPECT_EQ(WideToUTF16(p.username), form.username_value);
168 EXPECT_EQ(WideToUTF16(p.password_element), form.password_element);
169 EXPECT_EQ(WideToUTF16(p.password), form.password_value);
170 EXPECT_EQ(p.blacklisted, form.blacklisted_by_user);
171 ++password_count_;
172 }
173
174 virtual void AddHistoryPage(const history::URLRows& page,
175 history::VisitSource visit_source) OVERRIDE {
176 ASSERT_EQ(1U, page.size());
177 EXPECT_EQ("http://en-us.www.mozilla.com/", page[0].url().spec());
178 EXPECT_EQ(ASCIIToUTF16("Firefox Updated"), page[0].title());
179 EXPECT_EQ(history::SOURCE_FIREFOX_IMPORTED, visit_source);
180 ++history_count_;
181 }
182
183 virtual void AddBookmarks(const std::vector<BookmarkEntry>& bookmarks,
184 const string16& top_level_folder_name) OVERRIDE {
185 for (size_t i = 0; i < bookmarks.size(); ++i) {
186 if (FindBookmarkEntry(bookmarks[i], kFirefox2Bookmarks,
187 arraysize(kFirefox2Bookmarks)))
188 ++bookmark_count_;
189 }
190 }
191
192 virtual void AddKeywords(ScopedVector<TemplateURL> template_urls,
193 bool unique_on_host_and_path) OVERRIDE {
194 for (size_t i = 0; i < template_urls.size(); ++i) {
195 // The order might not be deterministic, look in the expected list for
196 // that template URL.
197 bool found = false;
198 string16 keyword = template_urls[i]->keyword();
199 for (size_t j = 0; j < arraysize(kFirefox2Keywords); ++j) {
200 if (template_urls[i]->keyword() ==
201 WideToUTF16Hack(kFirefox2Keywords[j].keyword)) {
202 EXPECT_EQ(kFirefox2Keywords[j].url, template_urls[i]->url());
203 found = true;
204 break;
205 }
206 }
207 EXPECT_TRUE(found);
208 ++keyword_count_;
209 }
210 }
211
212 virtual void AddFavicons(
213 const std::vector<history::ImportedFaviconUsage>& favicons) OVERRIDE {
214 }
215
216 private:
217 virtual ~FirefoxObserver() {}
218
219 size_t bookmark_count_;
220 size_t history_count_;
221 size_t password_count_;
222 size_t keyword_count_;
223 };
224
225 const BookmarkInfo kFirefox3Bookmarks[] = {
226 {true, 1, {L"Bookmarks Toolbar"},
227 L"Toolbar",
228 "http://site/"},
229 {false, 0, {},
230 L"Title",
231 "http://www.google.com/"},
232 };
233
234 const PasswordInfo kFirefox3Passwords[] = {
235 {"http://localhost:8080/", "http://localhost:8080/", "http://localhost:8080/",
236 L"loginuser", L"abc", L"loginpass", L"123", false},
237 {"http://localhost:8080/", "", "http://localhost:8080/localhost",
238 L"", L"http", L"", L"Http1+1abcdefg", false},
239 };
240
241 const KeywordInfo kFirefox3Keywords[] = {
242 { L"amazon.com",
243 "http://www.amazon.com/exec/obidos/external-search/?field-keywords="
244 "{searchTerms}&mode=blended" },
245 { L"answers.com",
246 "http://www.answers.com/main/ntquery?s={searchTerms}&gwp=13" },
247 { L"search.creativecommons.org",
248 "http://search.creativecommons.org/?q={searchTerms}" },
249 { L"search.ebay.com",
250 "http://search.ebay.com/search/search.dll?query={searchTerms}&"
251 "MfcISAPICommand=GetResult&ht=1&ebaytag1=ebayreg&srchdesc=n&"
252 "maxRecordsReturned=300&maxRecordsPerPage=50&SortProperty=MetaEndSort" },
253 { L"google.com",
254 "http://www.google.com/search?q={searchTerms}&ie=utf-8&oe=utf-8&aq=t" },
255 { L"en.wikipedia.org",
256 "http://en.wikipedia.org/wiki/Special:Search?search={searchTerms}" },
257 { L"search.yahoo.com",
258 "http://search.yahoo.com/search?p={searchTerms}&ei=UTF-8" },
259 { L"flickr.com",
260 "http://www.flickr.com/photos/tags/?q={searchTerms}" },
261 { L"imdb.com",
262 "http://www.imdb.com/find?q={searchTerms}" },
263 { L"webster.com",
264 "http://www.webster.com/cgi-bin/dictionary?va={searchTerms}" },
265 // Search keywords.
266 { L"\x4E2D\x6587", "http://www.google.com/" },
267 };
268
269 const int kDefaultFirefox3KeywordIndex = 8;
270
271 class Firefox3Observer : public ProfileWriter,
272 public importer::ImporterProgressObserver {
273 public:
274 Firefox3Observer()
275 : ProfileWriter(NULL), bookmark_count_(0), history_count_(0),
276 password_count_(0), keyword_count_(0), import_search_engines_(true) {
277 }
278
279 explicit Firefox3Observer(bool import_search_engines)
280 : ProfileWriter(NULL), bookmark_count_(0), history_count_(0),
281 password_count_(0), keyword_count_(0),
282 import_search_engines_(import_search_engines) {
283 }
284
285 // importer::ImporterProgressObserver:
286 virtual void ImportStarted() OVERRIDE {}
287 virtual void ImportItemStarted(importer::ImportItem item) OVERRIDE {}
288 virtual void ImportItemEnded(importer::ImportItem item) OVERRIDE {}
289 virtual void ImportEnded() OVERRIDE {
290 MessageLoop::current()->Quit();
291 EXPECT_EQ(arraysize(kFirefox3Bookmarks), bookmark_count_);
292 EXPECT_EQ(1U, history_count_);
293 EXPECT_EQ(arraysize(kFirefox3Passwords), password_count_);
294 if (import_search_engines_)
295 EXPECT_EQ(arraysize(kFirefox3Keywords), keyword_count_);
296 }
297
298 virtual bool BookmarkModelIsLoaded() const OVERRIDE {
299 // Profile is ready for writing.
300 return true;
301 }
302
303 virtual bool TemplateURLServiceIsLoaded() const OVERRIDE {
304 return true;
305 }
306
307 virtual void AddPasswordForm(const content::PasswordForm& form) OVERRIDE {
308 PasswordInfo p = kFirefox3Passwords[password_count_];
309 EXPECT_EQ(p.origin, form.origin.spec());
310 EXPECT_EQ(p.realm, form.signon_realm);
311 EXPECT_EQ(p.action, form.action.spec());
312 EXPECT_EQ(WideToUTF16(p.username_element), form.username_element);
313 EXPECT_EQ(WideToUTF16(p.username), form.username_value);
314 EXPECT_EQ(WideToUTF16(p.password_element), form.password_element);
315 EXPECT_EQ(WideToUTF16(p.password), form.password_value);
316 EXPECT_EQ(p.blacklisted, form.blacklisted_by_user);
317 ++password_count_;
318 }
319
320 virtual void AddHistoryPage(const history::URLRows& page,
321 history::VisitSource visit_source) OVERRIDE {
322 ASSERT_EQ(3U, page.size());
323 EXPECT_EQ("http://www.google.com/", page[0].url().spec());
324 EXPECT_EQ(ASCIIToUTF16("Google"), page[0].title());
325 EXPECT_EQ("http://www.google.com/", page[1].url().spec());
326 EXPECT_EQ(ASCIIToUTF16("Google"), page[1].title());
327 EXPECT_EQ("http://www.cs.unc.edu/~jbs/resources/perl/perl-cgi/programs/"
328 "form1-POST.html", page[2].url().spec());
329 EXPECT_EQ(ASCIIToUTF16("example form (POST)"), page[2].title());
330 EXPECT_EQ(history::SOURCE_FIREFOX_IMPORTED, visit_source);
331 ++history_count_;
332 }
333
334 virtual void AddBookmarks(const std::vector<BookmarkEntry>& bookmarks,
335 const string16& top_level_folder_name) OVERRIDE {
336 for (size_t i = 0; i < bookmarks.size(); ++i) {
337 if (FindBookmarkEntry(bookmarks[i], kFirefox3Bookmarks,
338 arraysize(kFirefox3Bookmarks)))
339 ++bookmark_count_;
340 }
341 }
342
343 virtual void AddKeywords(ScopedVector<TemplateURL> template_urls,
344 bool unique_on_host_and_path) OVERRIDE {
345 for (size_t i = 0; i < template_urls.size(); ++i) {
346 // The order might not be deterministic, look in the expected list for
347 // that template URL.
348 bool found = false;
349 string16 keyword = template_urls[i]->keyword();
350 for (size_t j = 0; j < arraysize(kFirefox3Keywords); ++j) {
351 if (template_urls[i]->keyword() ==
352 WideToUTF16Hack(kFirefox3Keywords[j].keyword)) {
353 EXPECT_EQ(kFirefox3Keywords[j].url, template_urls[i]->url());
354 found = true;
355 break;
356 }
357 }
358 EXPECT_TRUE(found);
359 ++keyword_count_;
360 }
361 }
362
363 virtual void AddFavicons(
364 const std::vector<history::ImportedFaviconUsage>& favicons) OVERRIDE {
365 }
366
367 private:
368 virtual ~Firefox3Observer() {}
369
370 size_t bookmark_count_;
371 size_t history_count_;
372 size_t password_count_;
373 size_t keyword_count_;
374 bool import_search_engines_;
375 };
376
377 } // namespace
378
379 class FirefoxProfileImporterTest : public ImporterTest {
380 protected:
381 virtual void SetUp() OVERRIDE {
382 ImporterTest::SetUp();
383 // Creates a new profile in a new subdirectory in the temp directory.
384 base::FilePath test_path = temp_dir_.path().AppendASCII("ImporterTest");
385 file_util::Delete(test_path, true);
386 file_util::CreateDirectory(test_path);
387 profile_path_ = test_path.AppendASCII("profile");
388 app_path_ = test_path.AppendASCII("app");
389 file_util::CreateDirectory(app_path_);
390 }
391
392 void Firefox3xImporterTest(std::string profile_dir,
393 importer::ImporterProgressObserver* observer,
394 ProfileWriter* writer,
395 bool import_search_plugins) {
396 base::FilePath data_path;
397 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &data_path));
398 data_path = data_path.AppendASCII(profile_dir);
399 ASSERT_TRUE(file_util::CopyDirectory(data_path, profile_path_, true));
400 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &data_path));
401 data_path = data_path.AppendASCII("firefox3_nss");
402 ASSERT_TRUE(file_util::CopyDirectory(data_path, profile_path_, false));
403
404 base::FilePath search_engine_path = app_path_;
405 search_engine_path = search_engine_path.AppendASCII("searchplugins");
406 file_util::CreateDirectory(search_engine_path);
407 if (import_search_plugins) {
408 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &data_path));
409 data_path = data_path.AppendASCII("firefox3_searchplugins");
410 if (!file_util::PathExists(data_path)) {
411 // TODO(maruel): Create search test data that we can open source!
412 LOG(ERROR) << L"Missing internal test data";
413 return;
414 }
415 ASSERT_TRUE(file_util::CopyDirectory(data_path,
416 search_engine_path, false));
417 }
418
419 MessageLoop* loop = MessageLoop::current();
420 importer::SourceProfile source_profile;
421 source_profile.importer_type = importer::TYPE_FIREFOX3;
422 source_profile.app_path = app_path_;
423 source_profile.source_path = profile_path_;
424 scoped_refptr<ImporterHost> host(new ImporterHost);
425 host->SetObserver(observer);
426 int items = importer::HISTORY | importer::PASSWORDS | importer::FAVORITES;
427 if (import_search_plugins)
428 items = items | importer::SEARCH_ENGINES;
429 loop->PostTask(FROM_HERE, base::Bind(
430 &ImporterHost::StartImportSettings, host.get(), source_profile,
431 profile_.get(), items, make_scoped_refptr(writer)));
432 loop->Run();
433 }
434
435 base::FilePath profile_path_;
436 base::FilePath app_path_;
437 };
438
439 TEST_F(FirefoxProfileImporterTest, MAYBE_IMPORTER(Firefox2Importer)) {
440 base::FilePath data_path;
441 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &data_path));
442 data_path = data_path.AppendASCII("firefox2_profile");
443 ASSERT_TRUE(file_util::CopyDirectory(data_path, profile_path_, true));
444 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &data_path));
445 data_path = data_path.AppendASCII("firefox2_nss");
446 ASSERT_TRUE(file_util::CopyDirectory(data_path, profile_path_, false));
447
448 base::FilePath search_engine_path = app_path_;
449 search_engine_path = search_engine_path.AppendASCII("searchplugins");
450 file_util::CreateDirectory(search_engine_path);
451 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &data_path));
452 data_path = data_path.AppendASCII("firefox2_searchplugins");
453 if (!file_util::PathExists(data_path)) {
454 // TODO(maruel): Create test data that we can open source!
455 LOG(ERROR) << L"Missing internal test data";
456 return;
457 }
458 ASSERT_TRUE(file_util::CopyDirectory(data_path, search_engine_path, false));
459
460 MessageLoop* loop = MessageLoop::current();
461 scoped_refptr<ImporterHost> host(new ImporterHost);
462 FirefoxObserver* observer = new FirefoxObserver();
463 host->SetObserver(observer);
464 importer::SourceProfile source_profile;
465 source_profile.importer_type = importer::TYPE_FIREFOX2;
466 source_profile.app_path = app_path_;
467 source_profile.source_path = profile_path_;
468
469 loop->PostTask(FROM_HERE, base::Bind(
470 &ImporterHost::StartImportSettings,
471 host.get(),
472 source_profile,
473 profile_.get(),
474 importer::HISTORY | importer::PASSWORDS |
475 importer::FAVORITES | importer::SEARCH_ENGINES,
476 make_scoped_refptr(observer)));
477 loop->Run();
478 }
479
480 TEST_F(FirefoxProfileImporterTest, MAYBE_IMPORTER(Firefox30Importer)) {
481 scoped_refptr<Firefox3Observer> observer(new Firefox3Observer());
482 Firefox3xImporterTest("firefox3_profile", observer.get(), observer.get(),
483 true);
484 }
485
486 TEST_F(FirefoxProfileImporterTest, MAYBE_IMPORTER(Firefox35Importer)) {
487 bool import_search_engines = false;
488 scoped_refptr<Firefox3Observer> observer(
489 new Firefox3Observer(import_search_engines));
490 Firefox3xImporterTest("firefox35_profile", observer.get(), observer.get(),
491 import_search_engines);
492 }
493
494 // The following 2 tests require the use of the NSSDecryptor, on OSX this needs 25 // The following 2 tests require the use of the NSSDecryptor, on OSX this needs
495 // to run in a separate process, so we use a proxy object so we can share the 26 // to run in a separate process, so we use a proxy object so we can share the
496 // same test between platforms. 27 // same test between platforms.
497 TEST(FirefoxImporterTest, MAYBE_NSS(Firefox2NSS3Decryptor)) { 28 TEST(FirefoxImporterTest, MAYBE_NSS(Firefox2NSS3Decryptor)) {
498 base::FilePath nss_path; 29 base::FilePath nss_path;
499 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &nss_path)); 30 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &nss_path));
500 #if defined(OS_MACOSX) 31 #if defined(OS_MACOSX)
501 nss_path = nss_path.AppendASCII("firefox2_nss_mac"); 32 nss_path = nss_path.AppendASCII("firefox2_nss_mac");
502 #else 33 #else
503 nss_path = nss_path.AppendASCII("firefox2_nss"); 34 nss_path = nss_path.AppendASCII("firefox2_nss");
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
764 EXPECT_EQ("http://www.tamurayukari.com/", entry.url.spec()); 295 EXPECT_EQ("http://www.tamurayukari.com/", entry.url.spec());
765 EXPECT_EQ(0U, entry.path.size()); 296 EXPECT_EQ(0U, entry.path.size());
766 entry = *it++; 297 entry = *it++;
767 EXPECT_EQ(ASCIIToUTF16("Google"), entry.title); 298 EXPECT_EQ(ASCIIToUTF16("Google"), entry.title);
768 EXPECT_EQ("http://www.google.com/", entry.url.spec()); 299 EXPECT_EQ("http://www.google.com/", entry.url.spec());
769 EXPECT_EQ(0U, entry.path.size()); 300 EXPECT_EQ(0U, entry.path.size());
770 } 301 }
771 302
772 importer->Release(); 303 importer->Release();
773 } 304 }
OLDNEW
« no previous file with comments | « chrome/browser/importer/firefox_importer_browsertest.cc ('k') | chrome/browser/importer/ie_importer_browsertest_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698