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

Unified Diff: chrome/browser/ui/app_list/search/tokenized_string_match_unittest.cc

Issue 522683003: Move basic string operations to ui/app_list/search (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: gn Created 6 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/app_list/search/tokenized_string_match_unittest.cc
diff --git a/chrome/browser/ui/app_list/search/tokenized_string_match_unittest.cc b/chrome/browser/ui/app_list/search/tokenized_string_match_unittest.cc
deleted file mode 100644
index d9c8a8ec3a46f3c7dac629ae058a8e5970e2b805..0000000000000000000000000000000000000000
--- a/chrome/browser/ui/app_list/search/tokenized_string_match_unittest.cc
+++ /dev/null
@@ -1,122 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <string>
-
-#include "base/basictypes.h"
-#include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/ui/app_list/search/tokenized_string_match.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace app_list {
-namespace test {
-
-// Returns a string of |text| marked the hits in |match| using block bracket.
-// e.g. text= "Text", hits = [{0,1}], returns "[T]ext".
-std::string MatchHit(const base::string16& text,
- const TokenizedStringMatch& match) {
- base::string16 marked = text;
-
- const TokenizedStringMatch::Hits& hits = match.hits();
- for (TokenizedStringMatch::Hits::const_reverse_iterator it = hits.rbegin();
- it != hits.rend(); ++it) {
- const gfx::Range& hit = *it;
- marked.insert(hit.end(), 1, ']');
- marked.insert(hit.start(), 1, '[');
- }
-
- return base::UTF16ToUTF8(marked);
-}
-
-TEST(TokenizedStringMatchTest, NotMatch) {
- struct {
- const char* text;
- const char* query;
- } kTestCases[] = {
- { "", "" },
- { "", "query" },
- { "text", "" },
- { "!", "!@#$%^&*()<<<**>>>" },
- { "abd", "abcd"},
- { "cd", "abcd"},
- };
-
- TokenizedStringMatch match;
- for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kTestCases); ++i) {
- const base::string16 text(base::UTF8ToUTF16(kTestCases[i].text));
- EXPECT_FALSE(match.Calculate(base::UTF8ToUTF16(kTestCases[i].query), text))
- << "Test case " << i
- << " : text=" << kTestCases[i].text
- << ", query=" << kTestCases[i].query;
- }
-}
-
-TEST(TokenizedStringMatchTest, Match) {
- struct {
- const char* text;
- const char* query;
- const char* expect;
- } kTestCases[] = {
- { "ScratchPad", "pad", "Scratch[Pad]" },
- { "ScratchPad", "sp", "[S]cratch[P]ad" },
- { "Chess2", "che", "[Che]ss2" },
- { "Chess2", "c2", "[C]hess[2]" },
- { "Cut the rope", "cut ro", "[Cut] the [ro]pe" },
- { "Cut the rope", "cr", "[C]ut the [r]ope" },
- { "John Doe", "jdoe", "[J]ohn [Doe]" },
- { "John Doe", "johnd", "[John D]oe" },
- { "Secure Shell", "she", "Secure [She]ll" },
- { "Simple Secure Shell", "sish", "[Si]mple Secure [Sh]ell" },
- { "Netflix", "flix", "Net[flix]" },
- };
-
- TokenizedStringMatch match;
- for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kTestCases); ++i) {
- const base::string16 text(base::UTF8ToUTF16(kTestCases[i].text));
- EXPECT_TRUE(match.Calculate(base::UTF8ToUTF16(kTestCases[i].query), text));
- EXPECT_EQ(kTestCases[i].expect, MatchHit(text, match));
- }
-}
-
-TEST(TokenizedStringMatchTest, Relevance) {
- struct {
- const char* text;
- const char* query_low;
- const char* query_high;
- } kTestCases[] = {
- // More matched chars are better.
- { "Google Chrome", "g", "go" },
- { "Google Chrome", "go", "goo" },
- { "Google Chrome", "goo", "goog" },
- { "Google Chrome", "c", "ch" },
- { "Google Chrome", "ch", "chr" },
- // Acronym match is better than something in the middle.
- { "Google Chrome", "ch", "gc" },
- // Prefix match is better than middle match and acronym match.
- { "Google Chrome", "ch", "go" },
- { "Google Chrome", "gc", "go" },
- // Substring match has the lowest score.
- { "Google Chrome", "oo", "gc" },
- { "Google Chrome", "oo", "go" },
- { "Google Chrome", "oo", "ch" },
- };
-
- TokenizedStringMatch match_low;
- TokenizedStringMatch match_high;
- for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kTestCases); ++i) {
- const base::string16 text(base::UTF8ToUTF16(kTestCases[i].text));
- EXPECT_TRUE(
- match_low.Calculate(base::UTF8ToUTF16(kTestCases[i].query_low), text));
- EXPECT_TRUE(match_high.Calculate(
- base::UTF8ToUTF16(kTestCases[i].query_high), text));
- EXPECT_LT(match_low.relevance(), match_high.relevance())
- << "Test case " << i
- << " : text=" << kTestCases[i].text
- << ", query_low=" << kTestCases[i].query_low
- << ", query_high=" << kTestCases[i].query_high;
- }
-}
-
-} // namespace test
-} // namespace app_list

Powered by Google App Engine
This is Rietveld 408576698