| // Copyright 2013 The Flutter 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 "flutter/shell/platform/common/text_range.h" |
| |
| #include "gtest/gtest.h" |
| |
| namespace flutter { |
| |
| TEST(TextRange, TextRangeFromPositionZero) { |
| TextRange range(0); |
| EXPECT_EQ(range.base(), size_t(0)); |
| EXPECT_EQ(range.extent(), size_t(0)); |
| EXPECT_EQ(range.start(), size_t(0)); |
| EXPECT_EQ(range.end(), size_t(0)); |
| EXPECT_EQ(range.length(), size_t(0)); |
| EXPECT_EQ(range.position(), size_t(0)); |
| EXPECT_TRUE(range.collapsed()); |
| } |
| |
| TEST(TextRange, TextRangeFromPositionNonZero) { |
| TextRange range(3); |
| EXPECT_EQ(range.base(), size_t(3)); |
| EXPECT_EQ(range.extent(), size_t(3)); |
| EXPECT_EQ(range.start(), size_t(3)); |
| EXPECT_EQ(range.end(), size_t(3)); |
| EXPECT_EQ(range.length(), size_t(0)); |
| EXPECT_EQ(range.position(), size_t(3)); |
| EXPECT_TRUE(range.collapsed()); |
| } |
| |
| TEST(TextRange, TextRangeFromRange) { |
| TextRange range(3, 7); |
| EXPECT_EQ(range.base(), size_t(3)); |
| EXPECT_EQ(range.extent(), size_t(7)); |
| EXPECT_EQ(range.start(), size_t(3)); |
| EXPECT_EQ(range.end(), size_t(7)); |
| EXPECT_EQ(range.length(), size_t(4)); |
| EXPECT_FALSE(range.collapsed()); |
| } |
| |
| TEST(TextRange, TextRangeFromReversedRange) { |
| TextRange range(7, 3); |
| EXPECT_EQ(range.base(), size_t(7)); |
| EXPECT_EQ(range.extent(), size_t(3)); |
| EXPECT_EQ(range.start(), size_t(3)); |
| EXPECT_EQ(range.end(), size_t(7)); |
| EXPECT_EQ(range.length(), size_t(4)); |
| EXPECT_FALSE(range.collapsed()); |
| } |
| |
| TEST(TextRange, SetBase) { |
| TextRange range(3, 7); |
| range.set_base(4); |
| EXPECT_EQ(range.base(), size_t(4)); |
| EXPECT_EQ(range.extent(), size_t(7)); |
| } |
| |
| TEST(TextRange, SetBaseReversed) { |
| TextRange range(7, 3); |
| range.set_base(5); |
| EXPECT_EQ(range.base(), size_t(5)); |
| EXPECT_EQ(range.extent(), size_t(3)); |
| } |
| |
| TEST(TextRange, SetExtent) { |
| TextRange range(3, 7); |
| range.set_extent(6); |
| EXPECT_EQ(range.base(), size_t(3)); |
| EXPECT_EQ(range.extent(), size_t(6)); |
| } |
| |
| TEST(TextRange, SetExtentReversed) { |
| TextRange range(7, 3); |
| range.set_extent(4); |
| EXPECT_EQ(range.base(), size_t(7)); |
| EXPECT_EQ(range.extent(), size_t(4)); |
| } |
| |
| TEST(TextRange, SetStart) { |
| TextRange range(3, 7); |
| range.set_start(5); |
| EXPECT_EQ(range.base(), size_t(5)); |
| EXPECT_EQ(range.extent(), size_t(7)); |
| } |
| |
| TEST(TextRange, SetStartReversed) { |
| TextRange range(7, 3); |
| range.set_start(5); |
| EXPECT_EQ(range.base(), size_t(7)); |
| EXPECT_EQ(range.extent(), size_t(5)); |
| } |
| |
| TEST(TextRange, SetEnd) { |
| TextRange range(3, 7); |
| range.set_end(6); |
| EXPECT_EQ(range.base(), size_t(3)); |
| EXPECT_EQ(range.extent(), size_t(6)); |
| } |
| |
| TEST(TextRange, SetEndReversed) { |
| TextRange range(7, 3); |
| range.set_end(5); |
| EXPECT_EQ(range.base(), size_t(5)); |
| EXPECT_EQ(range.extent(), size_t(3)); |
| } |
| |
| TEST(TextRange, ContainsPreStartPosition) { |
| TextRange range(2, 6); |
| EXPECT_FALSE(range.Contains(1)); |
| } |
| |
| TEST(TextRange, ContainsStartPosition) { |
| TextRange range(2, 6); |
| EXPECT_TRUE(range.Contains(2)); |
| } |
| |
| TEST(TextRange, ContainsMiddlePosition) { |
| TextRange range(2, 6); |
| EXPECT_TRUE(range.Contains(3)); |
| EXPECT_TRUE(range.Contains(4)); |
| } |
| |
| TEST(TextRange, ContainsEndPosition) { |
| TextRange range(2, 6); |
| EXPECT_TRUE(range.Contains(6)); |
| } |
| |
| TEST(TextRange, ContainsPostEndPosition) { |
| TextRange range(2, 6); |
| EXPECT_FALSE(range.Contains(7)); |
| } |
| |
| TEST(TextRange, ContainsPreStartPositionReversed) { |
| TextRange range(6, 2); |
| EXPECT_FALSE(range.Contains(1)); |
| } |
| |
| TEST(TextRange, ContainsStartPositionReversed) { |
| TextRange range(6, 2); |
| EXPECT_TRUE(range.Contains(2)); |
| } |
| |
| TEST(TextRange, ContainsMiddlePositionReversed) { |
| TextRange range(6, 2); |
| EXPECT_TRUE(range.Contains(3)); |
| EXPECT_TRUE(range.Contains(4)); |
| } |
| |
| TEST(TextRange, ContainsEndPositionReversed) { |
| TextRange range(6, 2); |
| EXPECT_TRUE(range.Contains(6)); |
| } |
| |
| TEST(TextRange, ContainsPostEndPositionReversed) { |
| TextRange range(6, 2); |
| EXPECT_FALSE(range.Contains(7)); |
| } |
| |
| TEST(TextRange, ContainsRangePreStartPosition) { |
| TextRange range(2, 6); |
| EXPECT_FALSE(range.Contains(TextRange(0, 1))); |
| } |
| |
| TEST(TextRange, ContainsRangeSpanningStartPosition) { |
| TextRange range(2, 6); |
| EXPECT_FALSE(range.Contains(TextRange(1, 3))); |
| } |
| |
| TEST(TextRange, ContainsRangeStartPosition) { |
| TextRange range(2, 6); |
| EXPECT_TRUE(range.Contains(TextRange(2))); |
| } |
| |
| TEST(TextRange, ContainsRangeMiddlePosition) { |
| TextRange range(2, 6); |
| EXPECT_TRUE(range.Contains(TextRange(3, 4))); |
| EXPECT_TRUE(range.Contains(TextRange(4, 5))); |
| } |
| |
| TEST(TextRange, ContainsRangeEndPosition) { |
| TextRange range(2, 6); |
| EXPECT_TRUE(range.Contains(TextRange(6))); |
| } |
| |
| TEST(TextRange, ContainsRangeSpanningEndPosition) { |
| TextRange range(2, 6); |
| EXPECT_FALSE(range.Contains(TextRange(5, 7))); |
| } |
| |
| TEST(TextRange, ContainsRangePostEndPosition) { |
| TextRange range(2, 6); |
| EXPECT_FALSE(range.Contains(TextRange(6, 7))); |
| } |
| |
| TEST(TextRange, ContainsRangePreStartPositionReversed) { |
| TextRange range(6, 2); |
| EXPECT_FALSE(range.Contains(TextRange(0, 1))); |
| } |
| |
| TEST(TextRange, ContainsRangeSpanningStartPositionReversed) { |
| TextRange range(6, 2); |
| EXPECT_FALSE(range.Contains(TextRange(1, 3))); |
| } |
| |
| TEST(TextRange, ContainsRangeStartPositionReversed) { |
| TextRange range(6, 2); |
| EXPECT_TRUE(range.Contains(TextRange(2))); |
| } |
| |
| TEST(TextRange, ContainsRangeMiddlePositionReversed) { |
| TextRange range(6, 2); |
| EXPECT_TRUE(range.Contains(TextRange(3, 4))); |
| EXPECT_TRUE(range.Contains(TextRange(4, 5))); |
| } |
| |
| TEST(TextRange, ContainsRangeSpanningEndPositionReversed) { |
| TextRange range(6, 2); |
| EXPECT_FALSE(range.Contains(TextRange(5, 7))); |
| } |
| |
| TEST(TextRange, ContainsRangeEndPositionReversed) { |
| TextRange range(6, 2); |
| EXPECT_TRUE(range.Contains(TextRange(5))); |
| } |
| |
| TEST(TextRange, ContainsRangePostEndPositionReversed) { |
| TextRange range(6, 2); |
| EXPECT_FALSE(range.Contains(TextRange(6, 7))); |
| } |
| |
| TEST(TextRange, ReversedForwardRange) { |
| TextRange range(2, 6); |
| EXPECT_FALSE(range.reversed()); |
| } |
| |
| TEST(TextRange, ReversedCollapsedRange) { |
| TextRange range(2, 2); |
| EXPECT_FALSE(range.reversed()); |
| } |
| |
| TEST(TextRange, ReversedReversedRange) { |
| TextRange range(6, 2); |
| EXPECT_TRUE(range.reversed()); |
| } |
| |
| } // namespace flutter |