| OLD | NEW |
| 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 Loading... |
| 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 OffsetAdjuster::Adjustments no_adjustments; |
| 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(no_adjustments, &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(no_adjustments, &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 Loading... |
| 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 |
| OLD | NEW |