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

Side by Side Diff: base/strings/utf_offset_string_conversions_unittest.cc

Issue 2953943003: base::OffsetAdjuster: Refactor offset limiting logic into the base::OffsetAdjuster (Closed)
Patch Set: fix test Created 3 years, 5 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
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 <stddef.h> 5 #include <stddef.h>
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 for (size_t i = 0; i < arraysize(utf16_to_utf8_cases); ++i) { 70 for (size_t i = 0; i < arraysize(utf16_to_utf8_cases); ++i) {
71 size_t offset = utf16_to_utf8_cases[i].input_offset; 71 size_t offset = utf16_to_utf8_cases[i].input_offset;
72 std::vector<size_t> offsets; 72 std::vector<size_t> offsets;
73 offsets.push_back(offset); 73 offsets.push_back(offset);
74 UTF16ToUTF8AndAdjustOffsets(utf16_to_utf8_cases[i].utf16, &offsets); 74 UTF16ToUTF8AndAdjustOffsets(utf16_to_utf8_cases[i].utf16, &offsets);
75 EXPECT_EQ(utf16_to_utf8_cases[i].output_offset, offsets[0]) << i; 75 EXPECT_EQ(utf16_to_utf8_cases[i].output_offset, offsets[0]) << i;
76 } 76 }
77 } 77 }
78 78
79 TEST(UTFOffsetStringConversionsTest, LimitOffsets) { 79 TEST(UTFOffsetStringConversionsTest, LimitOffsets) {
80 const OffsetAdjuster::Adjustments kNoAdjustments;
80 const size_t kLimit = 10; 81 const size_t kLimit = 10;
81 const size_t kItems = 20; 82 const size_t kItems = 20;
82 std::vector<size_t> size_ts; 83 std::vector<size_t> size_ts;
83 for (size_t t = 0; t < kItems; ++t) 84 for (size_t t = 0; t < kItems; ++t) {
84 size_ts.push_back(t); 85 size_ts.push_back(t);
85 std::for_each(size_ts.begin(), size_ts.end(), 86 OffsetAdjuster::AdjustOffset(kNoAdjustments, &size_ts.back(), kLimit);
86 LimitOffset<string16>(kLimit)); 87 }
87 size_t unlimited_count = 0; 88 size_t unlimited_count = 0;
88 for (std::vector<size_t>::iterator ti = size_ts.begin(); ti != size_ts.end(); 89 for (std::vector<size_t>::iterator ti = size_ts.begin(); ti != size_ts.end();
89 ++ti) { 90 ++ti) {
90 if (*ti != kNpos) 91 if (*ti != kNpos)
91 ++unlimited_count; 92 ++unlimited_count;
92 } 93 }
93 EXPECT_EQ(11U, unlimited_count); 94 EXPECT_EQ(11U, unlimited_count);
94 95
95 // Reverse the values in the vector and try again. 96 // Reverse the values in the vector and try again.
96 size_ts.clear(); 97 size_ts.clear();
97 for (size_t t = kItems; t > 0; --t) 98 for (size_t t = kItems; t > 0; --t) {
98 size_ts.push_back(t - 1); 99 size_ts.push_back(t - 1);
99 std::for_each(size_ts.begin(), size_ts.end(), 100 OffsetAdjuster::AdjustOffset(kNoAdjustments, &size_ts.back(), kLimit);
100 LimitOffset<string16>(kLimit)); 101 }
101 unlimited_count = 0; 102 unlimited_count = 0;
102 for (std::vector<size_t>::iterator ti = size_ts.begin(); ti != size_ts.end(); 103 for (std::vector<size_t>::iterator ti = size_ts.begin(); ti != size_ts.end();
103 ++ti) { 104 ++ti) {
104 if (*ti != kNpos) 105 if (*ti != kNpos)
105 ++unlimited_count; 106 ++unlimited_count;
106 } 107 }
107 EXPECT_EQ(11U, unlimited_count); 108 EXPECT_EQ(11U, unlimited_count);
108 } 109 }
109 110
110 TEST(UTFOffsetStringConversionsTest, AdjustOffsets) { 111 TEST(UTFOffsetStringConversionsTest, AdjustOffsets) {
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
290 EXPECT_EQ(1u, adjustments_on_adjusted_string[3].output_length); 291 EXPECT_EQ(1u, adjustments_on_adjusted_string[3].output_length);
291 EXPECT_EQ(19u, adjustments_on_adjusted_string[4].original_offset); 292 EXPECT_EQ(19u, adjustments_on_adjusted_string[4].original_offset);
292 EXPECT_EQ(3u, adjustments_on_adjusted_string[4].original_length); 293 EXPECT_EQ(3u, adjustments_on_adjusted_string[4].original_length);
293 EXPECT_EQ(0u, adjustments_on_adjusted_string[4].output_length); 294 EXPECT_EQ(0u, adjustments_on_adjusted_string[4].output_length);
294 EXPECT_EQ(25u, adjustments_on_adjusted_string[5].original_offset); 295 EXPECT_EQ(25u, adjustments_on_adjusted_string[5].original_offset);
295 EXPECT_EQ(1u, adjustments_on_adjusted_string[5].original_length); 296 EXPECT_EQ(1u, adjustments_on_adjusted_string[5].original_length);
296 EXPECT_EQ(2u, adjustments_on_adjusted_string[5].output_length); 297 EXPECT_EQ(2u, adjustments_on_adjusted_string[5].output_length);
297 } 298 }
298 299
299 } // namespace base 300 } // namespace base
OLDNEW
« no previous file with comments | « base/strings/utf_offset_string_conversions.cc ('k') | components/url_formatter/url_formatter.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698