diff options
-rw-r--r-- | ui/base/range/range.cc | 34 | ||||
-rw-r--r-- | ui/base/range/range_mac.mm (renamed from ui/base/range/range.mm) | 0 | ||||
-rw-r--r-- | ui/base/range/range_mac_unittest.mm (renamed from ui/base/range/range_unittest.mm) | 0 | ||||
-rw-r--r-- | ui/base/range/range_unittest.cc | 59 | ||||
-rw-r--r-- | ui/base/range/range_win.cc | 45 | ||||
-rw-r--r-- | ui/base/range/range_win_unittest.cc | 63 | ||||
-rw-r--r-- | ui/ui_base.gypi | 3 | ||||
-rw-r--r-- | ui/ui_unittests.gypi | 3 |
8 files changed, 112 insertions, 95 deletions
diff --git a/ui/base/range/range.cc b/ui/base/range/range.cc index 0c5b506..53223d2 100644 --- a/ui/base/range/range.cc +++ b/ui/base/range/range.cc @@ -75,40 +75,6 @@ Range Range::Intersect(const Range& range) const { return Range(min, max); } -#if defined(OS_WIN) -Range::Range(const CHARRANGE& range, LONG total_length) { - // Check if this is an invalid range. - if (range.cpMin == -1 && range.cpMax == -1) { - *this = InvalidRange(); - } else { - DCHECK_GE(range.cpMin, 0); - set_start(range.cpMin); - // {0,-1} is the "whole range" but that doesn't mean much out of context, - // so use the |total_length| parameter. - if (range.cpMax == -1) { - DCHECK_EQ(0, range.cpMin); - DCHECK_NE(-1, total_length); - set_end(total_length); - } else { - set_end(range.cpMax); - } - } -} - -CHARRANGE Range::ToCHARRANGE() const { - CHARRANGE r = { -1, -1 }; - if (!IsValid()) - return r; - - const LONG kLONGMax = std::numeric_limits<LONG>::max(); - DCHECK_LE(static_cast<LONG>(start()), kLONGMax); - DCHECK_LE(static_cast<LONG>(end()), kLONGMax); - r.cpMin = start(); - r.cpMax = end(); - return r; -} -#endif // defined(OS_WIN) - std::ostream& operator<<(std::ostream& out, const ui::Range& range) { return out << "{" << range.start() << "," << range.end() << "}"; } diff --git a/ui/base/range/range.mm b/ui/base/range/range_mac.mm index e99db37..e99db37 100644 --- a/ui/base/range/range.mm +++ b/ui/base/range/range_mac.mm diff --git a/ui/base/range/range_unittest.mm b/ui/base/range/range_mac_unittest.mm index 3142540..3142540 100644 --- a/ui/base/range/range_unittest.mm +++ b/ui/base/range/range_mac_unittest.mm diff --git a/ui/base/range/range_unittest.cc b/ui/base/range/range_unittest.cc index cf0da5a..95bc54e 100644 --- a/ui/base/range/range_unittest.cc +++ b/ui/base/range/range_unittest.cc @@ -206,62 +206,3 @@ TEST(RangeTest, ContainAndIntersect) { EXPECT_FALSE(r1.Contains(invalid)); EXPECT_FALSE(r1.Intersects(invalid)); } - -#if defined(OS_WIN) -TEST(RangeTest, FromCHARRANGE) { - CHARRANGE cr = { 10, 32 }; - ui::Range r(cr, 50); - EXPECT_EQ(10U, r.start()); - EXPECT_EQ(32U, r.end()); - EXPECT_EQ(22U, r.length()); - EXPECT_FALSE(r.is_reversed()); - EXPECT_TRUE(r.IsValid()); -} - -TEST(RangeTest, FromReversedCHARRANGE) { - CHARRANGE cr = { 20, 10 }; - ui::Range r(cr, 40); - EXPECT_EQ(20U, r.start()); - EXPECT_EQ(10U, r.end()); - EXPECT_EQ(10U, r.length()); - EXPECT_TRUE(r.is_reversed()); - EXPECT_TRUE(r.IsValid()); -} - -TEST(RangeTest, FromCHARRANGETotal) { - CHARRANGE cr = { 0, -1 }; - ui::Range r(cr, 20); - EXPECT_EQ(0U, r.start()); - EXPECT_EQ(20U, r.end()); - EXPECT_EQ(20U, r.length()); - EXPECT_FALSE(r.is_reversed()); - EXPECT_TRUE(r.IsValid()); -} - -TEST(RangeTest, ToCHARRANGE) { - ui::Range r(10, 30); - CHARRANGE cr = r.ToCHARRANGE(); - EXPECT_EQ(10, cr.cpMin); - EXPECT_EQ(30, cr.cpMax); -} - -TEST(RangeTest, ReversedToCHARRANGE) { - ui::Range r(20, 10); - CHARRANGE cr = r.ToCHARRANGE(); - EXPECT_EQ(20U, cr.cpMin); - EXPECT_EQ(10U, cr.cpMax); -} - -TEST(RangeTest, FromCHARRANGEInvalid) { - CHARRANGE cr = { -1, -1 }; - ui::Range r(cr, 30); - EXPECT_FALSE(r.IsValid()); -} - -TEST(RangeTest, ToCHARRANGEInvalid) { - ui::Range r(ui::Range::InvalidRange()); - CHARRANGE cr = r.ToCHARRANGE(); - EXPECT_EQ(-1, cr.cpMin); - EXPECT_EQ(-1, cr.cpMax); -} -#endif // defined(OS_WIN) diff --git a/ui/base/range/range_win.cc b/ui/base/range/range_win.cc new file mode 100644 index 0000000..0a34958 --- /dev/null +++ b/ui/base/range/range_win.cc @@ -0,0 +1,45 @@ +// Copyright (c) 2011 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 "ui/base/range/range.h" + +#include <limits> + +#include "base/logging.h" + +namespace ui { + +Range::Range(const CHARRANGE& range, LONG total_length) { + // Check if this is an invalid range. + if (range.cpMin == -1 && range.cpMax == -1) { + *this = InvalidRange(); + } else { + DCHECK_GE(range.cpMin, 0); + set_start(range.cpMin); + // {0,-1} is the "whole range" but that doesn't mean much out of context, + // so use the |total_length| parameter. + if (range.cpMax == -1) { + DCHECK_EQ(0, range.cpMin); + DCHECK_NE(-1, total_length); + set_end(total_length); + } else { + set_end(range.cpMax); + } + } +} + +CHARRANGE Range::ToCHARRANGE() const { + CHARRANGE r = { -1, -1 }; + if (!IsValid()) + return r; + + const LONG kLONGMax = std::numeric_limits<LONG>::max(); + DCHECK_LE(static_cast<LONG>(start()), kLONGMax); + DCHECK_LE(static_cast<LONG>(end()), kLONGMax); + r.cpMin = start(); + r.cpMax = end(); + return r; +} + +} // namespace gfx diff --git a/ui/base/range/range_win_unittest.cc b/ui/base/range/range_win_unittest.cc new file mode 100644 index 0000000..4122d06 --- /dev/null +++ b/ui/base/range/range_win_unittest.cc @@ -0,0 +1,63 @@ +// Copyright (c) 2011 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 "testing/gtest/include/gtest/gtest.h" +#include "ui/base/range/range.h" + +TEST(RangeTest, FromCHARRANGE) { + CHARRANGE cr = { 10, 32 }; + ui::Range r(cr, 50); + EXPECT_EQ(10U, r.start()); + EXPECT_EQ(32U, r.end()); + EXPECT_EQ(22U, r.length()); + EXPECT_FALSE(r.is_reversed()); + EXPECT_TRUE(r.IsValid()); +} + +TEST(RangeTest, FromReversedCHARRANGE) { + CHARRANGE cr = { 20, 10 }; + ui::Range r(cr, 40); + EXPECT_EQ(20U, r.start()); + EXPECT_EQ(10U, r.end()); + EXPECT_EQ(10U, r.length()); + EXPECT_TRUE(r.is_reversed()); + EXPECT_TRUE(r.IsValid()); +} + +TEST(RangeTest, FromCHARRANGETotal) { + CHARRANGE cr = { 0, -1 }; + ui::Range r(cr, 20); + EXPECT_EQ(0U, r.start()); + EXPECT_EQ(20U, r.end()); + EXPECT_EQ(20U, r.length()); + EXPECT_FALSE(r.is_reversed()); + EXPECT_TRUE(r.IsValid()); +} + +TEST(RangeTest, ToCHARRANGE) { + ui::Range r(10, 30); + CHARRANGE cr = r.ToCHARRANGE(); + EXPECT_EQ(10, cr.cpMin); + EXPECT_EQ(30, cr.cpMax); +} + +TEST(RangeTest, ReversedToCHARRANGE) { + ui::Range r(20, 10); + CHARRANGE cr = r.ToCHARRANGE(); + EXPECT_EQ(20U, cr.cpMin); + EXPECT_EQ(10U, cr.cpMax); +} + +TEST(RangeTest, FromCHARRANGEInvalid) { + CHARRANGE cr = { -1, -1 }; + ui::Range r(cr, 30); + EXPECT_FALSE(r.IsValid()); +} + +TEST(RangeTest, ToCHARRANGEInvalid) { + ui::Range r(ui::Range::InvalidRange()); + CHARRANGE cr = r.ToCHARRANGE(); + EXPECT_EQ(-1, cr.cpMin); + EXPECT_EQ(-1, cr.cpMax); +} diff --git a/ui/ui_base.gypi b/ui/ui_base.gypi index d5a8c58..da4634b 100644 --- a/ui/ui_base.gypi +++ b/ui/ui_base.gypi @@ -128,7 +128,8 @@ 'base/models/tree_node_model.h', 'base/range/range.cc', 'base/range/range.h', - 'base/range/range.mm', + 'base/range/range_mac.mm', + 'base/range/range_win.cc', 'base/resource/data_pack.cc', 'base/resource/data_pack.h', 'base/resource/resource_bundle.cc', diff --git a/ui/ui_unittests.gypi b/ui/ui_unittests.gypi index 3fb1c4a..9790d12 100644 --- a/ui/ui_unittests.gypi +++ b/ui/ui_unittests.gypi @@ -29,7 +29,8 @@ 'base/models/tree_node_iterator_unittest.cc', 'base/models/tree_node_model_unittest.cc', 'base/range/range_unittest.cc', - 'base/range/range_unittest.mm', + 'base/range/range_mac_unittest.mm', + 'base/range/range_win_unittest.cc', 'base/resource/data_pack_unittest.cc', 'base/resource/resource_bundle_unittest.cc', 'base/text/bytes_formatting_unittest.cc', |