diff options
author | asvitkine@chromium.org <asvitkine@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-27 01:52:10 +0000 |
---|---|---|
committer | asvitkine@chromium.org <asvitkine@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-27 01:52:10 +0000 |
commit | c17b87ab100e7eb367a4730959dc3d927c3c9cc4 (patch) | |
tree | b056b7843f12a6e7dc0dac915e903320756ac93a /ui/views/view_unittest.cc | |
parent | e9856c24dc9a362e793e14f5c7630d97c5b35a41 (diff) | |
download | chromium_src-c17b87ab100e7eb367a4730959dc3d927c3c9cc4.zip chromium_src-c17b87ab100e7eb367a4730959dc3d927c3c9cc4.tar.gz chromium_src-c17b87ab100e7eb367a4730959dc3d927c3c9cc4.tar.bz2 |
Fix crash when |View::AddChildView()| is called on an existing child.
This was being triggered by views_examples.
BUG=none
TEST=New ViewTest.AddExistingChild unit test.
Review URL: http://codereview.chromium.org/9288066
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@119328 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/views/view_unittest.cc')
-rw-r--r-- | ui/views/view_unittest.cc | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/ui/views/view_unittest.cc b/ui/views/view_unittest.cc index 79ef2fd..8179f68 100644 --- a/ui/views/view_unittest.cc +++ b/ui/views/view_unittest.cc @@ -2502,6 +2502,39 @@ TEST_F(ViewTest, GetViewByID) { EXPECT_NE(views.end(), i); } +TEST_F(ViewTest, AddExistingChild) { + View v1, v2, v3; + + v1.AddChildView(&v2); + v1.AddChildView(&v3); + EXPECT_EQ(0, v1.GetIndexOf(&v2)); + EXPECT_EQ(1, v1.GetIndexOf(&v3)); + + // Check that there's no change in order when adding at same index. + v1.AddChildViewAt(&v2, 0); + EXPECT_EQ(0, v1.GetIndexOf(&v2)); + EXPECT_EQ(1, v1.GetIndexOf(&v3)); + v1.AddChildViewAt(&v3, 1); + EXPECT_EQ(0, v1.GetIndexOf(&v2)); + EXPECT_EQ(1, v1.GetIndexOf(&v3)); + + // Add it at a different index and check for change in order. + v1.AddChildViewAt(&v2, 1); + EXPECT_EQ(1, v1.GetIndexOf(&v2)); + EXPECT_EQ(0, v1.GetIndexOf(&v3)); + v1.AddChildViewAt(&v2, 0); + EXPECT_EQ(0, v1.GetIndexOf(&v2)); + EXPECT_EQ(1, v1.GetIndexOf(&v3)); + + // Check that calling |AddChildView()| does not change the order. + v1.AddChildView(&v2); + EXPECT_EQ(0, v1.GetIndexOf(&v2)); + EXPECT_EQ(1, v1.GetIndexOf(&v3)); + v1.AddChildView(&v3); + EXPECT_EQ(0, v1.GetIndexOf(&v2)); + EXPECT_EQ(1, v1.GetIndexOf(&v3)); +} + //////////////////////////////////////////////////////////////////////////////// // Layers //////////////////////////////////////////////////////////////////////////////// |