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

Side by Side Diff: chrome/browser/autocomplete/history_url_provider_unittest.cc

Issue 8258004: Tweak omnibox parsing heuristics more: (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 9 years, 2 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
« no previous file with comments | « chrome/browser/autocomplete/history_url_provider.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "chrome/browser/autocomplete/history_url_provider.h" 5 #include "chrome/browser/autocomplete/history_url_provider.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/message_loop.h" 10 #include "base/message_loop.h"
(...skipping 426 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 arraysize(winky_results)); 437 arraysize(winky_results));
438 RunTest(ASCIIToUTF16("winky"), ASCIIToUTF16("com"), false, winky_com_results, 438 RunTest(ASCIIToUTF16("winky"), ASCIIToUTF16("com"), false, winky_com_results,
439 arraysize(winky_com_results)); 439 arraysize(winky_com_results));
440 } 440 }
441 441
442 TEST_F(HistoryURLProviderTest, Fixup) { 442 TEST_F(HistoryURLProviderTest, Fixup) {
443 // Test for various past crashes we've had. 443 // Test for various past crashes we've had.
444 RunTest(ASCIIToUTF16("\\"), string16(), false, NULL, 0); 444 RunTest(ASCIIToUTF16("\\"), string16(), false, NULL, 0);
445 RunTest(ASCIIToUTF16("#"), string16(), false, NULL, 0); 445 RunTest(ASCIIToUTF16("#"), string16(), false, NULL, 0);
446 RunTest(ASCIIToUTF16("%20"), string16(), false, NULL, 0); 446 RunTest(ASCIIToUTF16("%20"), string16(), false, NULL, 0);
447 RunTest(WideToUTF16(L"\uff65@s"), string16(), false, NULL, 0); 447 const std::string fixup_crash[] = {"http://%EF%BD%A5@s/"};
448 RunTest(WideToUTF16(L"\uff65@s"), string16(), false, fixup_crash,
449 arraysize(fixup_crash));
448 RunTest(WideToUTF16(L"\u2015\u2015@ \uff7c"), string16(), false, NULL, 0); 450 RunTest(WideToUTF16(L"\u2015\u2015@ \uff7c"), string16(), false, NULL, 0);
449 451
450 // Fixing up "file:" should result in an inline autocomplete offset of just 452 // Fixing up "file:" should result in an inline autocomplete offset of just
451 // after "file:", not just after "file://". 453 // after "file:", not just after "file://".
452 const string16 input_1(ASCIIToUTF16("file:")); 454 const string16 input_1(ASCIIToUTF16("file:"));
453 const std::string fixup_1[] = {"file:///C:/foo.txt"}; 455 const std::string fixup_1[] = {"file:///C:/foo.txt"};
454 ASSERT_NO_FATAL_FAILURE(RunTest(input_1, string16(), false, fixup_1, 456 ASSERT_NO_FATAL_FAILURE(RunTest(input_1, string16(), false, fixup_1,
455 arraysize(fixup_1))); 457 arraysize(fixup_1)));
456 EXPECT_EQ(input_1.length(), matches_.front().inline_autocomplete_offset); 458 EXPECT_EQ(input_1.length(), matches_.front().inline_autocomplete_offset);
457 459
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
540 MessageLoop::current()->Run(); 542 MessageLoop::current()->Run();
541 543
542 // None of the matches should attempt to autocomplete. 544 // None of the matches should attempt to autocomplete.
543 matches_ = autocomplete_->matches(); 545 matches_ = autocomplete_->matches();
544 for (size_t i = 0; i < matches_.size(); ++i) 546 for (size_t i = 0; i < matches_.size(); ++i)
545 EXPECT_EQ(string16::npos, matches_[i].inline_autocomplete_offset); 547 EXPECT_EQ(string16::npos, matches_[i].inline_autocomplete_offset);
546 } 548 }
547 549
548 TEST_F(HistoryURLProviderTest, TreatEmailsAsSearches) { 550 TEST_F(HistoryURLProviderTest, TreatEmailsAsSearches) {
549 // Visiting foo.com should not make this string be treated as a navigation. 551 // Visiting foo.com should not make this string be treated as a navigation.
550 RunTest(ASCIIToUTF16("user@foo.com"), string16(), false, NULL, 0); 552 // That means the result should be scored at 1200 ("what you typed") and not
553 // 1400+.
554 const std::string expected[] = {"http://user@foo.com/"};
555 ASSERT_NO_FATAL_FAILURE(RunTest(ASCIIToUTF16("user@foo.com"), string16(),
556 false, expected, arraysize(expected)));
557 EXPECT_EQ(1200, matches_[0].relevance);
551 } 558 }
552 559
553 TEST_F(HistoryURLProviderTest, IntranetURLsWithPaths) { 560 TEST_F(HistoryURLProviderTest, IntranetURLsWithPaths) {
554 struct TestCase { 561 struct TestCase {
555 const char* input; 562 const char* input;
556 bool has_output; 563 int relevance;
557 } test_cases[] = { 564 } test_cases[] = {
558 { "fooey", false }, 565 { "fooey", 0 },
559 { "fooey/", true }, 566 { "fooey/", 1200 }, // 1200 for URL would still navigate by default.
560 { "fooey/a", false }, 567 { "fooey/a", 1200 }, // 1200 for UNKNOWN would not.
561 { "fooey/a b", false }, 568 { "fooey/a b", 1200 }, // Also UNKNOWN.
562 { "gooey", true }, 569 { "gooey", 1410 },
563 { "gooey/", true }, 570 { "gooey/", 1410 },
564 { "gooey/a", true }, 571 { "gooey/a", 1400 },
565 { "gooey/a b", true }, 572 { "gooey/a b", 1400 },
566 }; 573 };
567 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_cases); ++i) { 574 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_cases); ++i) {
568 const std::string output[1] = { 575 SCOPED_TRACE(test_cases[i].input);
569 URLFixerUpper::FixupURL(test_cases[i].input, std::string()).spec() 576 if (test_cases[i].relevance == 0) {
570 }; 577 RunTest(ASCIIToUTF16(test_cases[i].input), string16(), false, NULL, 0);
571 RunTest(ASCIIToUTF16(test_cases[i].input), string16(), false, 578 } else {
572 test_cases[i].has_output ? output : NULL, 579 const std::string output[] = {
573 test_cases[i].has_output ? 1 : 0); 580 URLFixerUpper::FixupURL(test_cases[i].input, std::string()).spec()
581 };
582 ASSERT_NO_FATAL_FAILURE(RunTest(ASCIIToUTF16(test_cases[i].input),
583 string16(), false, output, arraysize(output)));
584 EXPECT_EQ(test_cases[i].relevance, matches_[0].relevance);
585 }
574 } 586 }
575 } 587 }
576 588
577 // Makes sure autocompletion happens for intranet sites that have been 589 // Makes sure autocompletion happens for intranet sites that have been
578 // previoulsy visited. 590 // previoulsy visited.
579 TEST_F(HistoryURLProviderTest, IntranetURLCompletion) { 591 TEST_F(HistoryURLProviderTest, IntranetURLCompletion) {
580 sort_matches_ = true; 592 sort_matches_ = true;
581 593
582 const std::string expected1[] = { 594 const std::string expected1[] = {
583 "http://intra/three", 595 "http://intra/three",
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
636 "\\@st" 648 "\\@st"
637 }; 649 };
638 for (size_t i = 0; i < arraysize(test_cases); ++i) { 650 for (size_t i = 0; i < arraysize(test_cases); ++i) {
639 AutocompleteInput input(ASCIIToUTF16(test_cases[i]), string16(), false, 651 AutocompleteInput input(ASCIIToUTF16(test_cases[i]), string16(), false,
640 false, true, AutocompleteInput::ALL_MATCHES); 652 false, true, AutocompleteInput::ALL_MATCHES);
641 autocomplete_->Start(input, false); 653 autocomplete_->Start(input, false);
642 if (!autocomplete_->done()) 654 if (!autocomplete_->done())
643 MessageLoop::current()->Run(); 655 MessageLoop::current()->Run();
644 } 656 }
645 } 657 }
OLDNEW
« no previous file with comments | « chrome/browser/autocomplete/history_url_provider.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698