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

Side by Side Diff: chrome/browser/ui/title_prefix_matcher_unittest.cc

Issue 6783015: Improvements to tab title prefix eliding as per email discussions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 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
« no previous file with comments | « chrome/browser/ui/title_prefix_matcher.cc ('k') | chrome/browser/ui/views/tabs/base_tab.cc » ('j') | 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 "base/logging.h" 5 #include "base/logging.h"
6 #include "base/utf_string_conversions.h" 6 #include "base/utf_string_conversions.h"
7 #include "chrome/browser/ui/title_prefix_matcher.h" 7 #include "chrome/browser/ui/title_prefix_matcher.h"
8 #include "googleurl/src/gurl.h"
8 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
9 10
10 namespace { 11 namespace {
11 12 const GURL kUrlA1("http://a.b.c/123");
13 const GURL kUrlA2("http://a.b.c/alphabits");
14 const GURL kUrlB1("http://www.here.com/here/and/there");
15 const GURL kUrlB2("http://www.here.com/elsewhere");
16 const GURL kUrlC1("http://www.here.ca/far/far/away");
12 const string16 kFoofooAbcdef(ASCIIToUTF16("Foofoo abcdef")); 17 const string16 kFoofooAbcdef(ASCIIToUTF16("Foofoo abcdef"));
13 const string16 kFoofooAbcdeg(ASCIIToUTF16("Foofoo abcdeg")); 18 const string16 kFoofooAbcdeg(ASCIIToUTF16("Foofoo abcdeg"));
14 const string16 kFooAbcdef(ASCIIToUTF16("Foo abcdef")); 19 const string16 kFooAbcdef(ASCIIToUTF16("Foo abcdef"));
15 const string16 kFooAbcdeg(ASCIIToUTF16("Foo abcdeg")); 20 const string16 kFooAbcdeg(ASCIIToUTF16("Foo abcdeg"));
16 const string16 kBarAbcDef(ASCIIToUTF16("Bar abc def")); 21 const string16 kBarAbcDef(ASCIIToUTF16("Bar abc def"));
17 const string16 kBarAbcDeg(ASCIIToUTF16("Bar abc deg")); 22 const string16 kBarAbcDeg(ASCIIToUTF16("Bar abc deg"));
18 const string16 kBarAbdDef(ASCIIToUTF16("Bar abd def")); 23 const string16 kBarAbdDef(ASCIIToUTF16("Bar abd def"));
19 const string16 kBar(ASCIIToUTF16("Bar")); 24 const string16 kBar(ASCIIToUTF16("Bar"));
20 const string16 kFoo(ASCIIToUTF16("Foo")); 25 const string16 kFoo(ASCIIToUTF16("Foo"));
21 26
22 } 27 }
23 28
24 TEST(TitlePrefixMatcherTest, BasicTests) { 29 TEST(TitlePrefixMatcherTest, BasicTests) {
25 std::vector<TitlePrefixMatcher::TitleInfo> tab_title_infos; 30 std::vector<TitlePrefixMatcher::TitleInfo> tab_title_infos;
26 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFoofooAbcdef, 0)); 31 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFoofooAbcdef,
27 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFoofooAbcdeg, 1)); 32 kUrlA1, 0));
33 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFoofooAbcdeg,
34 kUrlA1, 1));
28 35
29 TitlePrefixMatcher::CalculatePrefixLengths(&tab_title_infos); 36 TitlePrefixMatcher::CalculatePrefixLengths(&tab_title_infos);
30 EXPECT_EQ(0, tab_title_infos[0].caller_value); 37 EXPECT_EQ(0, tab_title_infos[0].caller_value);
31 EXPECT_EQ(7U, tab_title_infos[0].prefix_length); 38 EXPECT_EQ(7U, tab_title_infos[0].prefix_length);
32 39
33 EXPECT_EQ(1, tab_title_infos[1].caller_value); 40 EXPECT_EQ(1, tab_title_infos[1].caller_value);
34 EXPECT_EQ(7U, tab_title_infos[1].prefix_length); 41 EXPECT_EQ(7U, tab_title_infos[1].prefix_length);
35 42
36 tab_title_infos.clear(); 43 tab_title_infos.clear();
37 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFoofooAbcdef, 0)); 44 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFoofooAbcdef,
38 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFoofooAbcdeg, 1)); 45 kUrlA1, 0));
39 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFooAbcdef, 2)); 46 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFoofooAbcdeg,
40 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFooAbcdeg, 3)); 47 kUrlA1, 1));
48 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFooAbcdef,
49 kUrlA1, 2));
50 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFooAbcdeg,
51 kUrlA1, 3));
41 52
42 TitlePrefixMatcher::CalculatePrefixLengths(&tab_title_infos); 53 TitlePrefixMatcher::CalculatePrefixLengths(&tab_title_infos);
43 EXPECT_EQ(0, tab_title_infos[0].caller_value); 54 EXPECT_EQ(0, tab_title_infos[0].caller_value);
44 EXPECT_EQ(7U, tab_title_infos[0].prefix_length); 55 EXPECT_EQ(7U, tab_title_infos[0].prefix_length);
45 56
46 EXPECT_EQ(1, tab_title_infos[1].caller_value); 57 EXPECT_EQ(1, tab_title_infos[1].caller_value);
47 EXPECT_EQ(7U, tab_title_infos[1].prefix_length); 58 EXPECT_EQ(7U, tab_title_infos[1].prefix_length);
48 59
49 EXPECT_EQ(2, tab_title_infos[2].caller_value); 60 EXPECT_EQ(2, tab_title_infos[2].caller_value);
50 EXPECT_EQ(4U, tab_title_infos[2].prefix_length); 61 EXPECT_EQ(4U, tab_title_infos[2].prefix_length);
51 62
52 EXPECT_EQ(3, tab_title_infos[3].caller_value); 63 EXPECT_EQ(3, tab_title_infos[3].caller_value);
53 EXPECT_EQ(4U, tab_title_infos[3].prefix_length); 64 EXPECT_EQ(4U, tab_title_infos[3].prefix_length);
54 } 65 }
55 66
56 TEST(TitlePrefixMatcherTest, Duplicates) { 67 TEST(TitlePrefixMatcherTest, Duplicates) {
57 std::vector<TitlePrefixMatcher::TitleInfo> tab_title_infos; 68 std::vector<TitlePrefixMatcher::TitleInfo> tab_title_infos;
58 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFoofooAbcdef, 0)); 69 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFoofooAbcdef,
59 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFoofooAbcdeg, 1)); 70 kUrlA1, 0));
60 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFooAbcdef, 2)); 71 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFoofooAbcdeg,
61 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFooAbcdeg, 3)); 72 kUrlA1, 1));
62 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFoofooAbcdef, 4)); 73 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFooAbcdef,
74 kUrlA1, 2));
75 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFooAbcdeg,
76 kUrlA1, 3));
77 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFoofooAbcdef,
78 kUrlA1, 4));
63 79
64 TitlePrefixMatcher::CalculatePrefixLengths(&tab_title_infos); 80 TitlePrefixMatcher::CalculatePrefixLengths(&tab_title_infos);
65 EXPECT_EQ(0, tab_title_infos[0].caller_value); 81 EXPECT_EQ(0, tab_title_infos[0].caller_value);
66 EXPECT_EQ(0U, tab_title_infos[0].prefix_length); 82 EXPECT_EQ(0U, tab_title_infos[0].prefix_length);
67 83
68 EXPECT_EQ(1, tab_title_infos[1].caller_value); 84 EXPECT_EQ(1, tab_title_infos[1].caller_value);
69 EXPECT_EQ(0U, tab_title_infos[1].prefix_length); 85 EXPECT_EQ(0U, tab_title_infos[1].prefix_length);
70 86
71 EXPECT_EQ(2, tab_title_infos[2].caller_value); 87 EXPECT_EQ(2, tab_title_infos[2].caller_value);
72 EXPECT_EQ(4U, tab_title_infos[2].prefix_length); 88 EXPECT_EQ(4U, tab_title_infos[2].prefix_length);
73 89
74 EXPECT_EQ(3, tab_title_infos[3].caller_value); 90 EXPECT_EQ(3, tab_title_infos[3].caller_value);
75 EXPECT_EQ(4U, tab_title_infos[3].prefix_length); 91 EXPECT_EQ(4U, tab_title_infos[3].prefix_length);
76 92
77 EXPECT_EQ(4, tab_title_infos[4].caller_value); 93 EXPECT_EQ(4, tab_title_infos[4].caller_value);
78 EXPECT_EQ(0U, tab_title_infos[4].prefix_length); 94 EXPECT_EQ(0U, tab_title_infos[4].prefix_length);
79 } 95 }
80 96
81 TEST(TitlePrefixMatcherTest, MultiplePrefixes) { 97 TEST(TitlePrefixMatcherTest, MultiplePrefixes) {
82 std::vector<TitlePrefixMatcher::TitleInfo> tab_title_infos; 98 std::vector<TitlePrefixMatcher::TitleInfo> tab_title_infos;
83 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFooAbcdef, 0)); 99 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFooAbcdef,
84 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFooAbcdeg, 1)); 100 kUrlA1, 0));
85 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kBarAbcDef, 2)); 101 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFooAbcdeg,
86 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kBarAbcDeg, 3)); 102 kUrlA1, 1));
87 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kBarAbdDef, 4)); 103 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kBarAbcDef,
88 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kBar, 5)); 104 kUrlA1, 2));
89 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFoo, 6)); 105 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kBarAbcDeg,
106 kUrlA1, 3));
107 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kBarAbdDef,
108 kUrlA1, 4));
109 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kBar,
110 kUrlA1, 5));
111 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFoo,
112 kUrlA1, 6));
90 113
91 TitlePrefixMatcher::CalculatePrefixLengths(&tab_title_infos); 114 TitlePrefixMatcher::CalculatePrefixLengths(&tab_title_infos);
92 EXPECT_EQ(0, tab_title_infos[0].caller_value); 115 EXPECT_EQ(0, tab_title_infos[0].caller_value);
93 EXPECT_EQ(4U, tab_title_infos[0].prefix_length); 116 EXPECT_EQ(4U, tab_title_infos[0].prefix_length);
94 117
95 EXPECT_EQ(1, tab_title_infos[1].caller_value); 118 EXPECT_EQ(1, tab_title_infos[1].caller_value);
96 EXPECT_EQ(4U, tab_title_infos[1].prefix_length); 119 EXPECT_EQ(4U, tab_title_infos[1].prefix_length);
97 120
98 EXPECT_EQ(2, tab_title_infos[2].caller_value); 121 EXPECT_EQ(2, tab_title_infos[2].caller_value);
99 EXPECT_EQ(8U, tab_title_infos[2].prefix_length); 122 EXPECT_EQ(8U, tab_title_infos[2].prefix_length);
100 123
101 EXPECT_EQ(3, tab_title_infos[3].caller_value); 124 EXPECT_EQ(3, tab_title_infos[3].caller_value);
102 EXPECT_EQ(8U, tab_title_infos[3].prefix_length); 125 EXPECT_EQ(8U, tab_title_infos[3].prefix_length);
103 126
104 EXPECT_EQ(4, tab_title_infos[4].caller_value); 127 EXPECT_EQ(4, tab_title_infos[4].caller_value);
105 EXPECT_EQ(4U, tab_title_infos[4].prefix_length); 128 EXPECT_EQ(4U, tab_title_infos[4].prefix_length);
106 129
107 EXPECT_EQ(5, tab_title_infos[5].caller_value); 130 EXPECT_EQ(5, tab_title_infos[5].caller_value);
108 EXPECT_EQ(0U, tab_title_infos[5].prefix_length); 131 EXPECT_EQ(0U, tab_title_infos[5].prefix_length);
109 132
110 EXPECT_EQ(6, tab_title_infos[6].caller_value); 133 EXPECT_EQ(6, tab_title_infos[6].caller_value);
111 EXPECT_EQ(0U, tab_title_infos[6].prefix_length); 134 EXPECT_EQ(0U, tab_title_infos[6].prefix_length);
112 } 135 }
136
137 TEST(TitlePrefixMatcherTest, DifferentHosts) {
138 std::vector<TitlePrefixMatcher::TitleInfo> tab_title_infos;
139 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFoofooAbcdef,
140 kUrlA1, 0));
141 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFoofooAbcdeg,
142 kUrlA2, 1));
143 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFooAbcdef,
144 kUrlB1, 2));
145 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kBarAbdDef,
146 kUrlC1, 3));
147 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kBarAbcDef,
148 kUrlA1, 4));
149 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kBarAbcDeg,
150 kUrlA2, 5));
151 tab_title_infos.push_back(TitlePrefixMatcher::TitleInfo(&kFooAbcdeg,
152 kUrlB2, 6));
153
154 TitlePrefixMatcher::CalculatePrefixLengths(&tab_title_infos);
155 EXPECT_EQ(0, tab_title_infos[0].caller_value);
156 EXPECT_EQ(7U, tab_title_infos[0].prefix_length);
157
158 EXPECT_EQ(1, tab_title_infos[1].caller_value);
159 EXPECT_EQ(7U, tab_title_infos[1].prefix_length);
160
161 EXPECT_EQ(2, tab_title_infos[2].caller_value);
162 EXPECT_EQ(4U, tab_title_infos[2].prefix_length);
163
164 EXPECT_EQ(3, tab_title_infos[3].caller_value);
165 EXPECT_EQ(0U, tab_title_infos[3].prefix_length);
166
167 EXPECT_EQ(4, tab_title_infos[4].caller_value);
168 EXPECT_EQ(8U, tab_title_infos[4].prefix_length);
169
170 EXPECT_EQ(5, tab_title_infos[5].caller_value);
171 EXPECT_EQ(8U, tab_title_infos[5].prefix_length);
172
173 EXPECT_EQ(6, tab_title_infos[6].caller_value);
174 EXPECT_EQ(4U, tab_title_infos[6].prefix_length);
175 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/title_prefix_matcher.cc ('k') | chrome/browser/ui/views/tabs/base_tab.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698